マウスオーバーでマップコントロールを表示する

説明

マップが小さい場合に各種コントロールを表示すると肝心の情報表示範囲が少なくなってしまいます。そのような場合にはマウスがマップ内に入った場合にコントロールを表示し、マップの外に移動したらコントロールを非表示にする方法があります。続きは書籍で、どうぞ...
逆引きGoogle Maps APIリファレンス  詳しい解説などは逆引きGoogle Maps APIリファレンス、またはGoogle Maps APIリファレンスを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//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>Sample</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAasAJryKxWJnBFVJa487d9hTHGAxTVT7IRADYa-JdYz7xQ8IQZBSthgDZdggYpQHsmm6WYtHstQFfLA" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var mapDiv;
window.onload = function() {
mapDiv = document.getElementById("gmap");
map = new GMap2(mapDiv);
map.setCenter(new GLatLng(37, 138), 6);
var ctrlObj = new GLargeMapControl();
map.addControl(ctrlObj);
GEvent.addDomListener(mapDiv, "mouseover", showCtrl);
GEvent.addDomListener(mapDiv, "mouseout", hideCtrl);
}
function showCtrl() { // コントロールを表示
var ctrl = mapDiv.childNodes[3];
ctrl.style.visibility = "visible";
}
function hideCtrl() {
var ctrl = mapDiv.childNodes[3];
ctrl.style.visibility = "hidden";
}
//]]>
</script>
</head>
<body>
<div id="gmap" style="width: 500px; height: 400px"></div>
</body>
</html>