Commit aa257fec authored by Ratnadeep Rajendra Kharade's avatar Ratnadeep Rajendra Kharade
Browse files

Created a common service for user location

parent 7b946fe5
import { TestBed } from '@angular/core/testing';
import { LocationService } from './location.service';
describe('LocationService', () => {
beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => {
const service: LocationService = TestBed.get(LocationService);
expect(service).toBeTruthy();
});
});
import { Injectable } from '@angular/core';
import { Geolocation } from '@ionic-native/geolocation/ngx';
import { Subject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class LocationService {
public preiousUserPosition = { lat: 48.783480, lng: 9.180319 };
public currentUserPosition = { lat: 48.783480, lng: 9.180319 };
liveLocationSubject = new Subject<any>(); //Decalring new RxJs Subject
constructor(private geolocation: Geolocation) {
let watch = this.geolocation.watchPosition({ enableHighAccuracy: true, maximumAge: 10000 });
watch.subscribe((position) => {
console.log('IN WATCHER')
console.log('lat'+ position.coords.latitude);
console.log('lng'+ position.coords.longitude);
this.currentUserPosition.lat = position.coords.latitude;
this.currentUserPosition.lng = position.coords.longitude;
this.preiousUserPosition.lat = position.coords.latitude;
this.preiousUserPosition.lng = position.coords.longitude;
this.getUserLiveLocation(this.currentUserPosition);
}, (errorObj) => {
console.log('error getting live location, setting to previous location');
this.getUserLiveLocation(this.preiousUserPosition);
});
}
getUserLocation(): Promise<any> {
return new Promise((resolve, reject) => {
this.geolocation.getCurrentPosition().then((resp) => {
let lat = resp.coords.latitude;
let lng = resp.coords.longitude;
this.currentUserPosition.lat = resp.coords.latitude;
this.currentUserPosition.lng = resp.coords.longitude;
this.preiousUserPosition.lat = resp.coords.latitude;
this.preiousUserPosition.lng = resp.coords.longitude;
resolve(this.currentUserPosition);
}, er => {
console.log('error getting location setting to previous location');
resolve(this.preiousUserPosition);
}).catch((error) => {
console.log('error getting location setting to previous location');
resolve(this.preiousUserPosition);
});
});
}
getUserLiveLocation(location) {
this.liveLocationSubject.next(location);
}
}
Supports Markdown
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