我用小数点得到了经纬度的点。该点以圆为中心,圆的半径为x公里。如何找到圆圈内的所有经纬度?
最佳答案
可能最简单的答案是使用毕达哥拉斯。
你得到一个点 (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) 的距离,并检查距离是否 <= 到半径 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,371 公里)(d 是距离); 请注意,角度必须以弧度为单位才能传递给三角函数!
更多信息请点击此处 http://www.movable-type.co.uk/scripts/latlong.html
关于java - 如何在给定的经纬度中添加 x km 距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222698/