Google Mapsデフォルトのマーカーでも、十分役に立てることができす。しかし一種類しかありません。もっとマーカーの色や形をいろいろ変えて分かりやすくしたいと考えるのは、人情というものでしょう。今回は、自分でカスタマイズしたマーカーを用意して地図上に表現することを試みます。
カスタマイズしたマーカーの例
以下は、Google Maps API Documantationで例として挙げられているスクリプトの一部を、整理したものです。上半分の赤字の各行が今回新たに取り上げる、カスタマイズしたアイコンを定義する行です。下半分の黒字の各行は、前回説明したマーカーを打つためのスクリプトです。ただし、赤字の部分が追加されています。これは、上の行で定義した"icon"という変数を用いてマーカーを書くように指定している箇所です。
|
眺めてみて何となくわかると思いますが、上のスクリプトの赤字の行は、カスタマイズしたアイコン(本体と影)が置かれたURL(2・3行目)、アイコンの大きさ(4・5行目)、アイコンが定義された中心点に対して置かれる相対的位置(6行目)、そして(まだ出てきませんが)infoWindowが置かれる相対的位置(7行目)を定義しているのです。Google Maps API DocumantationのClass Referenceに書かれているアイコンのプロパティの詳細については、今回の記事の一番下に訳を置いておきます。
上の例は、Google Ride Finderサービス内で使われている赤色のアイコンと影を引っぱってくるように定義されています。私の調べた限りでは、他に青、紫、白、灰、黄、緑などのアイコンファイルも存在するようです。
試しに、Google Ride Finderから青色と黄色のアイコン本体のファイル、それと両者共通のアイコンの影のファイルを引っぱって表示してみましょう。以下のタグは、赤字の行と箇所以外は前回と同じです。今回二種類のアイコンのために新たに二つの変数"icon1"、"icon2"を追加します。したがって、マーカーに対する変数は前の四つから二つ加わって六つとなります。("icon1"、"point1"、"marker1"、"icon2"、"marker2")
|
こうなるわけです。
しかし、できれば自分で選んだアイコンファイルを置きたい。もっと進んで、自作のアイコンに取り替えたい。次回はそれに挑戦することにしましょう。
(参考)アイコンのプロパティ(property)一覧
例えばアイコンの変数が"icon"であるとすれば、それぞれ icon.プロパティ の形で定義していくことになります。
プロパティ | 属性 | 解説 |
image | String | アイコン本体のイメージのURL |
shadow | String | アイコンの影のイメージのURL |
iconSize | GSize | アイコン本体のイメージのピクセルサイズ |
shadowSize | GSize | アイコンの影のイメージのピクセルサイズ |
iconAnchor | GPoint | アイコンが地図上に置かれる、アイコンのイメージの左上(と地図上で定義した点)との相対的なピクセル座標 |
infoWindowAnchor | GPoint | インフォウィンドウが置かれる、アイコンのイメージの左上との相対的なピクセル座標 |
printImage | String | プリントした地図で使われる、アイコン本体のイメージのURL。これは、imageプロパティで与えられたメインのアイコンと同じサイズでなければならない。 |
mozPrintImage | String | Firefox/Mozillaにおいてプリントした地図で使われる、アイコン本体のイメージのURL。これは、imageプロパティで与えられたメインのアイコンと同じサイズでなければならない。 |
printShadow | String | プリントした地図で使われれる、アイコンの影のイメージのURL。これは、GIFイメージにしたほうがいい。なぜならばほとんどのブラウザはPNGイメージをプリントできないからである。 |
transparent | String | Internet Explorerでクリックイベントを受けたときに使われる、半透明バージョンのアイコン本体のイメージのURL。これは、メインのアイコンイメージの不透明度(opacity)1%・24bitPNGバージョンで、しかも同じ形とサイズにしたほうがいい。 |
imageMap | Array of Number | Internet Explorer以外のブラウザでアイコンイメージのクリック可能な箇所を特定するために使われるべき、イメージマップ(image map)のx/y座標を表す整数列。 |