Commit bd7d4c04 authored by prumde's avatar prumde

Added Location capture component in SearchComponent

- Devloped by Chitranga T.


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@174061 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 28539e91
import { Injectable } from '@angular/core';
import { Http, Headers,RequestOptions } from '@angular/http';
import { EcmLocation } from './ecm-location';
import { EmitterService } from '../ecm-search/ecm-search.component';
@Injectable()
export class EcmLocationService {
pincode;
add:any;
public location: EcmLocation;
constructor( public http: Http) {}
getCitydata() {
let localCity = localStorage.getItem('city');
if([null, undefined, ""].indexOf(localCity,0) != -1){
//navigator.geolocation.getCurrentPosition(this.successCallback,this.errorCallback,this.options);
//https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyBo62AVqqkEz5Ys9D-dQWE_VF4lVpHaFy0
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.post('https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyBo62AVqqkEz5Ys9D-dQWE_VF4lVpHaFy0',options).subscribe(
response => {
if(response.status == 200){
let data = response.json();
console.log('data.......'+data.location.lng);
this.successCallback(data);
}
},
error => {
alert(error.text());
}
);
} else {
// do something when you already have the location
}
}
getAddress() {
return this.add;
}
displayLocation = (latitude,longitude) => {
this.http.get('https://maps.googleapis.com/maps/api/geocode/json?latlng='+latitude+','+longitude+'&sensor=true').subscribe(
response => {
if(response.status == 200){
let data = response.json();
location['address'] = data.results[0].formatted_address;
this.add=data.results[0].formatted_address;
// console.log(data.results[0].formatted_address);
// console.log(this.add);
}
localStorage.setItem('location', JSON.stringify(location));
EmitterService.get("selectedCity").emit(location['city']);
},
error => {
alert(error.text());
}
);
}
successCallback = (position)=> {
//let latitude = position.coords.latitude;
//let longitude = position.coords.longitude;
let latitude = position.location.lat;
let longitude = position.location.lng;
location['latitude'] = latitude;
location['longitude'] = longitude;
console.log(latitude+' '+longitude)
this.displayLocation(latitude,longitude);
}
errorCallback = (error) => {
let errorMessage = 'Unknown error';
switch(error.code) {
case 1:
errorMessage = 'Permission denied';
break;
case 2:
errorMessage = 'Position unavailable';
break;
case 3:
errorMessage = 'Timeout';
break;
}
console.log(errorMessage);
};
options = {
enableHighAccuracy: true,
timeout: 1000,
maximumAge: 0
};
}
export interface EcmLocation {
latitude : string;
longitude : string;
address: string;
pincode: number;
city: string;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment