我使用小数点得到纬度和经度的点。该点以圆为中心,圆的半径为x km。如何找到圆圈中涵盖的所有纬度和经度?
答案 0 :(得分:2)
可能最简单的答案是使用毕达哥拉斯。
你有一个点(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等)。
就实际距离而言,您可能需要使用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是距离); 请注意,角度需要以弧度为单位才能传递给trig函数!