我有一个中心纬度,长点和半径1公里。我想获取1公里内的所有纬度,长点。
从输出列表中,我想将值与另一个lat,long值进行比较以检查它是否匹配?
例如,如果我有一个点(51.42337159689999,-0.562302811958012)。我想获取1公里半径范围内的所有点。
哪种方法更好?谁能帮我这个?
答案 0 :(得分:4)
这是我的粗暴尝试......希望这有助于让你的大脑流动?
import math
def findpoints(lon, lat):
radius = 1
N = 360
# generate points
circlePoints = []
for k in range(N):
angle = math.pi*2*k/N
dx = radius*math.cos(angle)
dy = radius*math.sin(angle)
point = {}
point['lat']= lat + (180/math.pi)*(dy/6371) #Earth Radius
point['lon']= lon + (180/math.pi)*(dx/6371)/math.cos(lon*math.pi/180) #Earth Radius
# add to list
circlePoints.append(point)
return circlePoints