topical media & game development

talk show tell print

mashup-gmaps-ch09-04.htm / htm



  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  
    <title>MCslp Maps Chapter 9, Ex 4</title>
    <script src="http://maps.google.com/maps?file=api&v=1&key=YOURKEY"
        type="text/javascript">
    </script>
  
    <script type="text/javascript">
  
    var map;
  
    var points = [];
    var index = 0;
  
    var infopanel;
  
    function onLoad() {
        if (GBrowserIsCompatible()) {
            infopanel = document.getElementById("infopanel");
            map = new GMap(document.getElementById("map"));
            map.centerAndZoom(new GPoint(-0.64,52.909444), 2);
            
            var request = GXmlHttp.create();
            request.open('GET','ch09-04.xml', true);
            request.onreadystatechange = function() {
                if (request.readyState == 4) {
                    var xmlsource = request.responseXML;
                    var markerlist = xmlsource.documentElement.getElementsByTagName("marker");
                    for (var i=0;i < markerlist.length;i++) {
                        addmarker(parseFloat(markerlist[i].getAttribute("lng")),
                                  parseFloat(markerlist[i].getAttribute("lat")),
                                  markerlist[i].getAttribute("title"));
                    }
                }
            }
            request.send(null);
        }
    }
  
    function addmarker(x,y,title) {
        var point = new GPoint(parseFloat(x),parseFloat(y));
        points.push(point);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        infopanel.innerHTML = infopanel.innerHTML + 
            '<a href="#" onClick="movemap(' + index + ');">' + 
            title + 
            '</a><br/>';
        index++;
    }    
  
    function movemap(index) {
        map.recenterOrPanToLatLng(points[index]);
    }
  
    </script>
    </head>
    <body onload="onLoad()">
    <table cellspacing="15" cellpadding="0" border="0">
    <tr valign="top">
    <td><div id="map" style="width: 800px; height: 600px"></div></td>
    <td><h1>Restaurants</h1><div id="infopanel"></div></td>
    </tr>
    </table>
    </body>
  </html>
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.