Geolib和getPreciseLocation通过数组

问题描述

我有一个数组,我需要按特定点的距离对它的数据进行排序。 知道.sort()自从我处理坐标以来就行不通了,所以我一直在使用一个名为Geolib的库,该库具有一个名为getPreciseLocation()函数,正是我所需要的,但是并没有似乎在遍历数组时起作用。 这是包含我将要使用的数据的数组。

数据:

[
    {
        "id": "1","Point": "27.1597268,40.6646601"
    },{
        "id": "2","Point": "11.1640393,49.648713"
    },{
        "id": "3","Point": "26.1539253,42.6599287"
    },{
        "id": "4","Point": "21.1597268,44.6646601"
    },{
        "id": "5","Point": "10.1640393,43.648713"
    },{
        "id": "6",61.6599287"
    }
]

我一直试图用来遍历数组的代码

let distancesFromUserLocation = [];
this.state.Data.forEach(item => {
    distancesFromUserLocation.push(geolib.getPrecisedistance({latitude: 30.1891168,longitude: 11.6226982},item.Point))
})

免责声明:我只需要获取每个数组对象到新数组的距离即可。 我已经尝试并研究了许多事情,并且找到了解决方案,但是仅仅以为我正在寻求解决方案,就会出问题。

解决方法

您需要每次迭代到DistancesFromUserLocation数组的生成距离。

let DistancesFromUserLocation = [];
this.state.Data.forEach(item => {
    // push each distance to `DistancesFromUserLocation`
    DistancesFromUserLocation.push(
       geolib.getPreciseDistance(
           {latitude: 30.1891168,longitude: 11.6226982},item.Point
       );
    )
})

然后您才能使用Array.sort()

console.log(DistancesFromUserLocation.sort());

编辑: 在codesandbox处查看我的工作示例。