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
オブジェクトをさらに構成できます。
次のステップ
これらの手順が完了したら、地図の設定を構成できます。