我如何从当前坐标传递值 这是我的代码
applyHaversine(locations){
Geolocation.getCurrentPosition().then((position) => {
this.myLat = position.coords.latitude;
this.myLng = position.coords.longitude;
console.log(this.myLat+" <==> "+this.myLng);
});
let usersLocation = {
lat: this.myLat,
lng: this.myLng
};
locations.map((location) => {
let placeLocation = {
lat: location.latitude,
lng: location.longitude
};
location.distance = this.getDistanceBetweenPoints(
usersLocation,
placeLocation,
'miles'
).toFixed(2);
});
return locations;
}
如果我使用静态值,我想从当前位置获得动态值,它将是:
let usersLocation = {
lat: 3.9764484, //static data
lng: 122.5089854 //static data
};
getCurrentPosition
函数是异步的并返回一个promise。这意味着then(...)
中的代码将在其他代码完成后执行,这意味着this.myLat
和this.myLng
将是未定义的。
Geolocation.getCurrentPosition().then((position) => {
this.myLat = position.coords.latitude;
this.myLng = position.coords.longitude;
console.log(this.myLat+" <==> "+this.myLng);
});
这意味着您需要调整代码才能处理此异步调用。最好的方法是使用promises。
几个星期前有人问了同样的问题,我给了他一个详细的答案。你可以在这里找到它:Get current position in ionic2