我正在使用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可以帮我解决这个问题吗?
答案 0 :(得分:1)
我使用这个API大约4年了,这很正常。不幸的是,谷歌地图API是一个黑盒子,我们无法做任何事情来解决它,但也许你可以联系他们,以便他们可以为你提供支持
虽然他们给你回复,但我建议你评估你的变量是否存在未定义的值以避免错误和错误