ポリライン及びステップの情報の取得

広告

ルート案内の結果を表示する場合、GDirectionsクラスのコンストラクタで1番目にGMap2クラスのオブジェクトを指定し、2番目にテキストのルート案内を表示する要素を指定しました。

var directions = new GDirections(map, document.getElementById('route'));

これは必ず両方を指定しなければならないわけではなく、地図上にポリラインを表示したいだけの場合や、テキストのルート案内だけ表示したい場合があります。その場合はどちらかの引数をnullにすることも可能です。

var directions = new GDirections(null, document.getElementById("route"));
var directions = new GDirections(map, null);

ただ、ここでどちらかをnullにしてしまうと、それに関するデータそのものも取得を行いません。例えばGMaps2クラスのオブジェクトをnullに指定するとloadメソッドなどを使用した時にポリラインに関する情報を取得しなくなります。またテキスト用の要素をnullに指定した場合はステップに関する情報を取得しなくなります。

テキストのルート案内は表示しなくてもいいけど、ステップに関する情報は取得して自分でテキストのルート案内を表示したい場合にはオプションで指定する必要があります。

getPolyline: true
getSteps: true

ポリライン情報を取得したい場合にはgetPolylineプロパティにtrueを指定します。またステップ情報を取得したい場合にはgetStepsプロパティにtrueを指定します。

実際には次のように記述します。

var directions = new GDirections(map, null);

var pointArray = ["東京都港区芝公園4-2-8", 
                  "東京都港区六本木6丁目"];
var option = {locale: "ja_JP", getSteps: true};
directions.loadFromWaypoints(pointArray, option);

サンプルプログラム

では簡単なサンプルで試してみます。

code18_1.js

var map;
var directions;

function initialize() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(35.681379,139.765577), 13);

    directions = new GDirections(null, document.getElementById("route"));
  }
}

function dispRoute() {
  var from = document.getElementById("from").value;
  var to = document.getElementById("to").value;

  directions.clear();

  var pointArray = [from,to];
  var option = {locale: "ja_JP", getPolyline: true};
  directions.loadFromWaypoints(pointArray, option);
}

map18_1.html

<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>サンプル:ポリライン及びステップの情報の取得</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=(key)&sensor=false"
            type="text/javascript" charset="utf-8"></script>
    <script src="./js/code18_1.js" type="text/javascript"></script>
  </head>
  <body onload="initialize()" onunload="GUnload()">
    <form>
    <input type="text" size="20" id="from" value="東京駅" />
    --><input type="text" size="20" id="to" value="渋谷駅" />
    <input type="button" id="btn1" value="ルート案内" onclick="dispRoute()" />
    </form>

    <div id="map_canvas" style="width: 500px; height: 300px"></div>
    <div id="route" style="width: 500px; height: 200px;overflow: scroll"></div>
  </body>
</html>

ではブラウザで上記のURLを見てみます。

p18-1

今回はGDirectionsクラスのオブジェクトを指定する時に、1番目の引数にnullを指定していますのでルート検索の結果を地図上には表示しません。

p18-2

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)