Google Map Расчет расстояния между двумя точками широты / долготы?

Какой будет лучший способ (или) Существует ли уже способ Google для расчета простого Straight Line расстояния между двумя точками, основанного на широте / долготе или даже на почтовом / почтовом индексе?


person 夏期劇場    schedule 16.01.2013    source источник
comment
какой язык вы используете? Или вы пытаетесь сделать это с помощью Google Maps?   -  person geocodezip    schedule 16.01.2013


Ответы (4)


Я нашел ответ сам, откуда-то еще.

Да, уже есть собственное решение от Google по адресу: https://developers.google.com/maps/documentation/javascript/reference?hl=en-US#spherical

Все, что мне нужно сделать, это вызвать метод: 'google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);'

(Конечно, мне также нужно включить дополнительный/обязательный '.js')

person 夏期劇場    schedule 17.01.2013
comment
Судя по интервалу между именами в Google, я бы предположил, что это сферическое расстояние, а не прямое, как вы указали в своем вопросе. (ищу то же самое, но хочу дешевый расчет) - person Aidan Ewen; 20.01.2016

"Лучший" - довольно расплывчатый критерий. Если вы можете предположить, что Земля является идеальной сферой, то вам нужна простая формула для расстояния по большому кругу. См., например, статью Википедии. При таком предположении ваше расстояние может отличаться менее чем на полпроцента.

Фактическая форма Земли на самом деле представляет собой слегка сплюснутый сфероид. Поверхностное расстояние на этой форме вычислить сложнее. См. работу Эда Уильямса в javascript. Может быть, он позволит вам использовать его код. Если нет, он дает соответствующие ссылки.

person Gene    schedule 17.01.2013

Бесплатное решение находится по адресу http://ezcmd.com/apps/app_ezip_locator#ezip_locator_api.

Может помочь вам найти расстояние между двумя широтными и длинными координатами в милях или км.

Или вы можете попробовать http://ezcmd.com/apps/app_geo_postal_codes#geo_postal_codes_api.

person Jimmy McBallzy    schedule 11.02.2013

«Лучший» способ зависит от нескольких вещей. Можете ли вы предоставить немного больше информации о том, насколько точно и / или какое приложение требуется? Класс google.maps.DirectionsService позволит вам рассчитать расстояние на стороне клиента с помощью javascript, но если вам нужно точное расстояние по прямой, вы можете использовать серверную часть postgresql + postgis. Вычисление точных расстояний с помощью широты и долготы может быть сложным из-за различных проекций земли в зависимости от диапазона точек и расстояний.

person scrivy    schedule 16.01.2013
comment
Извините, я имею в виду просто straight Расстояние, какая бы география там ни была. - person 夏期劇場; 16.01.2013
comment
вычисление расстояний по прямой с координатами широты/долготы использует некоторые довольно сложные формулы в зависимости от вовлеченных расстояний, но один из способов получить простое точное расстояние по прямой во всем мире - это выполнить запрос расстояния в postgresql + postgis - person scrivy; 16.01.2013
comment
Насколько важна точность? просто мир не такой круглый, как хотелось бы :-P - person scrivy; 16.01.2013
comment
прямо через землю? - person argentage; 17.01.2013
comment
если вычисляемое расстояние между точками не проецируется на двумерную плоскость (для упрощения математики), прямая обычно подразумевает учет кривизны земли - person scrivy; 17.01.2013
comment
Широта/длинные расстояния снова ...... сложны. Что ты пытаешься сделать? есть несколько формул для использования в зависимости от коротких и длинных вычислений или самое простое решение, postgis. - person scrivy; 17.01.2013
comment
postgis тоже не прост.... но он содержит волшебную точную функцию расстояния, которую вы, вероятно, ищете. есть разные способы реализовать это в javascript, но они не очень точны. проверьте movable-type.co.uk/scripts/latlong.html - person scrivy; 17.01.2013
comment
Извините, все здесь, но я только что сам нашел чистое простое решение (ответ), которое уже поддерживается самим Google. - person 夏期劇場; 17.01.2013
comment
круто, а какая ссылка? хотел бы знать простой способ сделать это - person scrivy; 17.01.2013