2015-06-22 9 views
0

Кто-нибудь знает, где можно найти отдельные расстояния между широтой и долготой между двумя маркерами Google? Я могу получить общее расстояние, используя метод haversine, такой как: Find distance between two points on map using Google Map API V2Расстояние между широтами и долготами, разделяющими метод haversine

Как я могу получить каждое значение, пожалуйста?

Благодаря

Frank

+0

Не будет ли это чем-то вроде 'Math.abs (loc1.getLatitude() - loc2.getLatitude())' где 'loc1' и' loc2' - ваши местоположения? –

ответ

0

Marker класса имеет Position свойство, так

double latitudeDifferenceInDegrees = marker1.getPosition().latitude - marker2.getPosition().latitude; 
double longitudeDifferenceInDegrees = marker1.getPosition().longitude - marker2.getPosition().longitude; 

Вы можете преобразовать разность широты в расстояние в метрах - каждая степень равна 110.574 kilometers:

double latitudeDifferenceInMeters = latitudeDifferenceInDegrees * 110574; 

Вы не можете сделать то же самое для долготы. На экваторе долгота составляет около 111 км, но около полюсов она намного меньше. Если вы только использовать это для коротких расстояний, я бы на

double longitudeDifferenceInMeters = longitudeDifferenceInDegrees * 111320 * Math.cos((marker1.getPosition().latitude + marker2.getPosition().latitude)/2); 

Обратите внимание, что оба может дать отрицательные значения, если первый маркер находится к югу или к западу от второго маркеров. Если вас интересуют только положительные значения, примените Math.abs().

+0

Спасибо Glorfindel - Это выглядит хорошо и легко для новичков, подобных мне. Я дам ей вихрь – AesculusMaximus

+0

до Джорфинеи: долгота горизонтальная (ось X), широта является поэтичной (ось Y) и является широтой, которая отличается от дальнего от экватора. Это различие связано с коррекцией Меркатора и потому, что вы видите квадрат мира, а не прямоугольный. Вы можете найти более подробную информацию по «масштабному коэффициенту» https://en.wikipedia.org/wiki/Mercator_projection –

+0

@NDorigatti нет, это совсем не так. Это не имеет никакого отношения к Меркатору - формулы, которые я использую (и формулу Хаверсина, упомянутую OP), поступают из [сферической геометрии] (https://en.wikipedia.org/wiki/Spherical_trigonometry). Там * есть * (довольно небольшая) неточность в них, потому что Земля не является сферой, а эллипсоидом. – Glorfindel

Смежные вопросы