0
我正在學習Angular 2.我使用帶有Observable的LocationService,它在一段時間之後提供給我座標。這是我的代碼。Angular 2,訂閱時收到座標
location.service.ts
public getLocation(): Observable<any> {
return Observable.create(observer => {
if(window.navigator && window.navigator.geolocation) {
window.navigator.geolocation.getCurrentPosition(
(position) => {
observer.next(position);
observer.complete();
},
(error) => observer.error(error)
);
} else {
observer.error('Unsupported Browser');
}
});
}
app.component.ts
ngOnInit() {
this.location.getLocation().subscribe((coordinates) => {
this.lat = coordinates.coords.latitude;
this.lng = coordinates.coords.longitude;
});
}
我如何訂閱座標的接收這樣我就可以呈現地圖,添加一個標記, ..一旦我從第一個訂閱接收它們。
謝謝!事實確實如此。我會添加我的app.component代碼 – Notflip
@Notflip我剛剛更新了答案。 –
在我的代碼中,我在app.component上設置了coords lat和lng變量,你會推薦這個嗎?併爲地圖創建一個新的監聽者/可觀察者?或者只是在訂閱第一個實例時執行所有的邏輯。看起來像凌亂的代碼,不是嗎? – Notflip