地図を追加する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

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 アプリに地図を追加するをご覧ください。

地図を追加する

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

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

    1. Google Cloud Console でセットアップする

    2. API キーを使用する

    3. Xcode プロジェクトを設定する

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

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

    1. 地図の中心とズームレベルを指定する GMSCameraPosition オブジェクトを作成します。GMSMapView オブジェクトをインスタンス化するときは、GMSCameraPosition オブジェクトを必須パラメータとして渡す必要があります。

    2. GMSMapView mapWithFrame: メソッドを使用して GMSMapView クラスを作成し、インスタンス化します。この地図をビュー コントローラの唯一のビューとして使用する場合は、CGRectZero を地図のフレームとして使用できます。この場合、地図は自動的にサイズ変更されます。

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

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

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Objective-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

上記の手順を行うと、GMSMapView オブジェクトをさらに構成できます。

次のステップ

これらの手順を完了すると、地図を設定できるようになります。