如何在给定的纬度和经度中添加x公里的距离

3

我使用十进制经纬度获取了一个点。该点位于一个圆的中心,圆的半径为x公里。如何找到覆盖在圆内的所有经纬度?


我有很多经纬度数据。我只需要确定哪些经纬度属于圆形区域,并将它们分离出来。 - Lokesh Paunikar
1个回答

2
可能最简单的答案是使用勾股定理。
您有一个半径为r的圆的中心点(x,y)。
“如何找到覆盖圆中所有纬度和经度?”几乎是无限的。
相反,您可能更想检查中心点是否在圆的半径内(猜测您想弄清楚哪些位置距离点(x,y)在k km之内)。
给定点(x1,y1),您将执行sqrt((x1-x)^ 2 +(y1-y)^ 2)(勾股定理a ^ 2 = b ^ 2 + c ^ 2)以查找从点(x,y)到点(x1,y1)的距离,并检查距离是否<=半径r。范围很容易计算(xmin = x-r,xmax = x+r等)。
就实际距离而言,您可能需要使用Haversine公式:
a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
c = 2.atan2(√a, √(1−a))
d = R.c
其中R是地球半径(平均半径= 6,371km)(d是距离);请注意,角度需要以弧度传递给三角函数!
更多信息,请参见http://www.movable-type.co.uk/scripts/latlong.html

嗨,谢谢回复。你的猜测是正确的。我有很多纬度和经度。我只需要确定哪些纬度和经度属于那个圆形区域,然后将它们分离出来。请在 JavaScript 中为我提供任何解决方案。 - Lokesh Paunikar
请查看链接http://www.movable-type.co.uk/scripts/latlong.html,它包含了JavaScript代码。参考JavaScript中的球面余弦定理实现,这可能是您最好的选择。 - Schalk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接