- Home ›
- Google Maps API入門 ›
- 地図のズームレベル ›
- HERE
ナビゲーションコントロールの種類
「ナビゲーションコントロールの有効/無効」で記述した通り、ナビゲーションコントロールは地図の大きさに従って自動的に表示する種類が変わります。今回はこの表示されるナビゲーションコントロールの種類を明示的に指定する方法を確認します。
ナビゲーションコントロールをどの種類にするのかはMapクラスのオブジェクトを作成する時に指定するMapOptionsオブジェクトの「navigationControlOptions」プロパティに設定することで選ぶことができます。
「navigationControlOptions」プロパティに設定する値はNavigationControlOptionsオブジェクトです。このオブジェクトには2つのプロパティが用意されているのですが、その中の「style」プロパティに使用するナビゲーションコントロールの種類を表す値を設定します。
指定可能な値はNavigationControlStyleクラスで定数として定義されています。
| 定数 | 説明 |
|---|---|
| ANDROID | 小さいズーム コントロールは、Android のネイティブ マップ アプリケーションで使用されるものと類似しています。 |
| DEFAULT | デフォルトのナビゲーション コントロール。地図のデフォルトのコントロールは、地図のサイズやその他の要素によって異なります。API の将来のバージョンでは変更される可能性があります。 |
| SMALL | 小さい、ズームのみのコントロール。 |
| ZOOM_PAN | ズーム スライドと双方向の移動パッドが付いた大きなコントロール。 |
例えば「ZOOM_PAN」タイプのナビゲーションコントロールを使用する場合は次のように記述します。
var opts = {
zoom: 13,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.ZOOM_PAN
}
};
このように地図上に表示されるナビゲーションコントロールの種類を設定することができます。
では実際に試してみます。
var map;
function initialize() {
var latlng = new google.maps.LatLng(33.595533,130.361795);
var opts = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.DEFAULT
}
};
map = new google.maps.Map(document.getElementById("map_canvas"), opts);
}
function setDefault() {
var opts = {
navigationControlOptions: {
style: google.maps.NavigationControlStyle.DEFAULT
}
};
map.setOptions(opts);
}
function setAndroid() {
var opts = {
navigationControlOptions: {
style: google.maps.NavigationControlStyle.ANDROID
}
};
map.setOptions(opts);
}
function setSmall() {
var opts = {
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL
}
};
map.setOptions(opts);
}
function setZoomPan() {
var opts = {
navigationControlOptions: {
style: google.maps.NavigationControlStyle.ZOOM_PAN
}
};
map.setOptions(opts);
}
<!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 JavaScript API サンプル</title>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="./js/code4_1.js" type="text/javascript"></script>
</head>
<body onload="initialize()">
<p>Google Maps APIを使ったサンプルです。</p>
<div id="map_canvas" style="width:500px; height:300px"></div>
<form>
<p>
<input type="button" id="default" value="DEFAULT" onclick="setDefault()" />
<input type="button" id="android" value="ANDROID" onclick="setAndroid()" />
<input type="button" id="small" value="SMALL" onclick="setSmall()" />
<input type="button" id="zoompan" value="ZOOM_PAN" onclick="setZoomPan()" />
</p>
</form>
</body>
</html>
ブラウザで上記ページを開くと次のように表示されます。
初期値として種類は「DEFAULT」を指定してあるため、地図のサイズから判断されて「SMALL」を指定した場合と同じ種類のナビゲーションコントロールが表示されています。
今回は画面下にあるボタンを押すとナビゲーションコントロールの種類を変更するようにしました。(変更する方法については「地図の作成」を参照下さい)。では「ZOOM_PAN」ボタンを押してみます。
大画面の時に表示される種類のナビゲーションコントロールが表示されました。
次に「ANDROID」ボタンを押してみます。
Androidを使ったアプリケーションで表示されるような種類のナビゲーションコントロールが表示されました。表示される位置も中央下に変わっています。
( Written by Tatsuo Ikura )
AjaxTower