Возвращаемое расстояние в милях или километрах от формулы формулы расстояния Манхэттен - PullRequest
0 голосов
/ 26 августа 2018

Я запускаю функцию расстояния такси в списке координат и хочу преобразовать целое число результата в милю или километр. Например:

0,0117420 = | 40,721319 - 40,712278 | + | -73,844311 - -73,841610 |

Где 0,0117420 - это выходной сигнал, который я хотел бы преобразовать в ми / км. Как я мог пойти об этом?

1 Ответ

0 голосов
/ 26 августа 2018

Похоже, это ситуация, когда вы пытаетесь перейти от (40.721319, -73.844311) к (40.712278, -73.841610), где это пары широта / долгота, и вы хотите перемещаться, используя маршрут "Манхэттен", а не прямой большой круговой маршрут.

Похоже, что вы рассматриваете эти точки как противоположные углы "прямоугольника", в котором перемещение разрешено только по северному, южному, восточному и западному направлениям для перемещения из одной точки в другую и когда путешествие по пути всегда приводит путешественника ближе к пункту назначения.

Аппроксимация этого - найти один из углов ограничительного прямоугольника для всех таких путей. Их два: один на (40.721319, -73.841610), а другой на (40.712278, -73.844311). Таким образом, вы можете выбрать один из них и выбрать его в качестве путевой точки для аппроксимации длины каждого возможного «Манхэттенского маршрута» между двумя точками. Если мы выбрали первое, вам нужно будет рассчитать расстояние от начальной точки до точки маршрута, а затем до точки назначения. Такие как:

l(0) = (40.721319, -73.844311)
l(1) = (40.721319, -73.841610)
l(2) = (40.712278, -73.841610)

Используя уравнения Хаверсайна , мы видим, что расстояние от l(0) до l(1) составляет приблизительно 0,2276 км, а расстояние от l(1) до l(2) составляет приблизительно 1,005 км, а весь маршрут составляет около 1,2326. км.

Это приблизительно длина любого «Манхэттенского маршрута», который вы выбираете, когда расстояние строго уменьшается по пути, пройденному между двумя точками. Есть также некоторые ошибки из-за кривизны Земли, но для точек, расположенных близко друг к другу и настолько удаленных от любого из полюсов, этого должно быть достаточно для большинства приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...