【Google Maps API】DirectionsServiceを使ってルート検索する方法②

GoogleMapsApi

Google Maps APIは、地図や地理情報サービスをウェブアプリケーションに統合するための強力なツールです。特に、ルート検索機能は多くの場面で役立ちます。
前回の記事では、出発地と目的地は固定で指定して、ルート検索を行いました。
この記事では、Google Maps APIのDirectionsServiceを使用して、出発地と目的地を入力して、ルート検索を行う方法を初心者向けにわかりやすく説明します。

前回の記事:
【Google Maps API】DirectionsServiceを使ってルート検索する方法①

HTMLファイルの作成

任意のエディタでHTMLファイルを作成します。

■sample.html

<!DOCTYPE html>
<html>
<head>
  <title>ルート検索</title>
  <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
  <style>
    #map {
      height: 100%;
      width: 75%; /* 幅を75%に設定 */
      float: left; /* 左側に配置 */
    }
    html, body {
      height: 100%;
      margin: 0;
      padding: 0;
    }
    #panel {
      height: 100%;
      width: 25%; /* 幅を25%に設定 */
      float: right; /* 右側に配置 */
      background-color: #fff;
      padding: 10px;
      border: 1px solid #999;
      text-align: left;
      line-height: 30px;
      box-sizing: border-box; /* パディングとボーダーを含む幅と高さを計算 */
    }
    #route-info {
      margin-top: 20px;
    }
  </style>
</head> 
<body>
  <div id="panel">
    <b>出発地: </b>
    <input id="出発地" type="text"><br>
    <b>目的地: </b>
    <input id="目的地" type="text"><br>
    <button onclick="calculateAndDisplayRoute()">ルート検索</button><br>
    </div>
  <div id="map"></div>

  <script src="script.js"></script> 
</body> 
</html>

5行目:Google Maps JavaScript APIを読み込みます。YOUR_API_KEYにはご自分の取得したAPIキーを入力します。
6行目~30行目:地図のスタイルを設定します。
35行目~38行目:出発地、目的地を入力する入力欄を設定します。
39行目:ルート検索ボタンを設定します。出発地、目的地を入力後、このボタンをクリックすると、ルート検索を行います。

JavaScriptファイルの作成

同じディレクトリにscript.jsファイルを作成します。

■script.js

let map;
let directionsService;
let directionsRenderer;
;
function initMap() {

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 14,
    center: {lat: 35.170915, lng: 136.881537} // マップの中心を名古屋駅に設定
  });

  directionsService = new google.maps.DirectionsService();
  directionsRenderer = new google.maps.DirectionsRenderer();
  directionsRenderer.setMap(map);
  directionsRenderer.setPanel(document.getElementById('panel'));
}

function calculateAndDisplayRoute() {
  const start = document.getElementById('出発地').value;
  const end = document.getElementById('目的地').value;

  var request = {
    origin: start,
    destination: end,
    travelMode: 'DRIVING'
  };

  directionsService.route(request, function(result, status) {
    if (status == 'OK') {
      directionsRenderer.setDirections(result);
      var route = result.routes[0];
      var leg = route.legs[0];
      document.getElementById('route-info').innerHTML += '<b>所要時間:</b> ' + leg.duration.text;
    } else {
      window.alert('Directions request failed due to ' + status);
    }
  });
}

window.onload = initMap;

19行目:入力した出発地の値を変数を設定しています。
20行目:入力した目的地の値を変数を設定しています。

実行と確認

ファイルの設定が完了したら、ブラウザでHTMLファイルを開いて地図とルートが正しく表示されることを確認します。

google maps api

まとめ

今回は、Google Maps APIのDirectionsServiceを使用して、出発地と目的地を入力して、ルート検索を行う方法を説明しました。

 

タイトルとURLをコピーしました