マーカーに画像URLを利用する
Google Maps API(v3) を利用して表示したマーカー(アイコン)は、
Google Chart APIやGoogleサーバー上で提供されている様々なアイコンに変更することができます。
それだけでなく、画像データとして公開されているデータであれば、
自由に指定して利用することができます。
ここではデフォルトのアイコンから独自アイコン画像を利用した変更を行います。
地図の表示
指定したGPS座標を中心にマーカー(アイコン)を表示します。
表示するマーカーの画像は以下の2つを利用しています。
自サーバー上(当サイト)にアップロードした画像ファイル
Googleフォト上にアップロードした画像ファイル
URLとして有効な画像ファイルであれば、
サーバー上であれクラウド上であれマップ上に表示することができます。
画像サイズが大きいなど調整が必要な場合
画像サイズがGoogleマップ用に作成されたもので適正である場合にはいいのですが、
画像の大きなものを縮小したり、スプライト画像の切り抜き表示を行う場合は、
こうした画像の直接指定では困る事になります。
実際に大きな画像をそのまま指定した例は以下でご紹介してます。
画像の縮小表示と切り抜きの手法については、以下でそれぞれご紹介しています。
サンプルコード
HTML
HTMLではGoogle Mapを表示するエリア(<div id=”gmap_canvas”></div>)を配置しています。
エリアを囲んでいる「<div class=”aspect”></div>」部分は、
ページ表示用の高さ制御用のタグです。
1 |
<div class="aspect"><div id="gmap_canvas" class="g_canvas"></div><span id="ver" style="font-size: 0.8em; color: gray;"></span></div> |
CSS
CSSではclass=”aspect”に対して、 幅100%を指定し、 高さをビューポートの50%としています。 GoogleMapを表示するエリア(id=”gmap_canvas”)のサイズを、 class=”aspect”に対しての幅・高さを100%として指定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<style type="text/css"> .aspect{ width:100%; height:50vw; } .aspect_normal, .aspect_dot, .aspect_key, .aspect_dotkey{ width:100%; height:25vw; } #gmap_canvas, #gmap_canvas_normal, #gmap_canvas_dot, #gmap_canvas_key, #gmap_canvas_dotkey, div.g_canvas{ width:100%; height:100%; } </style> |
JavaScript
Markerオブジェクト(def_marker)を作成し対象に
gmap_canvas を指定しています。
Markerオブジェクトを作成する際にiconを指定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<script type="text/javascript"> function init(){ var map_div = document.getElementById("gmap_canvas"); var gmap_canvas = new google.maps.Map(map_div,{ center: new google.maps.LatLng(34.839455, 134.693907), zoom : 14, mapTypeId : google.maps.MapTypeId.ROADMAP }); var srv_imgurl = "http://gmap.pw/images/symbol/himeji_lbus_pin.png"; var srv_marker = create_marker({ map: gmap_canvas, position: new google.maps.LatLng(34.828028, 134.689990), icon: srv_imgurl }); var g_imgurl = "https://lh3.googleusercontent.com/dzuxQbfpJQLmtbRAlXA06aa_cP3007QZtsfga-kRSSY=s32-no"; var g_marker = create_marker({ map: gmap_canvas, position: new google.maps.LatLng(34.835287, 134.693534), icon: g_imgurl }); } function create_marker(options){ var m = new google.maps.Marker(options); return m; } google.maps.event.addDomListener(window,"load",init); $('#ver').text(google.maps.version); </script> |
別途、GoogleMapsAPIのライブラリを読み込む記述が必要です。 ご自分が取得されたAPIキーを以下のコードの(YourAPIkey)部分に置き換えて設定してください。
1 |
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=(YourAPIkey)&v=3"></script> |
ネットワーク上で公開している画像ファイルであれば、
URLを指定するだけで任意のマーカーを表示することができます。
マーカーの画像サイズに関しては自動調整されませんので、
適宜地図サイズに合った画像サイズでアップロードしておく必要があります。
公開日:
最終更新日:2017/01/15