'的formatted_address'某些地方为空,但不是全部(Google Maps API)为什么会这样?

时间:2018-05-15 18:14:32

标签: javascript google-maps

我正在使用Google Maps API for JS,我在地图上有一堆标记。我有一些代码来显示地图上每个标记的地址和名称,但地址有时会返回为未定义,但有时它确实有效。

function createMarker(place) {
    console.log("adding place " + place.name + " loc=" + place.geometry.location.toUrlValue(6));
    var placeLoc = place.geometry.location;
    var marker = new google.maps.Marker({
      map: map,
      position: place.geometry.location
    });
    var request = { reference: place.reference };
    service.getDetails(request, function(details, status) {
      google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent("<b>" + place.name + "</b><br />" + details.formatted_address + "<br /> <a href=" + details.website + ">Visit Website</a>");
        infowindow.open(map, this);
      });
    });
  }

有时,当我点击一个标记(应该显示infoWindow)时,它会抛出错误而不是显示窗口。错误是

Uncaught TypeError: Cannot read property 'formatted_address' of null

为什么会这样?如果代码是正确的,谷歌是否有可能不知道所有内容的地址? someonne可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我使用这个API大约4年了,这很正常。不幸的是,谷歌地图API是一个黑盒子,我们无法做任何事情来解决它,但也许你可以联系他们,以便他们可以为你提供支持

虽然他们给你回复,但我建议你评估你的变量是否存在未定义的值以避免错误和错误