将坐标值解析为数字 - Angular2

问题描述 投票:-2回答:1

我如何从当前坐标传递值 这是我的代码

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
    };
angular typescript ionic2
1个回答
0
投票

getCurrentPosition函数是异步的并返回一个promise。这意味着then(...)中的代码将在其他代码完成后执行,这意味着this.myLatthis.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

© www.soinside.com 2019 - 2024. All rights reserved.