地図を追加する

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

API では、マップは UIView のサブクラスである GMSMapView クラスで表されます。地図は Maps SDK for iOS の最も重要なオブジェクトであり、マーカーやポリラインなどの他のオブジェクトの追加、削除、管理に必要なメソッドを提供します。

はじめに

Maps SDK for iOS を使用すると、iOS アプリに Google マップを表示できます。これらの地図の外観は Google マップ iOS アプリに表示される地図と同じで、SDK でも多くの機能が公開されます。

マッピング機能に加えて、API は iOS UI モデルと一致するさまざまなインタラクションもサポートしています。たとえば、タップやダブルタップなどのユーザー操作に反応するレスポンダーを定義することで、地図とのインタラクションを設定できます。

マップ オブジェクトを操作する場合の主要なクラスは GMSMapView クラスです。GMSMapView は、次の操作を自動的に処理します。

  • Google マップサービスに接続する。
  • 地図タイルをダウンロードする。
  • タイルをデバイスの画面に表示する。
  • パンやズームといった各種コントロールを表示する。
  • パン操作やズーム操作に、地図の移動やズームイン / ズームアウトで応答する。
    • 地図の表示角度を傾斜して 2 本指のジェスチャーに応答する。

これらの自動操作に加えて、GMSMapView クラスで公開されるプロパティとメソッドを使用して地図の動作と外観を制御できます。GMSMapView を使用すると、マーカー、地面オーバーレイ、ポリラインの追加と削除、表示される地図のタイプの変更、GMSCameraPosition クラスを介した地図の表示内容の制御を行うことができます。

SwiftUI で地図を作成する

SwiftUI には、宣言型のアプローチで UI を作成するもう 1 つの方法が用意されています。SwiftUI に、ビューの表示方法を、そのビューのさまざまな状態とともに指示すれば、残りの処理はシステムが行います。SwiftUI は、イベントやユーザーの操作によって基になる状態が変化するたびにビューを更新します。

Maps SDK for iOS は UIKit の上に構築されているため、SwiftUI 互換のビューは提供されません。SwiftUI でマップを追加するには、UIViewRepresentable または UIViewControllerRepresentable に準拠する必要があります。詳しくは、Codelab の SwiftUI を使って iOS アプリに地図を追加するをご覧ください。

地図を追加する

地図を追加する基本的な手順は次のとおりです。

  1. SDK の入手、API キーの取得、必要なフレームワークの追加は、次の手順に沿って行います。

    1. Google Cloud コンソールでセットアップする

    2. API キーを使用する

    3. Xcode プロジェクトをセットアップする

    4. AppDelegate で、GMSServicesprovideAPIKey: クラスメソッドに API キーを指定します。

    5. ViewController を作成または更新します。このビュー コントローラが表示されたときに地図を表示する場合は、必ず viewDidLoad メソッド内で地図を作成してください。

    6. 地図表示を初期化するときに、GMSMapViewOptions を使用して設定オプションを設定します。プロパティには、framecameramapIDbackgroundColorscreen などがあります。

    7. GMSCameraPosition オブジェクトを使用して、地図のオプションcamera プロパティを設定します。地図の中心とズームレベルを指定します。

    8. GMSMapView options: メソッドを使用して、GMSMapView クラスを作成してインスタンス化します。この地図をビュー コントローラの唯一のビューとして使用する場合は、地図オプションの frame のデフォルト値(CGRectZero)をビュー frame として使用できます。これにより、地図のサイズが自動的に変更されます。

    9. GMSMapView オブジェクトをビュー コントローラのビューとして設定します。例: self.view = mapView;

次の例では、シンガポールの繁華街を中心としたマップをアプリに追加しています。

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

    let options = GMSMapViewOptions()
    options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    options.frame = self.view.bounds;

    let mapView = GMSMapView(options:options)
    self.view = mapView
  }
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];

  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                        longitude:103.848
                                                             zoom:12];
  options.frame = self.view.bounds;

  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  self.view = mapView;
}

上記の手順を完了したら、GMSMapView オブジェクトをさらに構成できます。

次のステップ

これらの手順を完了したら、地図の設定を開始できます。