如何找到离给定坐标最近的点
How to find the nearest points to given coordinates
如何确定具有 LAT, LONG 坐标格式 的点是否靠近其他点。
假设我想找到 :
附近的所有点
-38.9086621 ,-68.082214
距离不到1公里。我已经知道如何在给定象限中找到坐标,但不知道如何在点附近找到象限。
您可以使用 haversine 公式计算两个给定坐标之间的距离。计算出的距离是给定坐标(直线)之间的直接连接。
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;
如何确定具有 LAT, LONG 坐标格式 的点是否靠近其他点。
假设我想找到 :
附近的所有点-38.9086621 ,-68.082214
距离不到1公里。我已经知道如何在给定象限中找到坐标,但不知道如何在点附近找到象限。
您可以使用 haversine 公式计算两个给定坐标之间的距离。计算出的距离是给定坐标(直线)之间的直接连接。
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;