Google Maps API InfoWindowを開く、閉じる、そして閉じた時のイベントを取得する - Why it doesn't work?
選択された2点間の距離と時間を算出出来るようにしてみます。
コード内で距離マトリックス サービスにアクセスするには、google.maps.DistanceMatrixService オブジェクトを使用します。
Distance Matrix service | Maps JavaScript API | Google Developers
をサンプルとしています。
インターフェースの各項目については、
Distance Matrix Service | Maps JavaScript API | Google Developers
のサンプルか、
Distance Matrix | Maps JavaScript API | Google Developers
の仕様書を参照して下さい。
例によって、取得したKEYを置き換えて、"body"タグに埋め込みます。
<div id="map"></div> <script> function initialize() { var service = new google.maps.DistanceMatrixService; //出発地点の名称と緯度経度情報を設定 (必須) var originName = "Tokyo Station"; var originPos = new google.maps.LatLng(35.679357, 139.771478); //目的地の名称と緯度経度情報を設定(必須) var destinationName = "Shinagawa Station"; var destinationPos = new google.maps.LatLng(35.628986, 139.737848); service.getDistanceMatrix({ origins: [originPos, originName], destinations: [destinationName, destinationPos], travelMode: 'DRIVING', unitSystem: google.maps.UnitSystem.METRIC, avoidHighways: false, avoidTolls: false }, function(response, status) { //リクエウスの結果が返されます。 if (status !== 'OK') { alert('Error was: ' + status); } else { for(var i=0;i<response.rows.length;i++){ var results = response.rows[i].elements; for (var j=0;j<results.length;j++){ var distance = results[j].distance.value; var duration = results[j].duration.value; var min = Math.floor(duration/60); var sec = duration%60; alert('Distance: ' + distance/1000 + ' km\n' + 'Duration: ' + min + ' (min) ' + sec + ' (sec)' ) ; } } } }); } </script> <script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initialize"></script>