私は追跡ソフトウェアを作成しています。Androidデバイスがその場所を送信しているので、その場所が管理者によって設定された方向内にあるかどうかを確認する必要があります。
基本的に、管理者は、従業員が送信した場所(緯度、経度)がルートにない場合、Googleマップ(データベースに一連の緯度と経度として保存できます)を使用して従業員(従業員はAndroidフォンを使用しています)のルートを設定しますその後、管理者はWebサイトで通知を受け取ります。カンパリソンの助けが欲しい。単に、従業員がそのルートから逸脱しているかどうかを知りたいのです。それは可能ですか?答えてください私はとても感謝します。
<script>
function initMap() {
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: {lat: 41.85, lng: -87.65}
});
directionsDisplay.setMap(map);
var onChangeHandler = function() {
calculateAndDisplayRoute(directionsService, directionsDisplay);
};
document.getElementById('start').addEventListener('change', onChangeHandler);
document.getElementById('end').addEventListener('change', onChangeHandler);
}
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('end').value,
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
console.log(response);
directionsDisplay.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
}
</script>
変数の応答から緯度と経度の配列を抽出できますか?より良い方法があれば共有してください。
あなたの質問はかなり広いので、私の答えも広いでしょうが、それはコメントに書くには多すぎるでしょう...
道順サービスによって返されるルートは、ポイントまたは座標のコレクションではありません。これは、開始点と終了点(および暗号化されたポリライン)を備えたレッグとステップのコレクションです。詳細はこちらをご覧ください。
補足として、エンコードされたポリラインもデコードできます。詳細については、こちらを参照してください。
従業員のデバイスから取得する可能性のある座標は、100%正確ではない可能性があるため、ルートパスに正確に一致しない可能性があります。したがって、許容誤差の計算が必要になります。
Roads API、より具体的には道路へのスナップや最寄りのサービスを確認することをお勧めします。
または、Geometryライブラリ(API呼び出しでロードする必要があります)にもisLocationOnEdgeというメソッドがあり、カスタムの次数許容値に基づいて、ポイントがポリライン上またはポリラインの近くにあるかどうかを判断するために使用できます。
これがあなたが始めるのに役立つことを願っています!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加