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!');
}
}
});
}
}
I am trying to use reverse geocoding in my angular 4 application. I am using agm for integrating google map with the angular app.
Declared google variable in *.ts as follows
declare let google: any;
But when I am using I am getting the error as follows,
ERROR ReferenceError: google is not defined
Please help me to resolve the issue.
Here is the component.ts
declare let google: any;
@Component({
selector: 'app-find-cycle',
templateUrl: './cmp.component.html',
styleUrls: ['./cmp.component.scss']
})
export class Cmp {
}
The Geocoding API uses a pay-as-you-go pricing model. Geocoding API requests generate calls to one of two SKUs depending on the type of request: basic or advanced. Along with the overall Google Terms of Use, there are usage limits specific to the Geocoding API.
Geocoding is a process in which street address is converted into a coordinate (latitude,longitude). Reverse geocoding is a process in which a coordinate (latitude,longitude) is converted into an address.
execute getAddress() after the map is loaded:
<agm-map (mapReady)="mapReady()" [latitude]="lat" [longitude]="lng" [zoom]="zoom" [styles]="styles">
mapReady() {
this.getAddress(...);
}
or add private mapsAPILoader: MapsAPILoader,
to your constructor do this
this.mapsAPILoader.load().then(() => { ... });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With