javascript - 如何找到距给定坐标最近的点

标签 javascript trigonometry closest

如何识别具有LAT、LONG 坐标格式的点是否靠近其他点。

假设我想找到靠近的所有点:

-38.9086621,-68.082214

距离不到 1 公里。我已经知道如何在给定象限中找到坐标,但不知道如何在点附近找到象限。

最佳答案

您可以使用半正弦公式来计算两个给定坐标之间的距离。计算出的距离是给定坐标(直线)之间的直接连接。

JavaScript 示例 (Source):

var R = 6371e3; // meters
var lat1Radians = lat1.toRadians();
var lat2Radians = lat2.toRadians();
var deltaLat = (lat2-lat1).toRadians();
var deltaLon = (lon2-lon1).toRadians();

var a = Math.sin(deltaLat/2) * Math.sin(deltaLat/2) +
        Math.cos(lat1Radians) * Math.cos(lat2Radians) *
        Math.sin(deltaLon/2) * Math.sin(deltaLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));

var d = R * c;

关于javascript - 如何找到距给定坐标最近的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37798621/

相关文章:

c++ - C++中的正弦波生成

创建自定义正弦函数

c++ - 扇出 "arc"的卡片网格

javascript - 当 Jquery 的 close() 找不到元素时,我的应用程序会变慢,我该如何执行相同的查询但速度更快?

javascript - 正则表达式应该是正确的吗?

javascript - 谷歌应用脚​​本: pass return value from one function to another

javascript - Mongoose.js 通过一个 connect() 调用创建到 MongoDB 的多个连接

javascript - Angular 6 - 检查后表达式已更改,构建模式

jquery - 使用 jQuery 查找最近的 sibling

java - 在 2 个排序数组(每个数组中有 1 个值)中找到值对,其中总和最接近目标值