メニュー
E-Mail

ASP.Netのお勉強
VB.Netのお勉強
Excel マクロ・VBAのお勉強
PHPのお勉強
Webデザインのお勉強
Javaのお勉強
総合サイトCocoaLiz
ネイルサロン検索
エステサロン検索
アロマサロン検索
アイビューティーサロン検索
|
複数のマーカを表示
地図に複数のマーカを表示します。
マーカにクリックイベントを追加して情報窓を表示できる様にします。
要点だけ説明すると、、
○ マーカの情報を配列で用意
東京駅と有楽町駅の経度、緯度を配列で作成します。
//緯度と経度の配列
var data = new Array();
//東京駅
data.push({lat:'35.681382', lng:'139.766084',name:'東京駅'});
//有楽町駅
data.push({lat:'35.675069', lng:'139.763328',name:'有楽町駅'});
|
○ マーカを複数作成
マーカの配列を作成し、
for文でdataの個数分だけ繰り返して、マーカを生成します。
生成したマーカに、クリックイベントを追加します。
別途、イベント追加用の関数を作成して、
イベントを追加したいマーカと情報窓に表示するテキストを関数に渡します。
//マーカを格納する配列
var markers = new Array();
//マーカの作成
for (i = 0; i < data.length; i++) {
markers[i] = new google.maps.Marker({
position: new google.maps.LatLng(data[i].lat, data[i].lng),
map: map
});
dispInfo(markers[i],data[i].name);
}
//情報窓表示メソッド
function dispInfo(marker,name) {
//マーカクリック時に駅名を情報窓に表示
google.maps.event.addListener(marker, 'click', function(event) {
new google.maps.InfoWindow({content:name}).open(marker.getMap(), marker);
});
}
|
○ 作ったサンプルサイトは、こちらです。
○コードは、下記。
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Google Map API V3 複数のマーカを表示</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
function initialize() {
//緯度と経度の配列
var data = new Array();
//東京駅
data.push({lat:'35.681382', lng:'139.766084',name:'東京駅'});
//有楽町駅
data.push({lat:'35.675069', lng:'139.763328',name:'有楽町駅'});
//東京駅の緯度,経度
var myLatlng = new google.maps.LatLng(data[0].lat, data[0].lng);
//オプションの設定
var options = {
//地図のズームサイズ
zoom: 15,
//地図の中心地
center: myLatlng,
//マップタイプに道路を指定
mapTypeId: google.maps.MapTypeId.ROADMAP,
//MapType
navigationControl: true,
navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN},
//ナビゲーション
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR},
//スケール
scaleControl: true
};
var map = new google.maps.Map(document.getElementById("map"), options);
//マーカを格納する配列
var markers = new Array();
//マーカの作成
for (i = 0; i < data.length; i++) {
markers[i] = new google.maps.Marker({
position: new google.maps.LatLng(data[i].lat, data[i].lng),
map: map
});
dispInfo(markers[i],data[i].name);
}
}
//情報窓表示メソッド
function dispInfo(marker,name) {
//マーカクリック時に駅名を情報窓に表示
google.maps.event.addListener(marker, 'click', function(event) {
new google.maps.InfoWindow({content:name}).open(marker.getMap(), marker);
});
}
</script>
</head>
<body onload="initialize()">
<div id="map" style="width: 600px; height: 400px;"></div>
</body>
</html>
|
|
|