コントロールと操作

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

プラットフォームを選択: Android iOS JavaScript

Maps SDK for iOS を使用すると、地図に組み込まれた UI コンポーネントと、使用できる操作を決定することで、ユーザーによるマップの操作方法をカスタマイズできます。

地図のコントロール

Maps SDK for iOS には、iOS 向け Google マップ アプリのものと同様の組み込みの UI コントロールが用意されています。これらのコントロールの可視性は、GMSUISettings クラスを使用して切り替えられます。このクラスに加えられた変更は、すぐにマップに反映されます。

コンパス

Maps SDK for iOS には、特定の状況下で地図の右上に表示されるコンパス グラフィックが用意されています。コンパスは、カメラの向きをゼロ以外の方向にした場合にのみ表示されます。ユーザーがコンパスをクリックすると、カメラの方向指定がゼロの位置(デフォルトの向き)に戻る様子がアニメーション表示され、その直後にコンパスが消えます。

コンパスはデフォルトで無効になっています。コンパスを有効にするには、GMSUISettingscompassButton プロパティを YES に設定します。ただし、コンパスが常に表示されるように設定することはできません。

Swift

let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.settings.compassButton = true
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.settings.compassButton = YES;
      

現在地ボタン

現在地ボタンは、現在地ボタンが有効になっている場合にのみ、画面の右下に表示されます。ユーザーがボタンをクリックすると、カメラがアニメーション化され、ユーザーの現在位置がわかっている場合にユーザーの現在地にアニメーションで移動します。ボタンを有効にするには、GMSUISettingsmyLocationButton プロパティを YES に設定します。

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

フロア選択ツール

インドアマップが目立つように表示される場合は、画面選択ツールの下部にフロア選択ツールのコントロールが表示されます。インドアマップが 2 つ以上表示されている場合、階数ピッカーは画面の中央に最も近い建物に関連付けられます。各建物にはデフォルトの階があり、ピッカーが最初に表示されたときに選択された場所です。ピッカーを使用すると、別の階を選択できます。

階数ピッカー コントロールを無効にするには、GMSUISettingsindoorPicker プロパティを NO に設定します。

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

地図の操作

地図でのデフォルトのジェスチャーを無効にするには、GMSMapView のプロパティとして使用できる GMSUISettings クラスのプロパティを設定します。次のジェスチャーはプログラムで有効にしたり無効にしたりすることができます。なお、この操作を無効にしても、プログラムによるカメラ設定へのアクセスが制限されることはありません。

  • scrollGestures - スクロール操作を有効にするか無効にするかを制御します。有効な場合、ユーザーはスワイプによってカメラをパンすることができます。
  • zoomGestures - ズーム操作を有効にするか無効にするかを制御します。有効にすると、ユーザーはダブルタップ、2 本指タップ、またはピンチでカメラをズームできます。なお、scrollGestures が有効になっている場合にダブルタップやピンチを行うと、カメラが指定ポイントまでパンされる可能性があります。
  • tiltGestures - 傾斜操作を有効にするか無効にするかを制御します。有効にした場合、ユーザーは 2 本の指で上下のスワイプを使用してカメラを傾けることができます。
  • rotateGestures - 回転操作を有効にするか無効にするかを制御します。有効にすると、2 本指の回転操作を使用してカメラを回転できます。

次の例では、パン操作とズーム操作を無効にしています。

Swift

override func loadView() {
  let camera = GMSCameraPosition.camera(
    withLatitude: 1.285,
    longitude: 103.848,
    zoom: 12
  )

  let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
  mapView.settings.scrollGestures = false
  mapView.settings.zoomGestures = false
  self.view = mapView
}
      

Objective-C

- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}