我在尝试从JSON文件在地图上显示标记时遇到问题。地图加载很好,但它没有显示任何标记...当我查看javascript控制台时,我可以看到我收到连续错误(虽然lat和lon对象都显示正确的位置与console.log )。我将在下面发布错误以及我的标记功能。感谢任何帮助,谢谢!
错误:
标记功能:
displayGoogleMap(){
let latLng = new google.maps.LatLng(43.653908,-79.384293);
let mapOptions = {
center:latLng,
zoom:12,
mapTypeId : google.maps.MapTypeId.ROADMAP
}
this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
}
getMarkers(){
//this.http.get('assets/data/markers.json').map((res)=>res.json()).subscribe(data=>{
this.http.get('http://app.toronto.ca/cc_sr_v1_app/data/edc_eventcal_APR?limit=500').map((res)=>res.json()).subscribe(data=>{
this.addMarkersMap(data);
});
}
addMarkersMap(markers){
for(let marker of markers)
{
var loc = {lat: marker.calEvent.locations[0]['coords'].lat , lon: marker.calEvent.locations[0]['coords'].lng};
console.log(loc);
marker = new google.maps.Marker({
position: loc,
map: this.map
});
}
}
json feed:
http://app.toronto.ca/cc_sr_v1_app/data/edc_eventcal_APR?limit=500
答案 0 :(得分:0)
该位置应使用lng而不是lon定义:
var myLatLng = {lat: -25.363, lng: 131.044};
不是
var myLatLng = {lat: -25.363, lon: 131.044};
所以只需将您的代码更改为:
var loc = {lat: marker.calEvent.locations[0]['coords'].lat , lng: marker.calEvent.locations[0]['coords'].lng};
或只是
var loc = marker.calEvent.locations[0]['coords'];