如何使用中心纬度,半径为1 km的长点获得所有纬度和经度点?

时间:2018-01-05 07:44:50

标签: python location coordinates latitude-longitude area

我有一个中心纬度,长点和半径1公里。我想获取1公里内的所有纬度,长点。

从输出列表中,我想将值与另一个lat,long值进行比较以检查它是否匹配?

例如,如果我有一个点(51.42337159689999,-0.562302811958012)。我想获取1公里半径范围内的所有点。

哪种方法更好?谁能帮我这个?

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