API では、地図は GMSMapView クラス(UIView の
サブクラス)によって表されます。地図は、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 作成が可能です。ビューの外観とさまざまな状態を SwiftUI に伝えると、あとはシステムが自動的に処理してくれます。もとになっている状態がイベントやユーザー行動により変化すると、SwiftUI が自動的にビューを更新します。
Maps SDK for iOS は UIKit を基盤として設計されており、SwiftUI 対応のビューは提供されていません。SwiftUI で地図を追加するには、UIViewRepresentable または UIViewControllerRepresentable に準拠する必要があります。詳しくは、
SwiftUI を使って iOS アプリに地図を追加する
Codelab をご覧ください。
地図を追加する
マップを追加するための基本的なステップは次のとおりです。
SDK の入手、API キーの取得、必要なフレームワークの追加は、次の手順に沿って行います。
AppDelegateで、GMSServicesのprovideAPIKey:クラス メソッドに API キーを指定します。ViewControllerを作成または更新します。このビュー コントローラが表示されたときに地図が表示される場合は、viewDidLoadメソッド内で作成してください。地図ビューを初期化するときに、
GMSMapViewOptionsで構成オプションを設定します。プロパティには、frame、camera、mapID、backgroundColor、screenなどがあります。地図オプション
cameraプロパティをGMSCameraPositionオブジェクトを使用して設定します。これにより、地図の中心とズームレベルが指定されます。GMSMapViewoptions:メソッドを使用して、GMSMapViewクラスを作成してインスタンス化します。この地図をビュー コントローラの唯一のビューとして使用する場合は、地図オプションframeのデフォルト値CGRectZeroをビューframeとして使用できます。地図のサイズは自動的に変更されます。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 オブジェクトをさらに構成できます。
次のステップ
このトピックの手順を完了したら、地図 設定に進みます。