Google未在Ionic3中定义错误

时间:2018-02-15 13:30:12

标签: angularjs google-maps ionic-framework maps ionic3

我在Ionic3项目中使用@ agm / core作为地图。 我想从地址获得lat,我尝试了这个代码。

 let _address= this.cancellation.street+','+this.cancellation.city +', '+this.cancellation.state;
  // let _address= 'Okara, Pakistan';
  console.log(_address);
  var me = this;
  let geo = new google.maps.Geocoder();

  geo.geocode( { 'address': _address}, function(results, status) {
   console.log("LatLngFromAddress:",results[0].geometry.location.lat() +'/'+results[0].geometry.location.lng());
   me.markerLocation.lat = results[0].geometry.location.lat();
   me.markerLocation.lng =results[0].geometry.location.lng();

   me.location.lat = results[0].geometry.location.lat();
   me.location.lng =results[0].geometry.location.lng();
   me.loadAPIWrapper(me.map);
 });

但是我收到了Google未定义的错误, 即使我在Top上也声明了一个变量

declare var google: any;

我从下面读到,但无法修复它。 IONIC 3: Uncaught (in promise): ReferenceError: google is not defined ReferenceError

我也尝试过输入

typings install dt~google.maps --global

但这对我来说也不起作用。 你可以帮帮我吗。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的错误,在我的情况下,原因是因为异步,标记试图在加载地图之前出现,我通过实现“ ngAfterViewInit”钩子并使用对EventEmmiter的订阅来修复了它,如下所示:

import { AgmMap } from '@agm/core';

export class MyAGMContainerComponent{
@ViewChild('myMap') myMap : AgmMap;

ngAfterViewInit() {
  this.myMap.mapReady.subscribe(
  event => {
    this.loadMarkers();
  });
}

loadMarkers(){ // code for markers //}

和这样的html

<agm-map #myMap>
  <agm-marker>
...
  </agm-marker>
</agm-map>