Гугл не определил ошибку в 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>