Как можно получить расстояния между 2 точками с помощью Google Maps Javascript API3? - PullRequest
2 голосов
/ 18 марта 2012

Я занимаюсь разработкой приложения с помощью API Карт Google (версия 3).

У меня есть 2 google.maps.LatLng объекты с именами loc1 и loc2.

Как рассчитать расстояние между ними, скажем, в метрах?

Я пытался использоватьразличные трюки из этого вопроса , чтобы преобразовать широту / долготу в метры.Однако я подвергаю сомнению надежность моей реализации.

Я также пытался реализовать матрицу расстояний, но я думаю, что матрица расстояний - это большая работа только для вычисления расстояния между двумя точками.

Спасибо!

Ответы [ 4 ]

9 голосов
/ 18 марта 2012

Звучит просто, я рекомендую библиотеку геометрии,

https://developers.google.com/maps/documentation/javascript/reference#spherical

computeDistanceBetween(from:LatLng, to:LatLng, radius?:number)

По моему опыту, результат в метрах.Не забудьте добавить дополнительную библиотеку геометрии в ваш тег

<script type="text/javascript" 
src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false">
</script>
1 голос
/ 19 марта 2012

Ваш вопрос немного двусмысленный.

Я имею в виду - когда вы говорите расстояние, подразумеваете

  • расстояние по прямой
  • или расстояние вождения,
  • или велосипедное расстояние,
  • или пешеходное расстояние.Ответ на этот вопрос будет определять вашу реализацию.

Если вам нужно расстояние по прямой линии, то лучше всего использовать реализацию haversine.В противном случае вам нужно будет запросить указания у службы направлений Google, указав режим «транспорт».

1 голос
/ 18 марта 2012

Расчет расстояний между двумя точками в основном сводится к пифагору (сумма квадратов и т. Д.). Тем не менее, это на самом деле не работает с Lat & Lon (которые являются координатами на сфере). Что я делаю, так это конвертирую значения широты и долготы в сетку локальной карты, которая является плоской. Затем я могу использовать Пифагор, чтобы вычислить расстояние между этими точками. Я уже писал об этом в Stack Overflow здесь . В нем будет весь код, который вам понадобится.

0 голосов
/ 20 марта 2012

Когда вы закончите, вы можете проверить расстояние между двумя точками на прямой линии, используя предоставленную карту. Это даст вам визуальное, а также расстояние.

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