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

マーカーアイコンをgoogle.maps.MarkerImageで指定して表示する |Google Maps API v3

Google Maps APIでマーカー(ピン)に対して表示する画像を指定する際に、
その画像の指定方法によってできることに違いが出てきます。
必要に応じて画像指定の方法を選択されるといいでしょう。
ここではv3.10 以前まで利用されていた「google.maps.MarkerImage」を利用した
画像設定の例をご紹介します。

現在はv3.26.17ですので、Iconオブジェクトを利用する記述が推奨されています。

 

マーカーアイコンをgoogle.maps.makerImageで指定して表示する |Google Maps API v3

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

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

 

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

画像に対して拡大・縮小や切り抜きといった操作を行う場合には、
本投稿でご紹介するような画像の指定方法をご検討してはいかがでしょうか。

利用画像

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

icon_200px

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

 

地図の表示例

以下では、上記の同じ画像を3つのパターンで表示しています。

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

google-maps-makerimage_01

表示の例(MarkerImage)・Google Maps API

 

「実サイズ表示」の例

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

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

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

 

「縮小サイズ表示」の例

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

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

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

 

「切り抜き表示」の例

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

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

URLで指定された画像を、
①「size」で指定されたサイズで表示を行うため、200→100のトリムを行う。
②「origin」で指定された位置からトリム開始とする。100,100なので全体200pxの中心が開始位置になる。
③「anchor」では100,100でトリムされた画像の、50,100位置をマーカーピン位置とする。

※「scaledSize」に対し「new google.maps.Point(200, 200)」と実サイズの指定は省略しても特に問題なく表示されます。
※縮小しつつ、切り抜くといった複合処理時には有効かと思います。

図にすると以下のようなイメージになると言えます。

google-maps-makerimage_02

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

 

サンプルコード

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リファレンス(非公式)


公開日:

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