このページの本文へ

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

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

文●古籏一浩

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

マーカークリック時の処理を追加する

 地図を使ったWebサービスでは、マーカーがクリックされた場合に何らかの処理をすることがよくあります。マーカーがクリックされたらアラートダイアログを表示してみましょう。Googleマップの場合はサンプル6、Yahoo!マップの場合はサンプル7が実際のプログラムです。

 Googleマップでは、google.maps.event.addListener()を使って対象となるマーカー、イベント名、イベントハンドラを設定します。Yahoo!マップでは、マーカーオブジェクトのbind()メソッドを使います。bind()メソッドにイベント名とイベントハンドラを設定します。イベントハンドラには、clickイベント以外にmouseover、mouseoutイベントを設定できます。

【図】fig6.png

Googleマップでマーカーをクリックした場合

【図】fig7.png

Yahoo!マップでマーカーをクリックした場合

サンプル6[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>

サンプル6[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 // 通常の地図を表示
    }
  );
  // マーカーを表示する
  var marker = new google.maps.Marker({
    position: new google.maps.LatLng(lat, lng),
    map: map
  });
  // マーカーがクリックされた時に処理する
  google.maps.event.addListener(marker, "click", function() {
    alert("マーカーがクリックされました");
  });
}

サンプル7[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>

サンプル7[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),
    12// ズームレベルは12
    Y.LayerSetId.NORMAL  // 通常の地図を表示
  );
  // 地図の種類を切り換えるコントローラーを表示
  map.addControl(new Y.LayerSetControl());
  // ズームコントローラーを表示
  map.addControl(new Y.SliderZoomControlVertical());
  // マーカーを表示する
  marker = new Y.Marker(
    new Y.LatLng(lat, lng)
  );
  map.addFeature(marker);
  marker.setLatLng(new Y.LatLng(lat, lng));
  // マーカーがクリックされた時に処理する
  marker.bind("click", function() {
    alert("マーカーがクリックされました");
  });
}

この連載の記事

一覧へ

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