在我的 javascript 代码中,每隔 x 秒,我从 XML 中获取一个变量“polys”,坐标对的数量不定,如下所示(我省略了一些变量):echo.php
<markers>
<marker iph="ce987" polys="[40.66645296,-0.22793904],[39.66973274,0.21806265]"/>
</markers>
Javascript 代码:
function processXML(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
//clear markers before you start drawing new ones
resetMarkers(markersArray)
for (var i = 0; i < markers.length; i++) {
var idp = markers[i].getAttribute("idp");
var polys = markers[i].getAttribute("polys");
var genpolys = [];
var flightPath = new google.maps.Polyline({
path: genpolys,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
map: map
});
markersArray.push(marker);
}
setTimeout(function() {
downloadUrl("echo.php", processXML);
}, 19000);
}
而且,我需要生成一个 ¿ 数组?与坐标,像这样:
var genpolys = [
new google.maps.LatLng(40.66645296,-0.22793904),
new google.maps.LatLng(39.66973274,0.21806265)
];
我的javascript水平太低,所以我不知道自动生成这个变量不定数量的坐标对。然后在'Polyline'里面的'path'中使用
有人可以帮我吗?任何建议,将不胜感激!谢谢!
最佳答案
尝试这样的事情。 (我知道这不完全正确,但可能会给你一个想法。我稍后会尝试编辑。)
function processXML(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
//clear markers before you start drawing new ones
resetMarkers(markersArray);
for (var i = 0; i < markers.length; i++) {
var idp = markers[i].getAttribute("idp");
var polys = markers[i].getAttribute("polys");
var genpolys = [];
var json = JSON.parse('{"polys":['+polys+']}');
for(var coord in json.polys){
genpolys[coord] = new google.maps.LatLng(json.polys[coord][0],json.polys[coord][1]);
}
var flightPath = new google.maps.Polyline({
path: genpolys,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
map: map
});
markersArray.push(marker);
}
setTimeout(function() {
downloadUrl("echo.php", processXML);
}, 19000);
}
我希望这能帮助你解决这个问题。我改编了此页面的答案:how to draw polylines on google maps dynamically
关于javascript - 来自 XML 的 Google Map 折线数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808424/