我对JavaScript比较陌生,我尝试使用Google Maps API V3进行实时跟踪,并使用LatLng坐标数组在地图上绘制多条折线,下面是我正在使用的代码:
var caseinfo = new Array();
caseinfo.push("V 28.5549 77.1919");
caseinfo.push("H1 28.561012 77.161527 28.561024 77.162429 28.561024 77.164129");
caseinfo.push("H2 28.551024 77.163129 28.365241 77.025134 28.3662158 77.025134");
var i, j, k;
var splitinfo = [];
for(i = 0 ; i < caseinfo.length ; i++) {
splitinfo[i] = caseinfo[i].split(" ");
alert(splitinfo[i]);
}
var polyline =new Array();
for(i = 0 ; i < splitinfo.length() ; i++) {
polyline.push([]);
for(j = 1 ; j < splitinfo[i].length ; j = j + 2) {
polyline[i].push(new google.map.LatLng(polyline[i][j], polyline[i][j + 1]));
}
}
alert(polyline);
我希望折线看起来像这样[[(28.5549,77.1919)],[(28.561012,77.161527),(28.561024,77.162429),(28.560124,77.164129)],[(28.551024,77.163129),(28.365241,77.025134),(28.3662158,77.025134)]]
,这样我就可以通过将路径设置为polyine[i]
来绘制三条折线。
有人可以帮助我! ?
答案 0 :(得分:0)
对于初学者,你不应该使用“length()”。 length是属性,而不是函数。你在其他地方正确使用它。
“google.map.LatLng”也应为“google.maps.LatLng”
尝试运行时在浏览器中查看控制台可以帮助您发现这些错误。
答案 1 :(得分:0)
折线在这里没有任何内容:
polyline [i] .push(new google.map.LatLng(polyline [i] [j],polyline [i] [j + 1]));
你希望它是“splitinfo”。
更新的代码:
var caseinfo = new Array();
caseinfo.push("V 28.5549 77.1919");
caseinfo.push("H1 28.561012 77.161527 28.561024 77.162429 28.561024 77.164129");
caseinfo.push("H2 28.551024 77.163129 28.365241 77.025134 28.3662158 77.025134");
var i, j, k;
var splitinfo = [];
for (i = 0; i < caseinfo.length; i++) {
splitinfo[i] = caseinfo[i].split(" ");
// alert(splitinfo[i]);
}
var polyline = new Array();
for (i = 0; i < splitinfo.length; i++) {
polyline.push([]);
for (j = 1; j < splitinfo[i].length; j = j + 2) {
polyline[i].push(new google.maps.LatLng(splitinfo[i][j], splitinfo[i][j + 1]));
}
var path = new google.maps.Polyline({
path: polyline[i],
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
path.setMap(map);
}