Geolib and getPreciseLocation through an Array



我有一个数组,我需要根据特定点的距离对其数据进行排序。我知道.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",
"Point": "26.1539253, 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的工作示例。

相关内容

最新更新