API では、地図は UIView
のサブクラスである GMSMapView
クラスによって表現されます。地図は Maps SDK for iOS の最も重要なオブジェクトであり、マーカーやポリラインなどの他のオブジェクトを追加、削除、管理するために必要なメソッドを提供します。
はじめに
Maps SDK for iOS を使用すると、iOS アプリに Google マップを表示できます。これらの地図の外観は Google マップ iOS アプリに表示される地図と同じで、同じ機能の多くが SDK によって公開されます。
マッピング機能に加えて、API は iOS UI モデルと一致するさまざまな操作もサポートしています。たとえば、タップやダブルタップなどのユーザー操作に反応するレスポンダーを定義することで、地図とのインタラクションを設定できます。
Map オブジェクトを扱う際に重要なクラスは GMSMapView
クラスです。GMSMapView
は、次の操作を自動的に処理します。
- Google マップサービスに接続する。
- 地図タイルをダウンロードする。
- タイルをデバイスの画面に表示する。
- パンやズームといった各種コントロールを表示する。
- パン操作やズーム操作に対して、地図の移動やズームイン / ズームアウトで応答する。
- 地図の表示角度を傾斜させることで 2 本指操作に応答する。
これらの自動操作に加えて、GMSMapView
クラスによって公開されるプロパティとメソッドを使用して、地図の動作と外観を制御することもできます。GMSMapView
を使用すると、マーカー、地面オーバーレイ、ポリラインの追加と削除、表示される地図の種類の変更、地図上に表示される内容のコントロールを GMSCameraPosition
クラスを通じて行うことができます。
SwiftUI でマップを作成する
SwiftUI には、宣言型のアプローチで UI を作成するための新たな方法が用意されています。ビューの外観をそのビューのさまざまな状態とともに SwiftUI に指示すれば、あとはシステムが処理します。SwiftUI は、イベントやユーザー アクションによって基礎となる状態が変化するたびに、ビューを更新します。
Maps SDK for iOS は UIKit
上に構築されているため、SwiftUI 互換のビューは提供されません。SwiftUI に地図を追加するには、UIViewRepresentable
または UIViewControllerRepresentable
に準拠する必要があります。詳しくは、Codelab の SwiftUI で iOS アプリに地図を追加するをご覧ください。
地図を追加する
地図を追加する基本的な手順は次のとおりです。
SDK の入手、API キーの取得、必要なフレームワークの追加は、次の手順に沿って行います。
AppDelegate
で、GMSServices
のprovideAPIKey:
クラスメソッドに API キーを指定します。ViewController
を作成または更新します。このビュー コントローラが表示されたときに地図が表示される場合は、必ずviewDidLoad
メソッド内で地図を作成してください。地図表示を初期化するときに、
GMSMapViewOptions
を使用して構成オプションを設定します。プロパティにはframe
、camera
、mapID
、backgroundColor
、screen
などがあります。地図のオプションの
camera
プロパティを、GMSCameraPosition
オブジェクトを使って設定します。地図の中心とズームレベルを指定します。GMSMapView
options:
メソッドを使用して、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
オブジェクトをさらに構成できます。
次のステップ
このトピックの手順を完了したら、地図の設定に移ることができます。