Обратное геокодирование в угловых картах Google - PullRequest
0 голосов
/ 10 мая 2018
getAddress( lat: number, lng: number ) {
    console.log('Finding Address');
    if (navigator.geolocation) {
      let geocoder = new google.maps.Geocoder();
      let latlng = new google.maps.LatLng(lat, lng);
      let request = { latLng: latlng };
      geocoder.geocode(request, (results, status) => {
        if (status === google.maps.GeocoderStatus.OK) {
          let result = results[0];
          let rsltAdrComponent = result.address_components;
          let resultLength = rsltAdrComponent.length;
          if (result != null) {
            this.address = rsltAdrComponent[resultLength - 8].short_name;
          } else {
            alert('No address available!');
          }
        }
      });
  }
  }

Я пытаюсь использовать обратное геокодирование в своем приложении angular 4. Я использую agm для интеграции карты Google с угловым приложением.

Объявлена ​​переменная Google в * .ts следующим образом

declare let google: any;

Но когда я использую, я получаю ошибку следующим образом:

ОШИБКА ReferenceError: Google не определен

Пожалуйста, помогите мне решить проблему.

Вот этот компонент.ts

declare let google: any;
@Component({
  selector: 'app-find-cycle',
  templateUrl: './cmp.component.html',
  styleUrls: ['./cmp.component.scss']
})

export class Cmp {
}

1 Ответ

0 голосов
/ 10 мая 2018

выполнить getAddress () после загрузки карты:

<agm-map (mapReady)="mapReady()" [latitude]="lat" [longitude]="lng" [zoom]="zoom" [styles]="styles">

mapReady() {
    this.getAddress(...);
}

или добавьте private mapsAPILoader: MapsAPILoader, в ваш конструктор, сделайте это

 this.mapsAPILoader.load().then(() => { ... });
...