その際、使用者が地図を操作?(ズームや移動)できないようにするにはどうしたよいのか悩んでおります。
このような自分で検索することすらままならない素人ですが、なにかヒントでもいただけると幸いです。
どなたかご教授のほどどうかよろしくお願いいたします。
https://developers.google.com/maps/documentation/javascript/controls?hl=ja#DisablingDefaults
API のデフォルトの UI 設定をオフにする場合は、Map の disableDefaultUI プロパティ(Map options オブジェクト内)を true に設定します。このプロパティは、Google Maps API のすべての自動の UI 動作を無効にします。
もう少し細かくコントロールするなら、
panControl: 移動コントロールの有効/無効を設定します。このコントロールは、デフォルトでは地図の左上隅に表示されます。さらに、panControlOptions フィールドはこのコントロールで使用する PanControlOptions を指定します。
zoomControl: ズーム コントロールの有効/無効を設定します。このコントロールは、デフォルトでは地図の左上隅に表示されます。さらに、zoomControlOptions フィールドはこのコントロールで使用する ZoomControlOptions を指定します。
scaleControl: シンプルな地図縮尺を表示するスケール コントロールの有効/無効を設定します。このコントロールは、デフォルトでは表示されません。有効にすると、地図の左下隅に表示されます。さらに、scaleControlOptions はこのコントロールで使用する ScaleControlOptions を指定します。
等のオプションがあります。組み合わせてお使いください。
あと、イベントリスナーでの無理矢理な対応として以下が上げられます。
https://developers.google.com/maps/documentation/javascript/reference?hl=ja#MapsEventListener
まず、google.maps.event.clearListeners(map,"click")関数でマップへのクリックを止めます。
同様にgoogle.maps.event.clearListeners(map, "zoom_changed")関数でマップのズームを止めます。
※mapはgoogle.maps.Mapクラスのインスタンスです。
https://developers.google.com/maps/documentation/javascript/controls?hl=ja#DisablingDefaults
API のデフォルトの UI 設定をオフにする場合は、Map の disableDefaultUI プロパティ(Map options オブジェクト内)を true に設定します。このプロパティは、Google Maps API のすべての自動の UI 動作を無効にします。
もう少し細かくコントロールするなら、
panControl: 移動コントロールの有効/無効を設定します。このコントロールは、デフォルトでは地図の左上隅に表示されます。さらに、panControlOptions フィールドはこのコントロールで使用する PanControlOptions を指定します。
zoomControl: ズーム コントロールの有効/無効を設定します。このコントロールは、デフォルトでは地図の左上隅に表示されます。さらに、zoomControlOptions フィールドはこのコントロールで使用する ZoomControlOptions を指定します。
scaleControl: シンプルな地図縮尺を表示するスケール コントロールの有効/無効を設定します。このコントロールは、デフォルトでは表示されません。有効にすると、地図の左下隅に表示されます。さらに、scaleControlOptions はこのコントロールで使用する ScaleControlOptions を指定します。
等のオプションがあります。組み合わせてお使いください。
あと、イベントリスナーでの無理矢理な対応として以下が上げられます。
https://developers.google.com/maps/documentation/javascript/reference?hl=ja#MapsEventListener
まず、google.maps.event.clearListeners(map,"click")関数でマップへのクリックを止めます。
同様にgoogle.maps.event.clearListeners(map, "zoom_changed")関数でマップのズームを止めます。
※mapはgoogle.maps.Mapクラスのインスタンスです。
sasadaさん丁寧な返信ありがとうございます。
上記リンク等確認いたしました。
現在iPhoneなどのタッチデバイスにおいての、操作を無効にしたいと考えています。
そのためsasadaさんのアドバイスにあります、event.clearListeners()関数を使うのが良いかと感じましたがいかかでしょうか。
闇雲のなか調べていく道筋が見えてきました、ご回答本当にありがとうございました。
clearListener関数は私も使ったことがあります。代替機能を用意するとなるとなにかと大変ですが、ただ単に止めるだけなら手間も掛かりません。ご参考になれば幸いです。
こんな感じですね。
function initialize() { var mapDiv = document.getElementById('map-canvas'); var map = new google.maps.Map(mapDiv, { center: new google.maps.LatLng(37.4419, -122.1419), draggable: false, disableDefaultUI: true, zoom: 13, maxZoom: 13, minZoom: 13, mapTypeId: google.maps.MapTypeId.ROADMAP }); }
↓サンプル
http://savedbythegoog.appspot.com/?id=5064845de4d2c0de67ad0ba359dac1aba2e6297f
コメントを見て、↓こっちを使った方がいい気がしてきました。
Static Maps API V2 デベロッパー ガイド - Google Maps Image API — Google Developers
sasadaさん丁寧な返信ありがとうございます。
2014/04/29 15:20:38上記リンク等確認いたしました。
現在iPhoneなどのタッチデバイスにおいての、操作を無効にしたいと考えています。
そのためsasadaさんのアドバイスにあります、event.clearListeners()関数を使うのが良いかと感じましたがいかかでしょうか。
闇雲のなか調べていく道筋が見えてきました、ご回答本当にありがとうございました。
clearListener関数は私も使ったことがあります。代替機能を用意するとなるとなにかと大変ですが、ただ単に止めるだけなら手間も掛かりません。ご参考になれば幸いです。
2014/04/29 15:26:43