地図を追加する

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

プラットフォームを選択: 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 への準拠が必要となります。詳しくは、SwiftUI を使って iOS アプリに地図を追加する Codelab をご確認ください。

地図を追加する

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

  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 オブジェクトをさらに構成できます。

次のステップ

これらの手順を完了したら、地図の設定を行うことができます。