Google Maps JavaScript API v3地図のコントロール
- コントロールの種類と表示設定
- コントロールの無効化
- ナビゲーションコントロール〔※廃止〕
- 地図タイプコントロール〔MapTypeControlOptions / MapTypeControlStyle〕
- 外観地図コントロール〔OverviewMapControlOptions〕
- 移動コントロール〔PanControlOptions〕
- 回転コントロール〔RotateControlOptions〕
- スケールコントロール〔ScaleControlOptions / ScaleControlStyle〕
- ストリートビューコントロール〔StreetViewControlOptions〕
- ズームコントロール〔ZoomControlOptions / ZoomControlStyle〕
- コントロールの表示位置〔ControlPosition〕
- カスタムコントロールの指定〔描画、イベント処理〕
コントロールの種類と表示設定
2012/5/6
Googleマップ上に表示可能なコントロールは下記のとおりです。 地図上に表示するコントロールにはデフォルトで表示されるものと、明示的に指定しないと表示されないものがあります。 地図のオプション設定のプロパティに表示・非表示を設定することで地図上に表示されるコントロールを制御できます。
プロパティ名 | 説明 |
---|---|
mapTypeControll | 地図タイプコントロール。 デフォルトで地図の右上に表示されるボタン。 |
overviewMapControl | 概要地図コントロール。地図に折りたたみ可能な概観地図を追加します。デフォルトでは表示されません。 |
panControl | 移動コントロール。 デフォルトで地図の左上に表示される地図を移動するためのコントロール。 |
RotateControl | 回転コントロール。 |
scaleControll | スケールコントロール。 地図の左下に表示される地図の縮尺。デフォルトはは表示されません。 |
streetViewControl | ストリートビュー。 地図の左上に表示されるペグマンコントロール。地図にドラッグ&ドロップするとストリートビューを表示します。 |
zoomControl | ズームコントロール。 デフォルトで地図の左上に表示される±スケール。 |
※ナビゲーションコントロールは廃止されました。
各コントロールの表示位置は各コントロールのオプション設定で変更可能です。詳細はこちら。
設置サンプル
下記のサンプルでは、全てのコントロールを表示します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★コントロールの追加 */ navigationControl: true, zoomControl: true, zoomControlOptions:{ style:google.maps.ZoomControlStyle.SMALL }, mapTypeControl: true, scaleControl: true, streetViewControl: true, overviewMapControl:true, overviewMapControlOptions:{ opened: true }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>各種コントロールの表示</h3> <p>地図にコントロールを明示的に追加します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
コントロールの無効化
2011/6/26
Googleマップ上に表示される全てのコントロールを無効化するには、MapOptionsオブジェクトのdisableDefaultUIプロパティに「true」を指定します。
{ disableDefaultUI: true }
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★デフォルトのUI設定 */ disableDefaultUI: true, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <p>地図のデフォルトのUIを無効化します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
地図タイプコントロール
MapTypeControlOptions / MapTypeControlStyle
2011/6/26
地図タイプを制御するコントロールです。
デフォルトで有効になっています。 地図コントロールを無効にするには、MapOptionsオブジェクトのmapTypeControlプロパティに「false」を指定します。
地図タイプコントロールのスタイルを変更するには、MapOptionsオブジェクトのmapTypeControlプロパティに「true」を指定し、 mapTypeControlOptionsオブジェクトのstyleプロパティに表示スタイルを指定します。
mapTypeControl: true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.HORIZONTAL_BAR
},
プロパティ | 説明 |
---|---|
mapTypeIds | コントロールに表示する地図タイプのID。 |
position |
地図タイプコントロールの表示位置をControlPositionクラスの定数で指定。 デフォルトはTOP_RIGHT。 ※指定可能な定数はこちら。 |
style |
地図タイプコントロールの表示スタイルを指定。 |
定数 | 説明 |
---|---|
DEFAULT | google.maps.MapTypeControlStyle.DEFAULT デフォルトの地図タイプを使用。 地図のサイズやデバイスに応じて、最適な地図タイプコントロールが表示されます。 |
HORIZONTAL_BAR | google.maps.MapTypeControlStyle.HORIZONTAL_BAR 横並びのラジオボタンバー。 |
DROPDOWN_MENU | google.maps.MapTypeControlStyle.DROPDOWN_MENU ドロップダウンメニュー型の1ボタン。 |
地図タイプのスタイル表示切り替え
<!DOCTYPE> <html lang="ja"> <head> <meta charset="utf-8" /> <title>MapTypeControlOptionsオブジェクト | 設置サンプル</title> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> var map; /* 初期設定 */ function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.6652470, 139.7123140); /* 地図のオプション設定 */ var myOptions = { /* 地図の中心点 */ center:latlng, /* 初期のズームレベル */ zoom: 16, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControlOptions:{ position: google.maps.ControlPosition.TOP_CENTER, /* 地図タイプコントロールの表示位置 */ style: google.maps.MapTypeControlStyle.DEFAULT /* 地図タイプコントロールのスタイル */ } }; /* 地図オブジェクト */ map=new google.maps.Map(document.getElementById("map"), myOptions); } //チェック function chgStyle(){ var obj=document.getElementsByName("style"); var o; for(var i=0; i<obj.length; i++){ if(obj[i].checked){ console.log(obj[i].value); switch(obj[i].value){ case "DEFAULT": o=google.maps.MapTypeControlStyle.DEFAULT; break; case "DROPDOWN_MENU": o=google.maps.MapTypeControlStyle.DROPDOWN_MENU; break; case "HORIZONTAL_BAR": o=google.maps.MapTypeControlStyle.HORIZONTAL_BAR; break; default: break; } map.setOptions({ mapTypeControlOptions:{ style:o } }); return false; } } } function chgPosition(){ var obj=document.getElementsByName("position"); var o; for(var i=0; i<obj.length; i++){ if(obj[i].checked){ console.log(obj[i].value); switch(obj[i].value){ case "TOP_RIGHT": o=google.maps.ControlPosition.TOP_RIGHT; break; case "LEFT_CENTER": o=google.maps.ControlPosition.LEFT_CENTER; break; case "TOP_CENTER": o=google.maps.ControlPosition.TOP_CENTER; break; default: break; } map.setOptions({ mapTypeControlOptions:{ position:o } }); return false; } } } </script> <style type="text/css"> * { margin:0; padding:0; font-size:12px; } html, body { margin:0; padding:0; } h1, p { margin:10px; } #map { width:100%; height:400px; } </style> </head> <body onload="initialize()"> <h1>MapTypeControlOptionsオブジェクト</h1> <p>地図タイプの表示オプションを切り替えるサンプルです。</p> <hr /> <form> <p> 地図タイプのスタイル: <label for="style_1"><input type="radio" name="style" id="style_1" onclick="chgStyle()" value="DEFAULT" checked />DEFAULT</label> <label for="style_2"><input type="radio" name="style" id="style_2" onclick="chgStyle()" value="DROPDOWN_MENU" />DROPDOWN_MENU</label> <label for="style_3"><input type="radio" name="style" id="style_3" onclick="chgStyle()" value="HORIZONTAL_BAR" />HORIZONTAL_BAR</label> </p> <p> 地図タイプの表示位置: <label for="position_1"><input type="radio" name="position" id="position_1" onclick="chgPosition()" value="TOP_RIGHT" checked />TOP_RIGHT</label> <label for="position_2"><input type="radio" name="position" id="position_2" onclick="chgPosition()" value="LEFT_CENTER" />LEFT_CENTER</label> <label for="position_3"><input type="radio" name="position" id="position_3" onclick="chgPosition()" value="TOP_CENTER" />TOP_CENTER</label> </p> </form> <!-- 地図の埋め込み表示 --> <div id="map"></div> </body> </html>
地図タイプコントロール(横並びボタン)を追加
Googleマップのように地図タイプコントロールを横並びのボタンで表示します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★地図タイプコントロール */ disableDefaultUI: true, /* 一旦全てのUIを無効化 */ mapTypeControl: true, mapTypeControlOptions: { style:google.maps.MapTypeControlStyle.HORIZONTAL_BAR }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>地図タイプコントロールの指定</h3> <p>Googleマップのように地図タイプコントロールを横並びのボタンで表示します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
地図タイプコントロール(ドロップダウンメニュー型の1ボタン)を追加
地図タイプコントロールを1つのボタンにまとめ、ドロップダウンメニューで選択可能な形式で表示します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <title>設置サンプル</title> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★地図タイプコントロール */ disableDefaultUI: true, /* 一旦全てのUIを無効化 */ mapTypeControl: true, mapTypeControlOptions: { style:google.maps.MapTypeControlStyle.DROPDOWN_MENU }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>地図タイプコントロールの指定</h3> <p>地図タイプコントロールを1つのボタンにまとめ、ドロップダウンメニューで選択可能な形式で表示します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
地図タイプコントロール(デフォルト)を追加
地図サイズに応じて最適な地図タイプコントロールが表示されます。 例えば、下記のサンプルのように地図サイズが小さい(200x200)の場合は、ドロップダウンメニュー型の1ボタンで表示されます。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★地図タイプコントロール */ disableDefaultUI: true, /* 一旦全てのUIを無効化 */ mapTypeControl: true, mapTypeControlOptions: { style:google.maps.MapTypeControlStyle.DEFAULT }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> <style type="text/css"> #map_canvas { width:200px; height:200px; } </style> </head> <body> <h3>地図タイプコントロールの指定</h3> <p>地図サイズに応じて最適な地図タイプコントロールが表示されます。 例えば、下記のサンプルのように地図サイズが小さい(200x200)の場合は、ドロップダウンメニュー型の1ボタンになります。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
外観地図コントロール
OverviewMapControlOptions
2011/6/26
概要地図コントロールは、地図の右下に表示される折りたたみ可能な概観地図です。
デフォルトでは無効になっています。 概要地図コントロールを有効にするには、MapOptionsオブジェクトのoverviewMapControlプロパティに「true」を指定します。
コントロールの開閉状態についてはoverviewMapControlOptionsオブジェクトのopenedプロパティで指定します。
プロパティ名 | 説明 |
---|---|
opened | コントロールを開いた状態で表示する場合はtrue、折りたたまれた(最小化された)状態で表示する場合はfalseを指定。デフォルトはfalse。 |
{ overviewMapControl:true, overviewMapControlOptions:{ opened: true } }
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 17, /* 地図の中心点 */ center: latlng, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP, /* コントロール */ disableDefaultUI: true, /* 一旦全てのUIを無効化 */ overviewMapControl:true, overviewMapControlOptions:{ opened: true } }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>オーバービューマップコントロールの指定</h3> <p>地図の右下に折りたたみ可能な概観地図を表示します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
移動コントロール
PanControlOptions
2011/6/26
移動コントロールは、地図を上下左右に移動できるコントロールです。 デフォルトで有効になっており、地図の左上に表示されます。
デフォルトで有効になっており、地図の左上に表示されます。 移動コントロールを無効にするには、MapOptionsオブジェクトのpanControlプロパティに「false」を指定します。
移動コントロールの表示位置は、PanControlOptionsオブジェクトのpositionプロパティで変更可能です。
{ panControl: true, panControlOptions: { position: google.maps.ControlPosition.TOP_LEFT }, }
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>panControl | 設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, disableDefaultUI: true, /* 一旦全てのUIを無効化 */ /* ★移動コントロールを有効化 */ panControl: true, /* ★移動コントロールの表示位置 */ panControlOptions: { position: google.maps.ControlPosition.TOP_LEFT }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>移動コントロールの指定</h3> <p>地図に移動コントロールを明示的に追加します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
回転コントロール
RotateControlOptions
2011/6/26
回転コントロールは、地図の傾きを制御します。
クリックすると、表示されている地図の画像を90度ずつ回転できます。
回転コントロールは、デフォルトでは無効になっています。 有効化するには、MapOptionsオブジェクトのrotateControlプロパティに「true」を指定します。
回転コントロールの表示位置は、RotateControlOptions オブジェクトのpositionプロパティで変更可能です。
{ rotateControl: true, rotateControlOptions: { position: google.maps.ControlPosition.TOP_LEFT } }
※地図の傾きが45度に対応していない場所では表示されません。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>RotateControl | 設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> function initialize() { /* 緯度・経度:サンタ・クルーズ・ビッグ・ツリーズ & パシフィック・レイルウェイ=ボードウォーク駅 3rd St, サンタクルーズ カリフォルニア 95060 アメリカ合衆国 */ var latlng=new google.maps.LatLng(36.964758,-122.015539); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, disableDefaultUI:true, /* 一旦全てのUIを無効化 */ /* ★移動コントロールを有効化 */ rotateControl: true, /* ★移動コントロールの表示位置 */ rotateControlOptions: { position: google.maps.ControlPosition.TOP_LEFT }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.SATELLITE, setTile:45 }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body onload="initialize();"> <h3>回転コントロールの指定</h3> <p>地図に回転コントロールを明示的に追加します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
スケールコントロール
ScaleControlOptions / ScaleControlStyle
2011/6/26
地図のズームレベルを制御するコントロールです。
デフォルトで無効になっています。 スケールコントロールを有効にするには、MapOptionsオブジェクトのscaleControlプロパティに「true」を指定します。
スケールコントロールの表示位置は、ScaleControlOptionsオブジェクトのpositionプロパティで変更可能です。
{ scaleControl: true, scaleControlOptions: { position: google.maps.ControlPosition.BOTTOM_LEFT } }
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>scaleControl | 設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, disableDefaultUI: true, /* 一旦全てのUIを無効化 */ /* ★スケールコントロールを有効化 */ scaleControl: true, /* ★スケールコントロールの表示位置 */ scaleControlOptions: { position: google.maps.ControlPosition.BOTTOM_LEFT }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body onload="initialize();"> <h3>スケールコントロールの指定</h3> <p>スケールコントロールを表示。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
ストリートビューコントロール
StreetViewControlOptions
2011/6/26
ストリートビューコントロールは、地図の左上に表示されるペグマンコントロールです。
デフォルトで有効になっています。 コントロールを無効にするには、MapOptionsオブジェクトのstreetViewControlプロパティに「false」を指定します。
ストリートビューコントロールの表示位置は、StreetViewControlOptionsオブジェクトのpositionプロパティで変更可能です。
{ streetViewControl: true, streetViewControlOptions: { position: google.maps.ControlPosition.TOP_LEFT } }
下記のサンプルでは、ストリートビューコントロールを無効にします。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>streetViewControl | 設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★ストリートビューコントロールを無効化 */ streetViewControl: false, /* ★ストリートビューコントロールの表示位置 */ streetViewControlOptions: { position: google.maps.ControlPosition.TOP_LEFT }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>ストリートビューコントロールの指定</h3> <p>地図のストリートビューコントロールを無効にする。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
ズームコントロール
ZoomControlOptions / ZoomControlStyle
2011/6/26
ズームコントロールは地図のズームレベルを制御するコントロールです。 デフォルトで有効になっています。 コントロールを無効にするには、MapOptionsオブジェクトのzoomControlプロパティに「false」を指定します。
ズームコントロールの表示位置は、ZoomControlOptionsオブジェクトのpositionプロパティで変更可能です。
ズームコントロールのスタイルを変更するには、MapOptionsオブジェクトのzoomControlプロパティに「true」を指定し、下記のいずれかをzoomControlOptionsのstyleプロパティに指定します。
{
zoomControl: true,
zoomControlOptions: {
position: google.maps.ControlPosition.TOP_LEFT,
style:google.maps.ZoomControlStyle.SMALL
}
}
定数 | 説明・サンプル |
---|---|
LARGE | google.maps.ZoomControlStyle.LARGE Googleマップの標準コントロールを表示。 ※スマートフォン端末では、+-ボタンが表示されます。 |
SMALL | google.maps.ZoomControlStyle.SMALL ミニサイズのズームコントロールを表示。 ※スマートフォン端末では、+-ボタンが表示されます。 |
DEFAULT | google.maps.ZoomControlStyle.DEFAULT 地図サイズとデバイスに応じて最適なコントロールが表示されます。 |
ズームコントロール(デフォルト)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★ズームコントロール */ disableDefaultUI: true, /* 一旦全てのUIを無効化 */ zoomControl: true, zoomControlOptions: { position: google.maps.ControlPosition.TOP_LEFT, style:google.maps.ZoomControlStyle.DEFAULT }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> <style type="text/css"> #map_canvas { width:100%; height:100%; } </style> </head> <body onload="initialize();"> <h3>ズームコントロールの指定</h3> <p>地図にズームコントロール(デフォルト)を追加します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
ズームコントロール(大)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★ズームコントロール */ disableDefaultUI: true, /* 一旦全てのUIを無効化 */ zoomControl: true, zoomControlOptions: { style:google.maps.ZoomControlStyle.LARGE }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>ズームコントロールの指定</h3> <p>地図にズームコントロール(大)を追加します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
ズームコントロール(小)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, /* ★ズームコントロール */ disableDefaultUI: true, /* 一旦全てのUIを無効化 */ zoomControl: true, zoomControlOptions: { style:google.maps.ZoomControlStyle.SMALL }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>ズームコントロールの指定</h3> <p>地図にズームコントロール(小)を追加します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
コントロールの表示位置
ControlPosition
2011/6/26
参照:google.maps.ControlPositionクラス
各種コントロールの表示位置は、それぞれのコントロールオプションのpositionプロパティで変更できます。
zoomControl: true, zoomControlOptions: { position:google.maps.ControlPosition.TOP_RIGHT }, streetViewControl: true, streetViewControlOptions: { position: google.maps.ControlPosition.LEFT_CENTER }, panControl: true, panControlOptions: { position: google.maps.ControlPosition.RIGHT_CENTER }, mapTypeControl: true, mapTypeControlOptions: { position:google.maps.ControlPosition.TOP_LEFT }, scaleControl: true, scaleControlOptions: { position:google.maps.ControlPosition.BOTTOM_LEFT }
positionプロパティに指定可能な表示位置は下記の8つです。
各種コントロールの表示位置を変更
下記のサンプルでは、ズームコントロールを右上に、ストリートビューコントロールを左中央に、パンコントロールを右中央に、地図タイプコントロールを左上に、スケールコントロールを左下に表示しています。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); function initialize() { /* 緯度・経度:日本, 表参道駅(東京)*/ var latlng=new google.maps.LatLng(35.665270, 139.712330); /* 地図のオプション設定 */ var myOptions = { /*初期のズーム レベル */ zoom: 18, /* 地図の中心点 */ center: latlng, disableDefaultUI: true, /* 一旦全てのUIを無効化 */ /* ズームコントロール */ zoomControl: true, zoomControlOptions: { position:google.maps.ControlPosition.TOP_RIGHT, style: google.maps.ZoomControlStyle.SMALL }, /* ストリートビューコントロール */ streetViewControl: true, streetViewControlOptions: { position: google.maps.ControlPosition.LEFT_CENTER }, /* 移動コントロール */ panControl: true, panControlOptions: { position: google.maps.ControlPosition.RIGHT_CENTER }, /* 地図タイプコントロール */ mapTypeControl: true, mapTypeControlOptions: { position:google.maps.ControlPosition.TOP_LEFT, style:google.maps.MapTypeControlStyle.DROPDOWN_MENU }, /* スケールコントロール */ scaleControl: true, scaleControlOptions: { position:google.maps.ControlPosition.BOTTOM_LEFT }, /* 地図タイプ */ mapTypeId: google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body> <h3>コントロール - 各種コントロールの表示位置を変更</h3> <p>ズームコントロールを右上に、ストリートビューコントロールを左中央に、移動コントロールを右中央に、地図タイプコントロールを左上に、スケールコントロールを左下に表示。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>
カスタムコントロールの指定
描画、イベント処理
2011/6/26
独自のコントロールを地図上に描画し、イベントを設定して制御することができます。
設置サンプル
地図上に「表参道ヒルズ」ボタン、「六本木ヒルズ」ボタンを設置します。各ボタンをクリックすると該当する場所に移動します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/css/gmapv3.css" /> <!-- スマートフォン向けviewportの指定 --> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!-- jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Google Maps APIの読み込み --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> /* ページ読み込み時に地図を初期化 */ $(function(){ initialize(); }); var map; /* 緯度・経度:表参道ヒルズ */ var omotesando_hills = new google.maps.LatLng(35.667651, 139.707673); /* 緯度・経度:六本木ヒルズ */ var roppongi_hills = new google.maps.LatLng(35.660207, 139.729078); function HomeControl(controlDiv, map) { /* ボタン枠 */ controlDiv.style.padding = '5px'; controlDiv.style.backgroundColor = '#ffffcc'; controlDiv.style.border = '1px solid #000'; controlDiv.style.cursor = 'pointer'; controlDiv.style.textAlign = 'center'; /* 表参道ヒルズボタン */ var controlUI = document.createElement('DIV'); controlUI.style.backgroundColor = '#ffffff'; controlUI.style.border = '1px solid #000'; controlUI.style.float = 'left'; controlUI.style.cursor = 'pointer'; controlUI.style.textAlign = 'center'; controlUI.style.marginRight = '5px'; controlUI.title = '表参道ヒルズに移動'; controlDiv.appendChild(controlUI); var controlText = document.createElement('div'); controlText.style.fontFamily = 'Arial,sans-serif'; controlText.style.fontSize = '11px'; controlText.style.padding = '2px 5px'; controlText.innerHTML = '<b>表参道ヒルズ</b>'; controlUI.appendChild(controlText); /* 六本木ヒルズボタン */ var controlUI2 = document.createElement('DIV'); controlUI2.style.float = 'left'; controlUI2.style.backgroundColor = '#ffffff'; controlUI2.style.border = '1px solid #000'; controlUI2.style.cursor = 'pointer'; controlUI2.style.textAlign = 'center'; controlUI2.title = '六本木ヒルズに移動'; controlDiv.appendChild(controlUI2); var controlText2 = document.createElement('div'); controlText2.style.fontFamily = 'Arial,sans-serif'; controlText2.style.fontSize = '11px'; controlText2.style.padding = '2px 5px'; controlText2.innerHTML = '<b>六本木ヒルズ</b>'; controlUI2.appendChild(controlText2); /* 表参道ヒルズボタンをクリックした時 */ google.maps.event.addDomListener(controlUI, 'click', function() { map.setCenter(omotesando_hills) }); /* 六本木ヒルズボタンをクリックした時 */ google.maps.event.addDomListener(controlUI2, 'click', function() { map.setCenter(roppongi_hills) }); } /* 地図の初期化 */ function initialize() { var mapDiv = document.getElementById('map_canvas'); var myOptions = { zoom: 18, center: omotesando_hills, disableDefaultUI: true, /* 一旦デフォルトUIを無効化 */ zoomControl:true, zoomControlOptions:{ style:google.maps.ZoomControlStyle.SMALL, position:google.maps.ControlPosition.RIGHT_TOP }, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(mapDiv, myOptions); /* 地図上にカスタムコントロールを追加 */ var homeControlDiv = document.createElement('DIV'); var homeControl = new HomeControl(homeControlDiv, map); homeControlDiv.index = 1; /* カスタムコントロールを地図の右上に配置 */ map.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv); } </script> </head> <body> <h3>コントロールのカスタマイズ</h3> <p>地図上に「表参道ヒルズ」ボタン、「六本木ヒルズ」ボタンを設置します。各ボタンをクリックすると該当する場所に移動します。</p> <!-- 地図の埋め込み表示 --> <div id="map_canvas"></div> </body> </html>