2012-11-19 50 views
0

我想使用從xml文件中獲取的座標在Google地圖上繪製路徑。我有下一個代碼,但它不工作:從xml文件中使用多段線繪製路徑

有誰知道該怎麼做?

此致敬禮。

downloadUrl("myfile.asp", function(data) { 
    var xml = xmlParse(data); 
    var markers = xml.documentElement.getElementsByTagName("marker"); 
    var points = []; 
    for (var i = 0; i < markers.length; i++) { 
    var lat = parseFloat(markers[i].getAttribute("lat")); 
    var lng = parseFloat(markers[i].getAttribute("lng")); 
    var point = new google.maps.LatLng(lat,lng); 

     }//finish loop 

    var lineCoordinates = [ new google.maps.LatLng(point)]; 

    var path = new google.maps.Polyline({ 
path: lineCoordinates, 
strokeColor: "#FF0000", 
strokeOpacity: 1.0, 
strokeWeight: 2 
}); 
    path.setMap(map); 

    }); //end download url 

和XML文件constains這樣的數據:

<markers> 
<marker imei="1887" lat="37.184872837428" lng="-3.86559306991389"/> 
<marker imei="1887" lat="37.1853220115895" lng="-3.86580098489519"/> 
<marker imei="1887" lat="37.1852771929778" lng="-3.86576667518516"/> 
<marker imei="1887" lat="37.185537832391" lng="-3.86587104505817"/> 
<marker imei="1887" lat="37.1852233612396" lng="-3.86573226263189"/> 
<marker imei="1887" lat="37.1851605163743" lng="-3.86569774724824"/> 
<marker imei="1887" lat="37.185510710715" lng="-3.86588200146997"/> 
<marker imei="1887" lat="37.1855652010503" lng="-3.86582629326349"/> 
<marker imei="1887" lat="37.1855560232803" lng="-3.86584872061447"/> 
</markers> 

回答

2

你似乎缺少路徑陣列

downloadUrl("myfile.asp", function(data) { 
    var xml = xmlParse(data); 
    var markers = xml.documentElement.getElementsByTagName("marker"); 
    var path = []; 
    for (var i = 0; i < markers.length; i++) { 
     var lat = parseFloat(markers[i].getAttribute("lat")); 
     var lng = parseFloat(markers[i].getAttribute("lng")); 
     var point = new google.maps.LatLng(lat,lng); 
     path.push(point); 
    }//finish loop 

    var polyline = new google.maps.Polyline({ 
     path: path, 
     strokeColor: "#FF0000", 
     strokeOpacity: 1.0, 
     strokeWeight: 2 
    }); 
    polyline.setMap(map); 

}); //end download url 

Working example that parses XML to polylines in v3

+0

現在運轉!非常感謝你geocodezip –

+0

你知道我該如何刪除路徑?我試着用這個函數:function removePath(){ var i;對於(i = 0; i <路徑長度; i ++){ path [i] .setMap(null); } } –

+0

這是另一個問題(最近才被問到)。您需要在多段線上設置地圖(空),而不是路徑中的點。 – geocodezip