「Google Maps JavaScript API v3」で、マウスオーバー時にマーカー画像(アイコン)を変える。(hoverのような処理)
google mapsで地図上に表示されているマーカーを、マウスオーバー時に変えたい場合の方法です。
意外にこれが、マーカー マウスオーバーとかで検索しても出てこなかったんだなぁ。
マーカーを作るときは例えばこんな感じですよね。([LatLngオブジェクト]のように記載しているところは、その種類のオブジェクトを渡す、という意味です。)
myMarker = new google.maps.Marker({
positon: [LatLngオブジェクト],
map:[マーカーを表示する地図],
icon:[MarkerImageオブジェクト]
});
上記では最初にマーカーを作るときに「icon」のところで、カスタムの画像を設定するわけです。(画像のURL、サイズ、中心点など)
ここまでは基本で、次にマウスオーバー、マウスアウトの動作を設定します。
setIconというメソッドを使用します。
例えば、
google.maps.event.addListener(myMarker, 'mouseover', function(){
myMarker.setIcon([画像のURLもしくはMarkerImageオブジェクト])
)};
マーカーにイベントのリスナー(マーカーに対してイベントが起こったことを伝えるもの)を設定し、mouseoverイベントを取得します。
その後、setIconを実行して、画像を差し替えるわけです。
setIconの引数は画像のURLだけの場合、中心点が画像の下の真ん中になるようです。この辺をカスタマイズしたい場合はMarkerImageできちんと諸々の設定を渡してあげる必要があるようです。
ということで、マウスオーバー時のマーカー画像の差し替えについて、でした。
CSSとかjQueryならhoverだけですぐにできちゃったりすることなのに、google mapsはヤヤ面倒ですねぇ。
意外にこれが、マーカー マウスオーバーとかで検索しても出てこなかったんだなぁ。
マーカーを作るときは例えばこんな感じですよね。([LatLngオブジェクト]のように記載しているところは、その種類のオブジェクトを渡す、という意味です。)
myMarker = new google.maps.Marker({
positon: [LatLngオブジェクト],
map:[マーカーを表示する地図],
icon:[MarkerImageオブジェクト]
});
上記では最初にマーカーを作るときに「icon」のところで、カスタムの画像を設定するわけです。(画像のURL、サイズ、中心点など)
ここまでは基本で、次にマウスオーバー、マウスアウトの動作を設定します。
setIconというメソッドを使用します。
例えば、
google.maps.event.addListener(myMarker, 'mouseover', function(){
myMarker.setIcon([画像のURLもしくはMarkerImageオブジェクト])
)};
マーカーにイベントのリスナー(マーカーに対してイベントが起こったことを伝えるもの)を設定し、mouseoverイベントを取得します。
その後、setIconを実行して、画像を差し替えるわけです。
setIconの引数は画像のURLだけの場合、中心点が画像の下の真ん中になるようです。この辺をカスタマイズしたい場合はMarkerImageできちんと諸々の設定を渡してあげる必要があるようです。
ということで、マウスオーバー時のマーカー画像の差し替えについて、でした。
CSSとかjQueryならhoverだけですぐにできちゃったりすることなのに、google mapsはヤヤ面倒ですねぇ。
コメント