function loadXmlData(xmlfile) { // 利用google maps api中提供的方法加载xml var request = GXmlHttp.create(); request.open("GET", xmlfile, true); /* // 普通方法加载xml var request; if (window.ActiveXObject) { // 只能是ie加载了,其他的搞不定 request = new ActiveXObject("Microsoft.XMLDOM"); alert("ie"); request.async=true; // 异步加载 request.load(xmlfile); } else if (document.implementation && document.implementation.createDocument) { alert("Firefox, Mozilla, Opera, etc."); //request = document.implementation.createDocument("", "", null); //request.async=true; // 异步加载 //request.load(xmlfile); // Firefox 应该也不行,报错了 // request.addEventListener("load",initializeData,false); // request.load(xmlfile,"text/xml"); //Google Chrome 是可以加载上,但是又报错没有getElementsByTagName方法 //request = new window.XMLHttpRequest(); //request.open("GET",xmlfile,true); //request.send(null); } else { alert('Your browser cannot handle this script'); return; } */ request.onreadystatechange = function() { if(request.readyState == 4) { // 获得加载后的mxl对象 var xmlDoc = request.responseXML; var polylines = xmlDoc.documentElement.getElementsByTagName("polyline"); for(var i=0; i<polylines.length; i++) { addPolyline(polylines[i]); } var polygons = xmlDoc.documentElement.getElementsByTagName("polygon"); for(var i=0; i<polygons.length; i++) { addPolygon(polygons[i]); } } } request.send(null); }
xml:
<?xml version="1.0" encoding="gb2312" ?>
<overlays>
<polyline color="#FF0000" width="8" alpha="0.5">
<point lat="43.6" lng="110" />
<point lat="35.8" lng="119" />
<point lat="37.9" lng="102" />
</polyline>
<polyline color="#FF0000" width="6" alpha="0.5">
<point lat="42" lng="120" />
<point lat="45.8" lng="125" />
<point lat="37.9" lng="126" />
<point lat="47.9" lng="130" />
</polyline>
<polygon color="#008800" width="4" alpha="0.8" fillcolor="#FF00FF" fillalphs="0">
<point lat="39" lng="105" />
<point lat="43" lng="118" />
<point lat="35" lng="125" />
<point lat="31" lng="116" />
<point lat="36" lng="106" />
<point lat="39" lng="105" />
</polygon>
<polygon color="#008800" width="4" alpha="0.8" fillcolor="#FF00FF" fillalphs="0.5">
<point lat="27" lng="100" />
<point lat="30" lng="100" />
<point lat="30" lng="105" />
<point lat="27" lng="105" />
<point lat="27" lng="100" />
</polygon>
</overlays>