22/11/2017 Development / java script

Esse código foi feito para integrar o site da Odete.com.br usando angular5 e googleMaps

Eu criei um service chamado ColaboradorService onde tem uma porrada de método que eu utilizo nas consultas dos colaboradores, e um desses métodos é uma função que retorna a latitude e longitude de uma pessoa, a partir de um cep ou endereço consultado. Eu preciso desses dados, para consultar no mongo e trazer as diaristas, com base na lat e lng, + o Raio de distancia.

Como vocês sabem, não é possível injetar o script do google na mão, é muito feio. 

import { GoogleMapsAPIWrapper, MapsAPILoader } from '@agm/core';

import { Injectable, NgZone } from '@angular/core';

export class ColaboradorService extends GoogleMapsAPIWrapper {

constructor(private http: Http, private __loader: MapsAPILoader, private __zone: NgZone) {

super(__loader, __zone);

}

/* retorna latitude e longitude */

getCepbyGoogle(address: string): Observable<any[]> {

 

return Observable.create(observer => {

this.__loader.load().then(() => {

console.log('Getting Address - ', address);

const geocoder = new google.maps.Geocoder();

geocoder.geocode( { 'address': address}, function(results, status) {

if (status === google.maps.GeocoderStatus.OK) {

observer.next(results[0].geometry.location);

observer.complete();

} else {

console.log('Error - ', results, ' & Status - ', status);

observer.next({});

observer.complete();

}

});

});

});