我正在使用Google Maps Geocode API读取地址并在地图上放置标记。这就是我使用它的方式:
for(let marker of markers){
this.geocoder = new google.maps.Geocoder();
this.geocoder.geocode({
'address': marker["address"]
}, (results,status) => {
var position = new google.maps.LatLng(results[0].geometry.location.lat(),results[0].geometry.location.lng()); // error pointing to this line
this.personMarker = new google.maps.Marker({position: position, title: marker.name, markerInfo: marker, map : this.map , icon : marker.imageurl});
google.maps.event.addListener(this.personMarker, 'click', () => {
this.showCard = true;
this.org = marker.organization;
this.gig = marker.gig;
this.location = marker["address"];
this.image = marker.imageurl;
this.ngoData = marker;
this.ownerusername = marker.ownerusername;
});
});
}
我得到这个error: ‘Cannot read property ‘0’ of null’
指向我在代码片段中用注释显示的行。只是不知道是什么导致了该错误,因为我只在{{}中访问'results'参数{1}}。 callback
有时会为循环的第一次迭代返回'null',然后是其余迭代的正确结果,或者是所有迭代的正确结果。我不明白这种不一致的行为,但我知道我通常在单击并再次加载地图之间的间隔很短时会出现此错误。
我知道所有地址都有效,因为有时候我的所有标记都出现在地图上并且错误没有出现