Поиск координат в пути

Я новичок в разработке iOS для iPhone, и у меня возникли проблемы с использованием карт.

Я пытаюсь найти способ создать путь с большим количеством точек координат (широта, долгота), а затем проверить, находится ли внутри этого пути определенная точка координат. Я уже искал, как это сделать с помощью Apple Maps и нового Google SDK, но безуспешно.

Полная проблема:

У меня есть некоторые координаты (но не все), которые представляют путь, по которому проходит транспортное средство. Мне нужно проверить, находится ли определенная координата внутри этого пути транспортного средства. Например: у меня есть координаты X, Y и Z. Если я создам путь с этими координатами, полный путь будет иметь координаты X, Y, W и Z. С помощью этого пути я могу проверить координата W, которой не было в координатах, используемых для построения пути. Это что-то вроде создания пути между двумя точками, но с указанием карте создать маршрут с использованием некоторых контрольных точек и после проверки, находится ли случайная координата внутри этого пути.

Есть способ сделать что-то подобное?


person Birk    schedule 31.05.2013    source источник


Ответы (1)


Я думаю, для простого решения вы могли бы использовать что-то вроде

(MKUserLocation *)userLocation;
CLLocation* X = [init from some coordinates];
CLLocation* Y = [init from some coordinates];
CLLocation* W = userLocation.location;
CLLocationDistance distToX = [X distanceFromLocation:W];
CLLocationDistance distToY = [Y distanceFromLocation:W];

и чтобы определить, насколько далеко W от линии, определяемой X, Y, вы можете настроить следующий код:

def pointLineDistance(p,v1,v2):
  return (numpy.linalg.norm(p-v1)**2 * numpy.linalg.norm(v2-v1)**2 - (numpy.dot((v1-p),(v2-v1)))**2) / numpy.linalg.norm(v2-v1)**2 

Извините, что я использую здесь python и numpy, просто скопируйте и вставьте его, но это обобщенная реализация расстояния между точкой p (ваш W) и двумя другими векторами v1, v2 (ваш X, Y). Найдите http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html

Я не знаю, как это соответствует координатам сферической поверхности, но это нормально для евклидова пространства. Привет, ЭЛ

person El Dude    schedule 08.07.2013