java如何在给定的lat和long中添加x公里距离 1 周 Questions & Answers 2826 我得到了一个用小数表示纬度和经度的点。该点以圆为中心,圆的半径为x km。我如何找到圆圈中的所有纬度和经度
# 1 楼答案 也许最简单的答案是使用毕达哥拉斯 你有一个点(x,y),它是半径为r的圆的中心 “我怎样才能找到圆圈中的所有纬度和经度?”几乎是无限的 相反,您更希望检查一个中心点是否在圆的半径内(猜测您希望找出距离点(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等) 就实际距离而言,你可能需要使用哈弗森公式: a=sin²(Δlat/2)+cos(lat1)。cos(lat2)。sin²(Δ长/2) c=2。atan2(√A.√(1−a) ) d=R.c 其中R是地球半径(平均半径=6371km)(d是距离); 请注意,角度需要以弧度为单位才能传递到trig函数 更多信息请点击这里http://www.movable-type.co.uk/scripts/latlong.html
# 1 楼答案
也许最简单的答案是使用毕达哥拉斯
你有一个点(x,y),它是半径为r的圆的中心
“我怎样才能找到圆圈中的所有纬度和经度?”几乎是无限的
相反,您更希望检查一个中心点是否在圆的半径内(猜测您希望找出距离点(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等)
就实际距离而言,你可能需要使用哈弗森公式:
a=sin²(Δlat/2)+cos(lat1)。cos(lat2)。sin²(Δ长/2)
c=2。atan2(√A.√(1−a) )
d=R.c
其中R是地球半径(平均半径=6371km)(d是距离); 请注意,角度需要以弧度为单位才能传递到trig函数
更多信息请点击这里http://www.movable-type.co.uk/scripts/latlong.html