Lifeline, CLever, and L3D 

<< Back to Working

Google Maps API - Loading external xml document's data

The Code:

<div id="map" style="width: 500px; height: 400px"></div>
<script type
="text/javascript">

//<![CDATA[

var map = new GMap(document.getElementById("map"));

map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.centerAndZoom(new GPoint(-122.241944, 37.441944), 4);

// download the data in data.xml and load it on the map
// the format we expect is:
// <markers>
// <marker lat="37.441" lng="-122.141"/>
// <marker lat="37.322" lng="-121.213"/>
// </markers>

var request = GXmlHttp.create();
request.open("GET", "data.xml", true);

request.onreadystatechange = function()
{
//map.openInfoWindow(map.getCenterLatLng(), document.createTextNode("state change "+request.readyState));

if( request.readyState==4) {
//map.openInfoWindow(map.getCenterLatLng(), document.createTextNode("making markers"));
var xmlDoc = request.responseXML;
var markers = xmlDoc.documentElement.getElementsByTagName("marker");
for( var i=0; i<markers.length; i++) {
var point = new GPoint(parseFloat(markers[i].getAttribute("lng")),
parseFloat(markers[i].getAttribute("lat")));
map.openInfoWindow(map.getCenterLatLng(), document.createTextNode("adding point: "+point.x+", "+point.y));
var marker = new GMarker(point);
map.addOverlay(marker);
}}
}
request.send(null);
//]]>

</script>