Javascript 如何使用angular2谷歌地图从坐标(经度、高度)获取国家?

Javascript 如何使用angular2谷歌地图从坐标(经度、高度)获取国家?,javascript,google-maps,geolocation,angular2-directives,angular2-google-maps,Javascript,Google Maps,Geolocation,Angular2 Directives,Angular2 Google Maps,我想知道,如果可能的话,使用angular2谷歌地图库从一个位置(logitude和latitude)获取国家代码或国家 private setCurrentPosition() { if ("geolocation" in navigator) { navigator.geolocation.getCurrentPosition((position) => { this.latitude = position.coords.latitude;

我想知道,如果可能的话,使用angular2谷歌地图库从一个位置(logitude和latitude)获取国家代码或国家

 private setCurrentPosition() {
    if ("geolocation" in navigator) {
      navigator.geolocation.getCurrentPosition((position) => {
        this.latitude = position.coords.latitude;
        this.longitude = position.coords.longitude;
        this.zoom = 12;
      });
    }
  }

您必须反转地理编码才能获得此类信息

map.service.ts

getRevGeoLocation(lat: number, lng: number): Observable<google.maps.GeocoderResult> {
    if (navigator.geolocation) {
        let geocoder = new google.maps.Geocoder();
        let latlng = new google.maps.LatLng(lat, lng);
        let request = {
            latLng: latlng
        };
        return Observable.create(observer => {
            geocoder.geocode(request, (results, status) => {
                if (status == google.maps.GeocoderStatus.OK) {
                    console.log(results[0]);
                    observer.next(results[0])
                    observer.complete();
                } else {
                    console.log('Error: ', results, ' & Status: ', status);
                    observer.error();
                }
            });
        });
    }
}
callRevGeoLocate(lat: number, lng: number) {
    this._mapsService.getRevGeoLocation(lat, lng).subscribe(
        results => {
            this._zone.run(() => {
                this.fillInputs(results.formatted_address);
            });
        }
    );

fillInputs(formatted_address: string) {
    let addrElements = formatted_address.split(",");
    let provPostalCode = addrElements[2].split(" ");
    this.marker.draggable = true;
    this.marker.label = formatted_address;
    this.marker.buildingNum = addrElements[0].substr(0, addrElements[0].indexOf(' '));
    this.marker.streetName = addrElements[0].substr(addrElements[0].indexOf(' ') + 1);
    this.marker.city = addrElements[1].trim();
    this.marker.region = provPostalCode[1];
    if (provPostalCode.length == 4)
        this.marker.postalCode = provPostalCode[2] + provPostalCode[3];
    else if (provPostalCode.length == 3)
        this.marker.postalCode = provPostalCode[2];
    else
        this.marker.postalCode = "";
}
也许有更好的方法,但这就是我如何让我的工作