Maps SDK for iOS を使用すると、地図に表示する組み込みの UI コンポーネントや許可する操作を指定して、ユーザーが地図を操作する方法をカスタマイズできます。
地図のコントロール
Maps SDK for iOS には、iOS 向け Google マップ アプリケーションのものに似た、組み込み UI コントロールが用意されています。これらのコントロールの表示と非表示を切り替えるには、GMSUISettings
クラスを使用します。このクラスに加えられた変更は、すぐにマップに反映されます。
コンパス
Maps SDK for iOS には、特定の状況下でマップの右上に表示される、コンパス グラフィックがあります。コンパスは、カメラの向きをゼロ以外の方向として指定している場合にのみ表示されます。ユーザーがコンパスをクリックすると、カメラの方向指定がゼロの位置(デフォルトの向き)に戻り、その後、コンパスが徐々に消えていきます。
コンパスはデフォルトで無効になっています。GMSUISettings
の compassButton
プロパティを 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;
現在地ボタン
現在地ボタンは、現在地ボタンが有効になっている場合にのみ、画面の右下に表示されます。ユーザーがボタンをクリックすると、ユーザーの位置情報がわかっている場合は、カメラがアニメーションでユーザーの現在地にフォーカスします。ボタンを有効にするには、GMSUISettings
の myLocationButton
プロパティを YES
に設定します。
Swift
mapView.settings.myLocationButton = true
Objective-C
mapView.settings.myLocationButton = YES;
フロア選択ツール
構内図が大きく表示されると、画面の右下付近に階数ピッカー コントロールが表示されます。複数の構内図が表示されている場合、フロアピッカーは画面の中央に最も近い建物に関連付けられます。各建物には、ピッカーが最初に表示されたときに選択される、デフォルトの階があります。ピッカーを使用すると、別の階を選択できます。
GMSUISettings
の indoorPicker
プロパティを 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; }