自从我将Google地图移到另一个页面后,我就遇到了Ionic应用程序的问题。它永远不会出现在root / home页面上。在iOS上,地图显示很好,但在Android上,MAP_READY事件永远不会被触发,因此在下面的示例中我没有看到"地图准备就绪"。
ionViewDidLoad() {
this.platform.ready().then(() => {
console.log('Platform ready');
this.loadMap();
});
}
loadMap() {
let mapOptions: GoogleMapOptions = {
camera: {
target: {
lat: this.lat,
lng: this.lon
},
zoom: 5
},
controls: {
myLocationButton: true,
compass: true
}
};
this.map = GoogleMaps.create('map_canvas', mapOptions);
console.log('Map created');
this.map.one(GoogleMapsEvent.MAP_READY)
.then(() => {
console.log('Map is ready!');
}, (err) => {
console.log("Error is ",err);
}
);
)
答案 0 :(得分:0)
尝试使用HtmlElement
代替ID
。
<div #maps id="maps">
@ViewChild('maps') mapElement;
ionViewDidLoad() {
this.map = GoogleMaps.create(this.mapElement.nativeElement);
}
答案 1 :(得分:0)
结果很简单。 lat和lon值尚未设置。在Android上,这意味着地图从未被宣布准备好,在iOS上它显示地图为(0,0)。我需要做的就是从GoogleMapOptions
中删除相机属性,并在我有真实值时设置它们
let mapOptions: GoogleMapOptions = {
controls: {
myLocationButton: true,
compass: true
}
};