UNPKG

@boldadmin/angular-google-maps

Version:
66 lines 5.26 kB
/** * @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'; export class AngularGoogleMapsGeocoder { /** * @param {?} googleMaps */ constructor(googleMaps) { this.googleMaps = googleMaps; } /** * @param {?} address * @param {?} callback * @return {?} */ geocode(address, callback) { return this.googleMaps.createGeocoder().geocode({ 'address': address }, (/** * @param {?} results * @return {?} */ 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 {?} */ reverseGeocode(coordinates, callback) { /** @type {?} */ const latLng = this.googleMaps.createLatLng(coordinates); this.googleMaps.createGeocoder().geocode({ 'location': latLng }, (/** * @param {?} results * @return {?} */ results => { if (results !== null && results[0]) callback(results[0].formatted_address); else callback(latLng.toString()); })); } } AngularGoogleMapsGeocoder.decorators = [ { type: Injectable } ]; /** @nocollapse */ AngularGoogleMapsGeocoder.ctorParameters = () => [ { type: GoogleMapsFactory } ]; if (false) { /** * @type {?} * @private */ AngularGoogleMapsGeocoder.prototype.googleMaps; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nb29nbGUtbWFwcy1nZW9jb2Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGJvbGRhZG1pbi9hbmd1bGFyLWdvb2dsZS1tYXBzLyIsInNvdXJjZXMiOlsic2VydmljZS9hbmd1bGFyLWdvb2dsZS1tYXBzLWdlb2NvZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBR2pFLE1BQU0sT0FBTyx5QkFBeUI7Ozs7SUFFbEMsWUFBb0IsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7SUFDakQsQ0FBQzs7Ozs7O0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRSxRQUE0QztRQUNqRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQzs7OztRQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQzVFLElBQUksT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBOztnQkFFakcsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ25ELENBQUMsRUFBQyxDQUFBO0lBQ04sQ0FBQzs7Ozs7O0lBRUQsY0FBYyxDQUFDLFdBQXdCLEVBQUUsUUFBMEI7O2NBQ3pELE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7O1FBQUUsT0FBTyxDQUFDLEVBQUU7WUFDckUsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQTs7Z0JBRXRDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNuQyxDQUFDLEVBQUMsQ0FBQTtJQUNOLENBQUM7OztZQXZCSixVQUFVOzs7O1lBRkYsaUJBQWlCOzs7Ozs7O0lBS1YsK0NBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb29yZGluYXRlcyB9IGZyb20gJy4uL3ZhbHVlLW9iamVjdC9jb29yZGluYXRlcydcbmltcG9ydCB7IEdvb2dsZU1hcHNGYWN0b3J5IH0gZnJvbSAnLi9nb29nbGUtbWFwcy1mYWN0b3J5LnNlcnZpY2UnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmd1bGFyR29vZ2xlTWFwc0dlb2NvZGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZ29vZ2xlTWFwczogR29vZ2xlTWFwc0ZhY3RvcnkpIHtcbiAgICB9XG5cbiAgICBnZW9jb2RlKGFkZHJlc3M6IHN0cmluZywgY2FsbGJhY2s6IChjb29yZGluYXRlczogQ29vcmRpbmF0ZXMpID0+IHZvaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ29vZ2xlTWFwcy5jcmVhdGVHZW9jb2RlcigpLmdlb2NvZGUoeydhZGRyZXNzJzogYWRkcmVzc30sIHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdHMgIT09IG51bGwgJiYgcmVzdWx0c1swXSlcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhuZXcgQ29vcmRpbmF0ZXMocmVzdWx0c1swXS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSwgcmVzdWx0c1swXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSkpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IENvb3JkaW5hdGVzKDU5LjkxMzksIDEwLjc1MjIpKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHJldmVyc2VHZW9jb2RlKGNvb3JkaW5hdGVzOiBDb29yZGluYXRlcywgY2FsbGJhY2s6IChzdHJpbmcpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3QgbGF0TG5nID0gdGhpcy5nb29nbGVNYXBzLmNyZWF0ZUxhdExuZyhjb29yZGluYXRlcylcbiAgICAgICAgdGhpcy5nb29nbGVNYXBzLmNyZWF0ZUdlb2NvZGVyKCkuZ2VvY29kZSh7J2xvY2F0aW9uJzogbGF0TG5nfSwgcmVzdWx0cyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0cyAhPT0gbnVsbCAmJiByZXN1bHRzWzBdKVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdHNbMF0uZm9ybWF0dGVkX2FkZHJlc3MpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobGF0TG5nLnRvU3RyaW5nKCkpXG4gICAgICAgIH0pXG4gICAgfVxufVxuIl19