【问题标题】:How to add x km distance in given lat, long如何在给定的纬度,经度中添加 x km 距离
【发布时间】:2012-01-03 14:16:08
【问题描述】:

我用小数点得到了经纬度。该点以圆为圆心,圆的半径为 x 公里。如何找到圆圈中覆盖的所有经纬度?

【问题讨论】:

  • 我有很多经纬度。我只需要确定哪个纬度,哪个经度属于那个圆圈区域。我必须把它们分开。

标签: java google-maps-api-3 latitude-longitude


【解决方案1】:

可能最简单的答案是使用毕达哥拉斯。

你得到一个点 (x,y),它是半径为 r 的圆的中心。

'我如何找到圆圈中覆盖的所有纬度和经度?'几乎是无限的。

相反,您更愿意检查中心点是否在圆的半径内(假设您想弄清楚点 (x,y) 的 k 公里范围内的位置)。

给定点 (x1,y1),你会做 sqrt((x1-x)^2 + (y1-y)^2) (毕达哥拉斯定理 a^2 = b^2 + c^2) 来找到从点 (x,y) 到点(x1,y1) 的距离,并检查距离是否

就实际距离而言,您可能需要使用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

【讨论】:

  • 您好,感谢您的回复。你的猜测是正确的。我有很多经纬度。我只需要确定哪个纬度,哪个经度属于那个圆圈区域。我必须把它们分开。请建议我使用 java 脚本的任何解决方案。
  • 检查链接movable-type.co.uk/scripts/latlong.html,它包含javascript :)。请参阅 JavaScript 中的余弦球定律实现,这可能是您最好的选择。
猜你喜欢
  • 1970-01-01
  • 2011-08-28
  • 2016-08-29
  • 1970-01-01
  • 2015-07-12
  • 2014-02-22
  • 2020-11-01
  • 2012-07-07
  • 2012-02-15
相关资源
最近更新 更多