import { Injectable } from "@angular/core"; import { Geolocation } from "@ionic-native/geolocation/ngx"; import { HttpClient } from "@angular/common/http"; import { AlertController } from "@ionic/angular"; @Injectable({ providedIn: "root", }) export class GooglemapService { public data: any = {}; TU_LLAVE = "AIzaSyAw_VEeJAY7R9kuABvgz9e9CiKogTW3MFc"; //wtredata //TU_LLAVE = "AIzaSyBrY7wrURAlHMM_h__9cCRodYALQg1kuzI"; //mauricio constructor( private geolocation: Geolocation, private http: HttpClient, private alertController: AlertController ) {} async loadMap() { const myLatLng: any = await this.getLocation(); this.data.latitud = myLatLng.lat; this.data.longitud = myLatLng.lng; let data = await this.direccion(); return data; } private async getLocation() { const rta = await this.geolocation.getCurrentPosition(); return { lat: rta.coords.latitude, lng: rta.coords.longitude, }; } private async verificationLocation() {} /// Permite obtener la direccion y el barrio a partir de las coordenadas private direccion() { return new Promise((resolve, reject) => { const lat = this.data.latitud; const long = this.data.longitud; this.http .get<{ status: string; results: any[] }>( `https://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${long}&key=${this.TU_LLAVE}`, { responseType: "json" } ) .subscribe((e) => { if (e.status === "OK") { //this.data.direccion = e.results[0].formatted_address; //this.data.barrio = e.results[0].address_components[2].long_name; resolve({ dir: e.results[0].formatted_address, lat: lat, lng: long, }); } else { resolve({ dir: "", lat: null, lng: null, }) } }); }); } }