获得一公里距离的所有经度和纬度

时间:2019-02-18 05:26:26

标签: django python-3.x location latitude-longitude

我想获得1公里距离内所有用户的经纬度。例如,我有一个用户当前位置的纬度和经度,我想找到他的所有朋友(相距1公里)。

User1 current Latitude : '25.276987'
User1 current Longitude: '55.296249'

类似地,我还有其他所有用户,并且很长一段时间。

{'user2':{lat:'25.122212','long':'55.296249'},'user3':{lat:'25.222212','long':'55.396249'}}

我想找到所有与user1相距1公里的其他用户。

我尝试了this,但没有帮助我。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

我认为,应该反过来。您可以计算用户和他/她的朋友之间的距离,并确定他们是否在用户的1 KM之内。您可以这样简单地完成操作(本示例中,我使用GeoPy

from geopy import distance

def get_distance(user_co, friend_co):
    coords_1 = (user_co.get('lat'), user_co.get('long'))
    coords_2 = (float(friend_co.get('lat')), float(friend_co.get('long')))

    return distance.distance(coords_1, coords_2).km


user = {'lat': 25.276987, 'long': 55.296249}
friends= {'user2':{ 'lat':'25.122212','long':'55.296249'},'user3':{ 'lat':'25.222212','long':'55.396249'}}

for key, value in friends.items():
    dstnce =  get_distance(user, value)
    if dstnce < 1:
        print("Friend {} is in 1 KM".format(key))

您可以查看this so answer,以获取有关距离计算的更多详细信息。