Googleマップでは、マーカーに付随する情報を表示することが出来ます。
情報ウィンドウ内にはhtmlタグも使えて便利です。
今回はマウスオーバーで表示させる方法と、最初から表示されている方法をご紹介します。
基本設定
必要なファイルを読み込む
Google Maps API のスクリプトを読み込みます。
v3からAPIキーが不要になっているので、以下のコードをそのまま貼り付けて使えます。
<script type="text/javascript" src="//maps.google.com/maps/api/js?sensor=false">
html
地図を表示したいエリアに任意のid名を付けます。
<div id="map"></div>
css
地図の縦幅、横幅を設定しないと表示されないので、必ず設定します。
#map {
width: 100%;
height: 300px;
}
マウスオーバーで情報ウィンドウを表示させる
JavaScript
例ではマウスオーバーにしていますが、その他にclickなどのイベントでも使えます。
緯度経度を調べるにはこちらのサイト様が便利です。
//マウスオーバーで情報ウィンドウを表示させる
function map_canvas() {
//マーカーの情報
var data = new Array();
data.push({
lat: '35.681382', //緯度
lng: '139.7660843', //経度
content: '東京駅<br />迷子にならないように!' //情報ウィンドウの内容
});
data.push({
lat: '35.678187',
lng: '139.76817',
content: '<p style="color:#d50000">八重洲ブックセンター</p>'
});
//初期位置に、上記配列の最初の緯度経度を格納
var latlng = new google.maps.LatLng(data[0].lat, data[0].lng);
var opts = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), opts);
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
});
markerInfo(markers[i], data[i].content);
}
}
function markerInfo(marker, name) {
google.maps.event.addListener(marker, 'mouseover', function (event) {
new google.maps.InfoWindow({
content: name
}).open(marker.getMap(), marker);
});
}
//地図描画を実行
google.maps.event.addDomListener(window, 'load', map_canvas);
初期表示で情報ウィンドウを表示させる
JavaScript
//最初から情報ウィンドウを表示させる
function map_canvas() {
//マーカーの情報
var data = new Array();
data.push({
lat: '35.681382', //緯度
lng: '139.7660843', //経度
content: '東京駅<br />迷子にならないように!' //情報ウィンドウの内容
});
data.push({
lat: '35.678187',
lng: '139.76817',
content: '<span style="color:#d50000">八重洲ブックセンター</span>'
});
//初期位置に、上記配列の最初の緯度経度を格納
var latlng = new google.maps.LatLng(data[0].lat, data[0].lng);
var opts = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
//地図を表示させるエリアのidを指定
var map = new google.maps.Map(document.getElementById("map"), opts);
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
});
markerInfo(markers[i], data[i].content);
}
}
function markerInfo(marker, name) {
new google.maps.InfoWindow({
content: name
}).open(marker.getMap(), marker);
}
//地図描画を実行
google.maps.event.addDomListener(window, 'load', map_canvas);