gpt4 book ai didi

javascript - 移动设备 webapp 的 "Find Nearest"进程?

转载 作者:行者123 更新时间:2023-11-30 06:06:28 25 4
gpt4 key购买 nike

希望为移动网络应用程序实现“查找最近的”过程,该过程将根据用户的当前位置自动选择表单下拉列表中最接近的项目匹配。

假设我们有列表中每个元素的纬度/经度,以及来自移动设备的人员位置,找到最近项目的最佳方法是什么?我们将有大约 150-200 个可能的项目,并且想要最接近用户的一个,以便我们可以将其设置为默认值。

有没有一种方法可以在 JS 中有效地执行此操作,或者它是否更适合服务器端?

最佳答案

您需要一个循环来计算距离和最近的距离。使用 Haversine 公式:

var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var distance = R * c;

最好运行您自己的基准测试,看看是在服务器端还是在客户端执行此操作更好。

关于javascript - 移动设备 webapp 的 "Find Nearest"进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4258095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com