1398750408 google map api を使って、webサイト内に地図を配置しようと考えております。

その際、使用者が地図を操作?(ズームや移動)できないようにするにはどうしたよいのか悩んでおります。
このような自分で検索することすらままならない素人ですが、なにかヒントでもいただけると幸いです。
どなたかご教授のほどどうかよろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/05/01 17:15:14

ベストアンサー

id:sasada No.1

回答回数1482ベストアンサー獲得回数133

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クラスのインスタンスです。

id:hope_is_dream

sasadaさん丁寧な返信ありがとうございます。
上記リンク等確認いたしました。
現在iPhoneなどのタッチデバイスにおいての、操作を無効にしたいと考えています。
そのためsasadaさんのアドバイスにあります、event.clearListeners()関数を使うのが良いかと感じましたがいかかでしょうか。

闇雲のなか調べていく道筋が見えてきました、ご回答本当にありがとうございました。

2014/04/29 15:20:38
id:sasada

clearListener関数は私も使ったことがあります。代替機能を用意するとなるとなにかと大変ですが、ただ単に止めるだけなら手間も掛かりません。ご参考になれば幸いです。

2014/04/29 15:26:43

その他の回答1件)

id:sasada No.1

回答回数1482ベストアンサー獲得回数133ここでベストアンサー

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クラスのインスタンスです。

id:hope_is_dream

sasadaさん丁寧な返信ありがとうございます。
上記リンク等確認いたしました。
現在iPhoneなどのタッチデバイスにおいての、操作を無効にしたいと考えています。
そのためsasadaさんのアドバイスにあります、event.clearListeners()関数を使うのが良いかと感じましたがいかかでしょうか。

闇雲のなか調べていく道筋が見えてきました、ご回答本当にありがとうございました。

2014/04/29 15:20:38
id:sasada

clearListener関数は私も使ったことがあります。代替機能を用意するとなるとなにかと大変ですが、ただ単に止めるだけなら手間も掛かりません。ご参考になれば幸いです。

2014/04/29 15:26:43
id:Lhankor_Mhy No.2

回答回数814ベストアンサー獲得回数232

 こんな感じですね。

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

id:Lhankor_Mhy

 コメントを見て、↓こっちを使った方がいい気がしてきました。
Static Maps API V2 デベロッパー ガイド - Google Maps Image API — Google Developers

2014/04/29 15:22:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません