情報ウィンドウが開いた時に、情報ウィンドウ内に指定したコンテンツを表示することができます。表示する内容は文字列の他にHTML文書なども指定することができるため、HTMLタグを使ってリンクや画像なども表示させることができます。
コンテンツの設定はInfoWindowクラスのオブジェクトを作成する時に指定するInfoWindowOptionsオブジェクトの「content」プロパティに設定します。指定できる値は「string|Node」となっており、文字列かノードを指定することができます。
下記は文字列を指定した場合です。
var latlng = new google.maps.LatLng(35.658704,139.745408);
var iwopts = {
content: 'Hello',
positon: latlng
};
var latlng = new google.maps.LatLng(35.658704,139.745408);
var htmlTag = '';
var iwopts = {
content: htmlTag,
positon: latlng
};
var infowindow = new google.maps.InfoWindow(iwopts);
InfoWindowクラスのオブジェクトを作成時にコンテンツを設定するのではなく、InfoWindowクラスのオブジェクトを作成した後でコンテンツを設定するにはInfoWindowクラスで用意されている「setOptions」methodを使用します。
setOptions(options:InfoWindowOptions)
var infowindow = new google.maps.InfoWindow(iwopts);
var new_iwopts = {
content: '指定文字'
};
infowindow.setOptions(new_iwopts);
InfoWindowOptionsオブジェクトの「content」プロパティに設定できる値は文字列だけでなくノードを指定することもできます。
var latlng = new google.maps.LatLng(35.658704,139.745408);
var contentStr = '<p><a href="index.html">
<img src="temp.png" /></a></p>';
var img_node = document.createElement("img");
img_node.src = "temp.png";
img_node.width = "80";
img_node.height = "80";
var Iwopts = {
content: img_node,
positon: latlng
};
サンプル.js
function initialize() {
var latlng = new google.maps.LatLng(35.689488,139.691706);
var opts = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map
(document.getElementById("map_canvas"), opts);
var contentStr = '<p>' +
'<img src="./img/green.png" width="32" height="32" alt="都庁" />' +
'<a href="http://www.metro.tokyo.jp"/>東京都庁</a>' + '</p>';
var infowindow = new google.maps.InfoWindow({
content: contentStr,
position: latlng
}); infowindow.open(map);
}
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps v3 JavaScript API サンプル</title>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="サンプル.js" type="text/javascript"></script>
</head>
<body onload="initialize()">
<p>Google Maps v3 APIを使ったサンプル。</p>
<div id="map_canvas" style="width:500px; height:300px"></div>
</body>
</html>