如何将LatLng设置为数值

时间:2017-10-25 05:24:13

标签: angularjs json google-maps ionic-framework

我在尝试从JSON文件在地图上显示标记时遇到问题。地图加载很好,但它没有显示任何标记...当我查看javascript控制台时,我可以看到我收到连续错误(虽然lat和lon对象都显示正确的位置与console.log )。我将在下面发布错误以及我的标记功能。感谢任何帮助,谢谢!

错误:

the error message

标记功能:

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

1 个答案:

答案 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'];