Как найти близлежащие точки с учетом происхождения GPS?

Как найти ближайшую точку по координате GPS? Новая точка может быть выбрана случайным образом, но она должна находиться в пределах 100 метров от исходной точки. Столкновения тоже допустимы.

ie,

origin = (latitude, longitude)

# prints one nearby point in (lat, lon)
print "%s, %s" % get_nearby_point(origin)

# prints another nearby point in (lat, lon)
print "%s, %s" % get_nearby_point(origin)

person tempomax    schedule 28.07.2016    source источник


Ответы (1)


import geopy.distance
from random import random

def get_nearby_point(origin):
    dist = geopy.distance.VincentyDistance(kilometers = .1)
    pt = dist.destination(point=geopy.Point(origin), bearing=random()*360)
    return pt[0],pt[1]

origin = (34.2234, 14.252) # I picked some mostly random numbers

# prints one nearby point in (lat, lon)                                         
print "%s, %s" % get_nearby_point(origin)

# prints another nearby point in (lat, lon)                                     
print "%s, %s" % get_nearby_point(origin)

Результаты:

$ python nearby.py 
34.2225717618, 14.2524285475
34.2225807815, 14.2524529774

Я узнал, как это сделать, здесь. Это не точный дубликат, но его достаточно, чтобы отформатировать ответ. Вы определяете расстояние, используя функцию расстояния, затем перемещаетесь от точки, входящей в функцию, в случайном направлении.

person James    schedule 28.07.2016