◆ Google Maps API v3 マーカー(アイコン)の種類、画像、サイズ、位置、影を変更する
V3グーグルマップのアイコン(マーカー)の種類を変更するには、いくつかのscriptの書き方があるようです。
まあ用途で使い分ければいいと思いますが・・・・
<サンプル1>
もっとも良く見かける基本のscriptです。単一のマーカー用のイメージ画像とシャドウ(影)を指定しています。
var icon = new google.maps.MarkerImage(
'http://maps.google.co.jp/mapfiles/ms/icons/tree.png',
new google.maps.Size(34,34),
new google.maps.Point(0,0),
new google.maps.Point(37,34)
);
var shadow = new google.maps.MarkerImage(
'http://maps.google.co.jp/mapfiles/ms/icons/tree.shadow.png',
new google.maps.Size(34,34),
new google.maps.Point(0,0),
new google.maps.Point(37,34)
);
var marker = new google.maps.Marker(
{
draggable: true,
raiseOnDrag: false,
icon: icon,
shadow: shadow,
//shape: shape,
map: map,
position: point
});
<サンプル2>
たくさんの種類のマーカー(アイコン)を使いたい場合は、こっちほうが記述が少なくてすみます。上のサンプル1とは機能的には、何もかわりません。
var iconOffset = new google.maps.Point(34, 34);
var iconPosition = new google.maps.Point(0, 0);
var iconSize = new google.maps.Size(34, 34);
var iconShadowSize = new google.maps.Size(37, 34);
var iconUrl = "http://maps.google.co.jp/mapfiles/ms/icons/hotsprings.png";
var iconShadowUrl = "http://maps.google.co.jp/mapfiles/ms/icons/hotsprings.shadow.png";
var icon = new google.maps.MarkerImage(iconUrl, iconSize, iconPosition, iconOffset);
var Shadow = new google.maps.MarkerImage(iconShadowUrl, iconShadowSize, iconPosition, iconOffset);
var marker = new google.maps.Marker(
{
draggable: true,
raiseOnDrag: false,
icon: icon,
shadow: shadow,
//shape: shape,
map: map,
position: point
});
<サンプル3>
通常は、複数種類のアイコンを地図に表示すると思います。その場合はコレ。
変数categoryに、公園(kouen)または温泉(onsen)を指定して、アイコンイメージと影等を呼び出します。
//共通
var iconOffset = new google.maps.Point(34, 34);
var iconPosition = new google.maps.Point(0, 0);
var iconSize = new google.maps.Size(34, 34);
var iconShadowSize = new google.maps.Size(37, 34);
//公園アイコン
var kouenUrl = "http://maps.google.co.jp/mapfiles/ms/icons/tree.png";
var kouenShadowUrl = "http://maps.google.co.jp/mapfiles/ms/icons/tree.shadow.png";
var kouenIcon = new google.maps.MarkerImage(kouenUrl, iconSize, iconPosition, iconOffset);
var kouenShadow = new google.maps.MarkerImage(kouenShadowUrl, iconShadowSize, iconPosition, iconOffset);
//温泉アイコン
var onsenUrl = "http://maps.google.co.jp/mapfiles/ms/icons/hotsprings.png";
var onsenShadowUrl = "http://maps.google.co.jp/mapfiles/ms/icons/hotsprings.shadow.png";
var onsenIcon = new google.maps.MarkerImage(onsenUrl, iconSize, iconPosition, iconOffset);
var onsenShadow = new google.maps.MarkerImage(onsenShadowUrl, iconShadowSize, iconPosition, iconOffset);
var customIcons =
{
kouen:
{
icon:kouenIcon,
shadow:kouenShadow
},
onsen:
{
icon:onsenIcon,
shadow:onsenShadow
},
};
var icon = customIcons[category] || {};
var marker = new google.maps.Marker(
{
map: map,
position: latlng,
icon: icon.icon,
shadow: icon.shadow,
title: name,
animation: google.maps.Animation.DROP
});
<サンプル4>
上記サンプル3をシンプルに、多少影の位置がずれますが、気にしなければ
var customIcons =
{
kouen:
{
icon: 'http://maps.google.co.jp/mapfiles/ms/icons/tree.png',
shadow: 'http://maps.google.co.jp/mapfiles/ms/icons/tree.shadow.png'
},
onsen:
{
icon: 'http://maps.google.co.jp/mapfiles/ms/icons/hotsprings.png',
shadow: 'http://maps.google.co.jp/mapfiles/ms/icons/hotsprings.shadow.png'
},
};
var icon = customIcons[category] || {};
var marker = new google.maps.Marker({
map: map,
position: latlng,
icon: icon.icon,
shadow: icon.shadow,
title: name
});
◆Google Maps JavaScript API V3 複数アイコン(マーカー)表示サンプル
◆Google Maps JavaScript API V3
関連記事一覧
スポンサードリンク





Leave a Comment