在这个JSFiddle中,为什么我可以迭代neighborhoods[iterate]
,但不能将标记position
设置为latLng
?
在第36行中尝试两者。当它设置为neighborhood[iterate]
时,标记会掉线。但是当它设置为latLng
时,它们都会落在相同的位置。我认为这与迭代有关。
markers.push(new google.maps.Marker({
position: latLng, //[iterator],
我通过Google地图文档中的各种示例构建了此示例。我怎样才能解决这个问题?我更愿意使用latLng
,因为如果需要添加更多信息,它更容易组织。这叫做JavaScript列表吗? neighborhoods
是一个JavaScript数组吗?
感谢。
答案 0 :(得分:0)
对addMarker()
的调用存在范围问题。
<强> Here is an example fix in jsFiddle 强>
直接引用该函数并绑定到调用的索引值将有助于解决问题。
for (var i = 0; i < markersList.length; i++) {
setTimeout(addMarker.bind(this, i), i * 200);
}
更改功能以访问正确的索引。
function addMarker(i) {
var data = markersList[i]
var latLng = new google.maps.LatLng(data.latLng[0], data.latLng[1]);
markers.push(new google.maps.Marker({
position: latLng,
map: map,
draggable: false,
animation: google.maps.Animation.DROP
}));
}