/ / Як Убер / Ола обчислює відстань, що пройшла від початкової точки до кінцевої точки поїздки? - Android, google-maps-android-api-2, відстань, android-gps

Як Убер / Ола обчислює відстань, що пройшла від початку до кінцевої точки поїздки? - Android, google-maps-android-api-2, відстань, android-gps

Мобільне додаток Убер та Ола: Щоб розрахувати відстань між початковою точками та кінцевою точкою поїздки, ми не можемо використовувати API Google MAP безпосередньо, оскільки воно не може дати точний маршрут, пройдений автомобілем. Як залишити точку вздовж шляху подорожі, щоб я міг використовувати їх для обчислення загальної відстані, пройдених?

Відповіді:

0 для відповіді № 1

Я думаю, що їх додаток використовує onLocationChanged () на задньому плані та фіксує швидкість автомобіля. Якщо у вас є всі значення швидкості під час поїздки, ви можете обчислити пройдену відстань.


0 для відповіді № 2
var rad = function(x) {


return x * Math.PI / 180;
};

var getDistance = function(p1, p2) {
var R = 6378137; // Earth’s mean radius in meter
var dLat = rad(p2.lat() - p1.lat());
var dLong = rad(p2.lng() - p1.lng());
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) *
Math.sin(dLong / 2) * Math.sin(dLong / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return d; // returns the distance in meter
};

Джерело вищезазначеного коду


0 для відповіді № 3

З будь-яких досліджень, проведених я за останні кілька днів. Найкращий спосіб працює, щоб дізнатись загальну відстань, що пройшла в поїздку:

  1. Слідкуйте за (лат, нг) по дорозі, що пройшла від пункту Пуск до кінцевої точки.
  2. Наприкінці поїздки відправте виклик на сервер із усіма зафіксованими координатами.
  3. Додайте відстань, розраховану з комбінації латів, нг.

Для того, щоб скоротити виклики на розрахунок з API Google Map API, краще відправляти дзвінки в кінці поїздки одночасно.