javascript - 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",
"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查看我的工作示例。
推荐阅读
- css - Bootstrap SM Size 下一行的一些元素
- sql - 如何在php中仅比较日期时间戳中的日期?
- c# - 在 WPF 中为 Button 绑定 IsEnabled 属性
- wso2 - 如何搜索每周翻转的 Wso2 日志?
- python - 如何使用 pyodbc 中的代理详细信息连接 Azure SQL DW Server
- python - 在python中绘制多个进程图
- python - Aggregating results from nested tuples based on conditions
- css - 变换旋转元素 - 保持在左侧
- jquery - 动画后jQuery计数器无法显示正确的值
- ios - 如何使 UIScrollView 可滚动?