13
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleMapsAPIで地図上に画像とテキストを設置してみた

Posted at

GoogleMapsAPIを触ってみたいと思い、公式サイトを見ながら地図上にいろんなものを表示させて遊んでみました。

今回はその中から、地図上に任意の画像とテキストを設置する方法を紹介したいと思います。

GoogleMapsAPIとは

Google Maps APIは、2005年2月にリリースされたGoogleマップのAPIです。

高機能なGoogleマップをwebサイトやアプリで使うことができ、地図上で様々な表現を行うことが可能です。

地図上に任意の画像とテキストを設置する方法

今回は下の写真のように地図上の任意の場所にマーカーを設置し、mouseoverすると任意の画像とテキストが表示されるという動きを作ってみたいと思います。

image.png

このような描写を再現するには、情報ウィンドウという機能を使います。
まずはGoogleMapAPIを利用するために下記のscriptを読み込ませます。

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

※GoogleMapsAPIをサーバ上で動かす場合は、APIkeyが必要になります。APIKeyの取得方法は下記でご確認下さい。
参考:Google Maps の APIキー を簡単に取得する

次はhtmlの記述。マップを表示したい場所をdivで囲みます。

<div id="map"></div>

width、heightを指定してあげないとマップが表示されないので、cssも記述。

#map {
  width: 600px;
  height: 400px;
}

下準備が終わったら、ここからマップを表示するためのscriptを記述していきます。
コードの内容はコメントアウト文を参考にして下さい。

var map = null;
var infowindow = new google.maps.InfoWindow();

function init() {
  
  //マップの初期状態を設定
  var option = {
  zoom: 6,
  center: new google.maps.LatLng(35.4093320, 136.7566470),
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  disableDefaultUI: true
  };
 
  // 吹き出しを閉じる処理
  map = new google.maps.Map(document.getElementById("map"), option);
  google.maps.event.addListener(map, "click", function() {infowindow.close();});

  // 任意の位置にマーカーを追加
  var point = new google.maps.LatLng(35.673264, 139.760668);
  var marker = create_maker(point, "info", "<img src='画像パス' /><br><p>テキスト</p>");

  var point = new google.maps.LatLng(34.6545182, 135.4289645);
  var marker = create_maker(point, "info", "<img src='画像パス' /><br><p>テキスト</p>");

  var point = new google.maps.LatLng(35.1709150, 136.8815369);
  var marker = create_maker(point, "info", "<img src='画像パス' /><br><p>テキスト</p>");
}

function create_maker(latlng, label, html) {
  // マーカーを生成
  var marker = new google.maps.Marker({position: latlng, map: map, title: label});
  // マーカーをマウスオーバーした時の処理
  google.maps.event.addListener(marker, "mouseover", function() {
  infowindow.setContent(html);
  infowindow.open(map, marker);
  });
}

google.maps.event.addDomListener(window, "load", init);

##まとめ
簡単になりますが、上記のような記述でGoogleMapAPIを用いて地図上に画像とテキストを設置することができました。
コンテンツ内に地図を用いたいケースは多々あると思うので、GoogleMapAPIで様々な表現をする手段を勉強していきたいと思います。

13
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?