Google Maps Geocode不起作用



编辑 - 我已经使用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()部分上方时,它可以正常工作,并迭代012

我真的很感谢它的任何帮助。

总体

  • 根据当前的i值从数组中检索地址

  • 显示在bindTooltip()零件中检索的地址,该零件将显示为地图中的工具提示值。

编辑

loop的JavaScript内部的异步过程此问题已被标记为所显示的链接的重复,尽管我不确定如何自己使用所提供的答案。有人可以帮我吗?

我刚刚意识到我可以使用 forEach而不是必须使用循环,因为数据是从数组中提取的

最新更新