MAP_READY未在Android上触发

时间:2018-02-12 03:16:21

标签: google-maps ionic-framework

自从我将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);
            }
        );
)

2 个答案:

答案 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
    }
};