Google Maps API・マイマップの使い方・活用法をご紹介しています。

マーカーアイコンを画像URLにオプションを付けて指定(google.maps.Icon) |Google Maps API v3

Google Maps APIでマーカー(ピン)に対して表示する画像を指定する際に、
その画像の指定方法によってできることに違いが出てきます。
必要に応じて画像指定の方法を選択されるといいでしょう。
ここでは一般的な「image」オブジェクトを介して設定する方法をご紹介します。

 

マーカーアイコンを画像URLにオプションを付けて指定(google.maps.Icon) |Google Maps API v3

Google Maps APIでマーカーに対して画像を表示する際に利用されるのが、
以下のように、マーカーインスタンスの生成時に、
オプションとしてURLを直接渡す方法です。

この方法で画像を指定した場合、
直接URLを指定しているだけですので、指定した画像全体が表示されることになります。
その為、適切な画像サイズのデータを用意する必要があります。

この方法は以下でご紹介しました。

 

利用画像

今回も以下の画像を利用しています。
幅・高さは、それぞれ200pxになっています。

icon_200px

http://gmap.pw/images/googlemymap/icon_200px.png

上記の画像から、オレンジ色の部分だけを切り出して、
マーカーに設定する例をご紹介します。

全体が200px四方ですので、1色の正方形は50px単位になっています。

 

地図の表示例

 

実行すると以下のように表示されます。

それぞれの表示は以下のようになっています。

url_opt_03

表示の例(Icon)・Google Maps API

「実サイズ表示」の例

左下に表示されている表示です。
200pxの画像をそのまま表示しています。かなり大きく表示されています。

準備した画像サイズが必要以上に大きすぎるような場合には、
よくこのような表示になってしまうものです。

以下のように、画像のURLのみを指定してMarkerImageを生成しています。

「縮小サイズ表示」の例

中央に表示されている表示部分です。
準備した200pxの画像が、50pxのサイズに縮小されて表示されています。

一番利用したい表示がこの方法かもしれません。
以下の通り、画像のURLと共に、scaledSizeのみを指定しています。

これによって、200pxの画像が、50px表示するという指定になります。

「切り抜き表示50px,100px」の例

右上に表示されている表示例です。
これは画像のリサイズは行わず、与えた画像から一部を切り出して表示する例です。
いわゆる、スプライト表示で利用する手法です。

url_opt_02

画像切り出し位置関係(Icon)・Google Maps API

この場合以下のような処理になっています。

50px切り抜き例

URLで指定された画像を、
①「size」で指定されたサイズで表示を行うため、200→50のトリムを行う。
②「origin」で指定された位置からトリム開始とする。50,100なので「横1/4,縦1/2」移動した位置が開始位置になる。
③「anchor」ではトリムされた画像右上から25,50位置をマーカーピン位置とする。(トリム後画像のボトム中心)

 

100px切り抜き例

URLで指定された画像を、
①「size」で指定されたサイズで表示を行うため、200→100のトリムを行う。
②「origin」で指定された位置からトリム開始とする。100,100なので「横1/2,縦1/2」移動した位置元画像中心が開始位置になる。
③「anchor」ではトリムされた画像右上から50,100位置をマーカーピン位置とする。(トリム後画像のボトム中心)

 

サンプルコード

HTML

HTMLではGoogle Mapを表示するエリア(<div id=”gmap_canvas”></div>)を配置しています。
エリアを囲んでいる「<div class=”aspect”></div>」部分は、
ページ表示用の高さ制御用のタグです。

 

CSS

CSSではclass=”aspect”に対して、 幅100%を指定し、 高さをビューポートの50%としています。 GoogleMapを表示するエリア(id=”gmap_canvas”)のサイズを、 class=”aspect”に対しての幅・高さを100%として指定しています。

以下のJavaScriptを利用して表示します。

JavaScript

以下のJavaScriptを利用し、上記の画像をマーカーに対して設定します。

 

参考

マーカー  |  Google Maps JavaScript API  |  Google Developers

Google Maps JavaScript API V3 Reference  |  Google Maps JavaScript API  |  Google Developers

MarkerImageクラス – Google Maps API V3リファレンス(非公式)


公開日:

コンテンツ
すべて展開 | すべて省略