Uber と Ola のモバイル アプリ: 旅行の開始地点と終了地点の間の距離を計算するために、Google MAP API を直接使用することはできません。これは、車が移動した正確なルートを提供しない可能性があるためです。総移動距離の計算に使用できるように、移動パスに沿ってポイントをドロップするにはどうすればよいですか?
1391 次
3 に答える
2
ここ数日で私が行った調査から。旅行で移動した合計距離を調べるには、次の方法が最適です。
- 始点から終点までの経路に沿って (lat,lng) を追跡します。
- 旅行の終わりに、すべての座標を取得してサーバーに呼び出しを送信します。
- 緯度、経度の組み合わせから計算された距離を追加します。
距離計算GoogleマップAPIへの呼び出しを減らすためには、旅の終わりに一気に呼び出したほうがいいです。
于 2016-07-04T09:05:55.370 に答える
0
私の推測では、彼らのアプリはバックグラウンドで onLocationChanged() を実行しており、車の速度をキャプチャしています。旅行中にすべての速度値があれば、移動距離を計算できます。
于 2016-06-29T12:27:39.557 に答える
0
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
};
于 2016-06-29T12:30:16.580 に答える