Гугл не определил ошибку в Ionic3

Я использую @agm/core для карты в проекте Ionic3. Я хочу получить лат из адреса, я попробовал этот код для этого.

 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 не определено, даже я объявил переменную сверху также

declare var google: any;

Я прочитал из следующего, но не смог исправить это. IONIC 3: Uncaught (в обещании): ReferenceError: Google не определен ReferenceError

Я также попытался с помощью набора текста

typings install dt~google.maps --global

Но это также не работает для меня. не могли бы вы мне помочь, пожалуйста.

1 ответ

У меня была та же ошибка, в моем случае причина была в том, что асинхронизм, маркеры пытались появиться перед загрузкой карты, я исправил ее, реализовав хук "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>
Другие вопросы по тегам