我一直试图在这个GPS坐标数组中循环,这些坐标将引脚放在谷歌地图上。

以下是我的代码: http://pastie.org/466369

问题出在第27-36行

如果我将其更改为以下内容,它会在该确切位置放置1个引脚,但我希望它在数组中循环,以便我可以添加多个引脚:

//var markers = [];

    for (var i = 0; i < 1; i++) {
        var point = new GLatLng(39.729308,-121.854087);
        marker = new GMarker(point);
        map.addOverlay(marker);
        markers[i] = marker;
    }

任何人都知道为什么这个版本会破坏?

var markers = [
(39.729308,-121.854087),
(39.0,-121.0)
];

for (var i = 0; i < markers.length; i++) {
    var point = new GLatLng(markers[i]);
    marker = new GMarker(point);
    map.addOverlay(marker);
    markers[i] = marker;
}
有帮助吗?

解决方案

首先,以下代码是不正确的JavaScript。

var markers = [
(39.729308,-121.854087),
(39.0,-121.0)
];
你可能打算这样做:

var markers = [
[39.729308,-121.854087],
[39.0,-121.0]
];

其次,根据文档 GLatLng 需要两个参数,而不是数组。

请改为尝试:

var point = new GLatLng(markers[i][0], markers[i][1]);

修改

我已经更正了你的代码并将其托管在JS Bin上。在解决上述问题后,它似乎正在起作用:

http://jsbin.com/afojo

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top