【发布时间】:2019-05-05 05:19:27
【问题描述】:
我试图在 ionic3 中的 Google 地图上显示多个标记,但出现此错误 ** 当我试图从JSON文件 我在 JSON 文件中有经度和纬度值,所以没有问题。我不知道为什么它给了我这个错误 我的 Home.html 代码是
<ion-content padding>
<div #map id="map" width="100%" height="100%"></div>
</ion-content>
而我的 home.ts 代码是
import { Component, ViewChild, ElementRef } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { Geolocation } from '@ionic-native/geolocation';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
declare var google;
@IonicPage()
@Component({
selector: 'page-home',
templateUrl: 'home.html',
})
export class HomePage {
@ViewChild('map') mapContainer: ElementRef;
map: any;
museumList = [];
constructor(public navCtrl: NavController, public navParams: NavParams, public geolocation: Geolocation, public http: Http) {
this.http.get('assets/data/museum.json')
.map(res => res.json())
.subscribe(data => {
this.museumList = data.museums;
},
err => console.log("error is "+err), // error
() => console.log('read museum data Complete '+ this.museumList)
);
}
ionViewDidLoad() {
this.displayGoogleMap();
this.getMarkers();
}
displayGoogleMap() {
let latLng = new google.maps.LatLng(28.6117993, 77.2194934);
let mapOptions = {
center: latLng,
disableDefaultUI: true,
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
this.map = new google.maps.Map(this.mapContainer.nativeElement, mapOptions);
}
getMarkers() {
//i am getting error at this.museumList.lenght
for (let _i = 0; _i < this.museumList.length ; _i++) {
if(_i > 0 )
this.addMarkersToMap(this.museumList[_i]);
}
}
addMarkersToMap(museum) {
var position = new google.maps.LatLng(museum.latitude, museum.longitude);
var museumMarker = new google.maps.Marker({position: position, title: museum.name});
museumMarker.setMap(this.map);
}
}
感谢您的帮助。
【问题讨论】:
-
检查您的
constructor中的data.museums是否是有效的Array。这是您修改museumList的唯一行 -
在 data.museums 数组上获得“未定义”。
-
这意味着您的
museum.json中没有任何museums属性 -
{ "museums": [ { "name": "National Museum", "state": "Delhi", "latitude": 28.6117993, "longitude": 77.2194934 }, { "name": “国家科学中心”,“州”:“德里”,“纬度”:28.6132098,“经度”:77.245437 }]}
-
检查路径是否正确,如果
museums是顶级属性,...
标签: angular google-maps ionic-framework ionic3 angular6