编辑 - 我已经使用forEach
而不是用于循环修复了此问题,因为这些项目是从数组中拉出的
我正在使用此代码来检索flaflet.js的给定地址的纬度和经度。
markers = [
{
"name": "Tom David",
"address": "Karachi, Pakistan",
"url": "https://en.wikipedia.org/wiki/Anguilla"
},
{
"name": "Bob Thomas",
"address": "London, Canada",
"url": "https://en.wikipedia.org/wiki/Japan"
},
{
"name": "Bob Mike",
"address": "Paris, FR",
"url": "https://en.wikipedia.org/wiki/Japan"
}
];
for ( var i=0; i < markers.length; i++ ) {
geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': markers[i].address}, function(results, status) {
L.marker([results[0].geometry.location.lat(), results[0].geometry.location.lng()]).bindTooltip(markers[i].address).addTo(map);
});
}
问题在于bindToolTip(markers[i].address)
,因为它似乎在使用字符串名称时"破坏"代码(例如"Hello"
(,它可以正常工作。
这是由于循环在new google.maps.geocoder()
部分之后无法正常工作。我尝试在上述代码下方使用alert(i)
,并且仅出于某种原因将数字12
迭代三次。
将其放置在geocoder()
部分上方时,它可以正常工作,并迭代0
,1
和2
。
我真的很感谢它的任何帮助。
总体
根据当前的
i
值从数组中检索地址显示在
bindTooltip()
零件中检索的地址,该零件将显示为地图中的工具提示值。
编辑
loop的JavaScript内部的异步过程此问题已被标记为所显示的链接的重复,尽管我不确定如何自己使用所提供的答案。有人可以帮我吗?
我刚刚意识到我可以使用 forEach
而不是必须使用循环,因为数据是从数组中提取的