Google Maps V3のコントロールボタンのカスタマイズは以下の方法で行う。
■コントロールボタンの種類の変更
拡大縮小ボタンをiPhone等のスマートフォン向きなものに変更したい時は
navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }
Androidの標準ボタンにしたい時は
navigationControlOptions: { style: google.maps.NavigationControlStyle.ANDROID }
■コントロールボタンの位置
各コントロールボタンの表示位置は簡単に変更できる。
最上部
position:google.maps.ControlPosition.TOP_LEFT position: google.maps.ControlPosition.TOP_CENTER position:google.maps.ControlPosition.TOP_RIGHT
上部
position: google.maps.ControlPosition.LEFT_TOP position: google.maps.ControlPosition.RIGHT_TOP
中央部
position: google.maps.ControlPosition.LEFT_CENTER position: google.maps.ControlPosition.RIGHT_CENTER
下部
position: google.maps.ControlPosition.LEFT_BOTTOM position: google.maps.ControlPosition.RIGHT_BOTTOM
最下部
position:google.maps.ControlPosition.BOTTOM_LEFT position: google.maps.ControlPosition.BOTTOM_CENTER position:google.maps.ControlPosition.BOTTOM_RIGHT
最上部と上部、下部と最下部は微妙に位置が違う
例えば、マップタイプのコントロールボタンを左上にしたい時は
mapTypeControlOptions: { position:google.maps.ControlPosition.TOP_LEFT },
拡大縮小ボタンを右下にしたい時は
navigationControlOptions: { position: google.maps.ControlPosition.BOTTOM_RIGHT, }
■コントロールボタンの表示・非表示
ストリートビューのコントロールボタンを非表示にしたい時は
streetViewControl: false,
マップタイプのコントロールボタンを非表示にしたい時は
mapTypeControl: false,
何もコントロールボタンを表示したくない時は
disableDefaultUI: true,
■サンプルコード
<script type="text/javascript">// <![CDATA[ function attachMessage(marker, msg) { google.maps.event.addListener(marker, 'click', function(event) { new google.maps.InfoWindow({ content: msg }).open(marker.getMap(), marker); }); } var data = new Array(); var myMap = new google.maps.Map(document.getElementById('map'), { zoom: 15, center: new google.maps.LatLng(26.731889,128.168945), streetViewControl: false, mapTypeControl: false, mapTypeId: google.maps.MapTypeId.ROADMAP, navigationControlOptions: { position: google.maps.ControlPosition.TOP_LEFT, style: google.maps.NavigationControlStyle.SMALL } }); for (i = 0; i <data.length; i++) { var myMarker = new google.maps.Marker({ position: data[i].position, map: myMap }); attachMessage(myMarker, data[i].content); } // ]]></script>