2015-05-23 2 views
-4

Я пытаюсь создать приложение для Android, которое дает мне мои изменения в изменении местоположения на каждые 2 метра, которые я перемещаю. Api я использую:Рассчитать расстояние от одной GPS-координаты до другой?

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, (float)2, locationListener); 

Я могу рассчитать расстояние между двумя координатами с формулой гаверсинуса.
Я хочу знать, сколько дистанций я переместил в широтном и продольном направлении. То, что я хочу сказать, хочу знать delta(x) и delta(y) из предыдущего места в метрах. У меня есть со мной currentLat, currentLong, previousLat, previousLong.

Например: Я получаю следующие GPS координаты в моем приложении:

Latitude: 12.9812007 Longitude: 77.74348163 
Latitude: 12.98119122 Longitude: 77.74348192 
Latitude: 12.98118058 Longitude: 77.74348131 
Latitude: 12.9812041 Longitude: 77.74350371 
Latitude: 12.98119337 Longitude: 77.74350154 
Latitude: 12.98117935 Longitude: 77.74350156 
Latitude: 12.9811742 Longitude: 77.74349111 
Latitude: 12.98116478 Longitude: 77.74348577 
Latitude: 12.98114454 Longitude: 77.7434776 
Latitude: 12.98113244 Longitude: 77.74347141 
Latitude: 12.98112247 Longitude: 77.74346629 
Latitude: 12.98111381 Longitude: 77.74347568<br/> 
Latitude: 12.98112889 Longitude: 77.74348118 
Latitude: 12.9811384 Longitude: 77.74348133 
Latitude: 12.98114325 Longitude: 77.74346866 
Latitude: 12.9811306 Longitude: 77.74345533 
Latitude: 12.98112043 Longitude: 77.74344925 
Latitude: 12.98110867 Longitude: 77.74344979 
Latitude: 12.98109571 Longitude: 77.74345256 
Latitude: 12.98110153 Longitude: 77.74346184 
Latitude: 12.98111135 Longitude: 77.74346482 
Latitude: 12.98112283 Longitude: 77.74346764 
Latitude: 12.98113165 Longitude: 77.74347133 
Latitude: 12.98114311 Longitude: 77.74347645 
Latitude: 12.98115332 Longitude: 77.74348057 
+0

В чем вопрос? – Apurva

+0

Поместите это как комментарий, потому что это всего лишь обходной путь: если вы настроили хороший метод вычисления реального расстояния, продолжайте использовать его, чтобы получить то, что хотите, и для вашего дельта (x) пройти в 2 раза 0. . Для delta (y) пройти в 2 лата 0 .... Для чего это стоит ... ;-) – JBA

ответ

0

Если вы хотите знать, широтные различия и продольную разницу отдельно между двумя точками, то вы должны попробовать решение приведенного ниже ,

Если у вас есть

currentLat = 12.98119122 currentLong = 77.74348192 

и

previousLat = 12.9812007 previousLong = 77.74348163 

Затем найти latDifference использование,

haversine(double currentLat, double previousLong, double previousLat, double previousLong) 

Это даст вам широтной разницу между двумя точками, и найти longDifference использования ,

haversine(double previousLat, double currentLong, double previousLat, double previousLong) 

Я предполагаю, что вы знаете формулу гаверсина, как вы сказали в своем вопросе.

Edit:

Чтобы найти latDifference использовать такое же значение для текущей долготы и широты предыдущей

и найти longDifference использовать одинаковое значение для текущей широты и предыдущей широты в гаверсинуса формуле.

+0

Это хорошая идея. Спасибо :) – muchumanoj

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