Why it doesn't work?

作業のメモ、記録をブログに残しています。

Google Maps API 2点間の距離と時間を取得する

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>