@boldadmin/angular-google-maps
Version:
Google Maps adapter for Angular Framework
75 lines • 5.72 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Coordinates } from '../value-object/coordinates';
import { GoogleMapsFactory } from './google-maps-factory.service';
var AngularGoogleMapsGeocoder = /** @class */ (function () {
function AngularGoogleMapsGeocoder(googleMaps) {
this.googleMaps = googleMaps;
}
/**
* @param {?} address
* @param {?} callback
* @return {?}
*/
AngularGoogleMapsGeocoder.prototype.geocode = /**
* @param {?} address
* @param {?} callback
* @return {?}
*/
function (address, callback) {
return this.googleMaps.createGeocoder().geocode({ 'address': address }, (/**
* @param {?} results
* @return {?}
*/
function (results) {
if (results !== null && results[0])
callback(new Coordinates(results[0].geometry.location.lat(), results[0].geometry.location.lng()));
else
callback(new Coordinates(59.9139, 10.7522));
}));
};
/**
* @param {?} coordinates
* @param {?} callback
* @return {?}
*/
AngularGoogleMapsGeocoder.prototype.reverseGeocode = /**
* @param {?} coordinates
* @param {?} callback
* @return {?}
*/
function (coordinates, callback) {
/** @type {?} */
var latLng = this.googleMaps.createLatLng(coordinates);
this.googleMaps.createGeocoder().geocode({ 'location': latLng }, (/**
* @param {?} results
* @return {?}
*/
function (results) {
if (results !== null && results[0])
callback(results[0].formatted_address);
else
callback(latLng.toString());
}));
};
AngularGoogleMapsGeocoder.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AngularGoogleMapsGeocoder.ctorParameters = function () { return [
{ type: GoogleMapsFactory }
]; };
return AngularGoogleMapsGeocoder;
}());
export { AngularGoogleMapsGeocoder };
if (false) {
/**
* @type {?}
* @private
*/
AngularGoogleMapsGeocoder.prototype.googleMaps;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nb29nbGUtbWFwcy1nZW9jb2Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGJvbGRhZG1pbi9hbmd1bGFyLWdvb2dsZS1tYXBzLyIsInNvdXJjZXMiOlsic2VydmljZS9hbmd1bGFyLWdvb2dsZS1tYXBzLWdlb2NvZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRWpFO0lBR0ksbUNBQW9CLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBQ2pELENBQUM7Ozs7OztJQUVELDJDQUFPOzs7OztJQUFQLFVBQVEsT0FBZSxFQUFFLFFBQTRDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFDOzs7O1FBQUUsVUFBQSxPQUFPO1lBQ3pFLElBQUksT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBOztnQkFFakcsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ25ELENBQUMsRUFBQyxDQUFBO0lBQ04sQ0FBQzs7Ozs7O0lBRUQsa0RBQWM7Ozs7O0lBQWQsVUFBZSxXQUF3QixFQUFFLFFBQTBCOztZQUN6RCxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7OztRQUFFLFVBQUEsT0FBTztZQUNsRSxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBOztnQkFFdEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ25DLENBQUMsRUFBQyxDQUFBO0lBQ04sQ0FBQzs7Z0JBdkJKLFVBQVU7Ozs7Z0JBRkYsaUJBQWlCOztJQTBCMUIsZ0NBQUM7Q0FBQSxBQXhCRCxJQXdCQztTQXZCWSx5QkFBeUI7Ozs7OztJQUV0QiwrQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvb3JkaW5hdGVzIH0gZnJvbSAnLi4vdmFsdWUtb2JqZWN0L2Nvb3JkaW5hdGVzJ1xuaW1wb3J0IHsgR29vZ2xlTWFwc0ZhY3RvcnkgfSBmcm9tICcuL2dvb2dsZS1tYXBzLWZhY3Rvcnkuc2VydmljZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJHb29nbGVNYXBzR2VvY29kZXIge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBnb29nbGVNYXBzOiBHb29nbGVNYXBzRmFjdG9yeSkge1xuICAgIH1cblxuICAgIGdlb2NvZGUoYWRkcmVzczogc3RyaW5nLCBjYWxsYmFjazogKGNvb3JkaW5hdGVzOiBDb29yZGluYXRlcykgPT4gdm9pZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nb29nbGVNYXBzLmNyZWF0ZUdlb2NvZGVyKCkuZ2VvY29kZSh7J2FkZHJlc3MnOiBhZGRyZXNzfSwgcmVzdWx0cyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0cyAhPT0gbnVsbCAmJiByZXN1bHRzWzBdKVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBDb29yZGluYXRlcyhyZXN1bHRzWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLCByZXN1bHRzWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpKSlcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhuZXcgQ29vcmRpbmF0ZXMoNTkuOTEzOSwgMTAuNzUyMikpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV2ZXJzZUdlb2NvZGUoY29vcmRpbmF0ZXM6IENvb3JkaW5hdGVzLCBjYWxsYmFjazogKHN0cmluZykgPT4gdm9pZCkge1xuICAgICAgICBjb25zdCBsYXRMbmcgPSB0aGlzLmdvb2dsZU1hcHMuY3JlYXRlTGF0TG5nKGNvb3JkaW5hdGVzKVxuICAgICAgICB0aGlzLmdvb2dsZU1hcHMuY3JlYXRlR2VvY29kZXIoKS5nZW9jb2RlKHsnbG9jYXRpb24nOiBsYXRMbmd9LCByZXN1bHRzID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHRzICE9PSBudWxsICYmIHJlc3VsdHNbMF0pXG4gICAgICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0c1swXS5mb3JtYXR0ZWRfYWRkcmVzcylcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhsYXRMbmcudG9TdHJpbmcoKSlcbiAgICAgICAgfSlcbiAgICB9XG59XG4iXX0=