このページの本文へ

Googleマップ有料化でYahoo! APIを使ってみた (2/5)

2012年03月12日 13時16分更新

文●古籏一浩

  • この記事をはてなブックマークに追加
本文印刷

地図を表示する

 最初に、単純に地図を表示するプログラムから試してみましょう。Googleマップでの表示がサンプル1、Yahoo!マップでの表示がサンプル2です。

 Googleマップでは以下のようにライブラリーを読み込みます。


<script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

 Yahoo!マップの場合は以下のようにライブラリーを読み込みます。


<script type="text/javascript" src="http://js.api.olp.yahooapis.jp/OpenLocalPlatform/V1/jsapi?appid=●●●"></script>

 地図を表示するためのコンテナをdiv要素で用意します。コンテナはGoogleマップもYahoo!マップも同じdiv要素が使えます。


<div id="myMap" style="width:600px;height:400px;"></div>

 次に、地図を表示する部分です。Googleマップ、Yahoo!マップともJavaScriptで地図を扱うオブジェクトを生成します。Googleマップではオブジェクトを生成するときに緯度経度、表示先のコンテナを指定するだけで地図が表示されます。

 Yahoo!マップではオブジェクトを生成した後にdrawMap()メソッドを使って表示します。どちらも基本的な引数は同じであり、書き方が少し違うだけです。

【図】fig1.png

Googleマップの表示

【図】fig1.png

Yahoo!マップの表示

サンプル1[HTML]


<!DOCTYPE html> 
<html> 
  <head> 
  <meta charset="utf-8"> 
    <title>グーグルマップで新宿駅の地図を表示する</title>
    <script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript" src="js/sample.js"></script>
  </head>
  <body>
    <h1>新宿駅の地図</h1>
    <div id="myMap" style="width:600px;height:400px;"></div>
  </body>
</html>

サンプル1[sample.js]


window.onload = function(){
  var lat = 35.692507;  // 新宿駅の緯度
  var lng = 139.700346; // 新宿駅の経度
  var map = new google.maps.Map(
    document.getElementById("myMap"),{
      zoom : 12// ズームレベルは12
      center : new google.maps.LatLng(lat, lng),
      mapTypeId : google.maps.MapTypeId.ROADMAP // 通常の地図を表示
    }
  );
}

サンプル2[HTML]


<!DOCTYPE html> 
<html> 
  <head> 
  <meta charset="utf-8"> 
    <title>ヤフーマップで新宿駅の地図を表示する</title>
    <script type="text/javascript" src="http://js.api.olp.yahooapis.jp/OpenLocalPlatform/V1/jsapi?appid=●●●"></script>
    <script type="text/javascript" src="js/sample.js"></script>
  </head>
  <body>
    <h1>新宿駅の地図</h1>
    <div id="myMap" style="width:600px;height:400px;"></div>
  </body>
</html>

サンプル2[sample.js]


window.onload = function(){
  var lat = 35.692507;  // 新宿駅の緯度
  var lng = 139.700346; // 新宿駅の経度
  var map = new Y.Map("myMap");
  map.drawMap(
    new Y.LatLng(lat, lng),
    14// ズームレベルは14
    Y.LayerSetId.NORMAL  // 通常の地図を表示
  );
}

 Googleマップでは地図切り替えボタンとコントローラーが自動的に表示されますが、Yahoo!マップではコントローラーは表示されません。Yahoo!マップではaddControl()メソッドを使って、表示したいコントローラーを指定する必要があります。コントローラーの種類は以下の表のとおり、実際のプログラムはサンプル3です。

【図】fig3.png

コントローラー付き地図の表示

Y.CenterMarkControlセンターマーク
Y.HomeControl初期位置にホームアイコンを表示
Y.LayerSetControl地図の種類を切り換えるボタン
Y.ScaleControl地図の縮尺を示すスケールバー
Y.ZoomControlシンプルなズームコントロール(+-ボタン)
Y.SliderZoomControlHorizontal横向きのズームコントロール(スライダー)
Y.SliderZoomControlVertical縦向きのズームコントロール(スライダー)
Y.SearchControl地図検索ボックス

サンプル3[sample.js] ※HTML部分はサンプル2と同じ


window.onload = function(){
  var lat = 35.692507;  // 新宿駅の緯度
  var lng = 139.700346; // 新宿駅の経度
  var map = new Y.Map("myMap");
  map.drawMap(
    new Y.LatLng(lat, lng),
    14// ズームレベルは14
    Y.LayerSetId.NORMAL  // 通常の地図を表示
  );
  // 地図の種類を切り換えるコントローラーを表示
  map.addControl(new Y.LayerSetControl());
  // ズームコントローラーを表示
  map.addControl(new Y.SliderZoomControlVertical());
}

 サンプル3では標準の地図を表示していますが、地図の種類は以下の3種類を選択できます。

Y.LayerSetId.NORMAL標準の地図
Y.LayerSetId.PHOTO航空写真
Y.LayerSetId.B1地下街

 また、Yahoo!マップにはこのほかにも地形図や水域図などが用意されています。詳細は以下のページを参照してください。

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています