Maps SDK for iOS(プレミアム プラン)スタートガイド

注: 現在 Google Maps Platform プレミアム プランは、新規お申し込みまたは新規お客様のご利用を受け付けていません。

Google Maps Platform プレミアム プラン ライセンスでは、Maps SDK for iOS 向けに高度なサポートが提供されます。このドキュメントでは、プレミアム プランの Maps SDK for iOS を使用して iOS アプリを開発する方法を説明します。

概要

このページの手順に沿って SDK をダウンロードし、プロジェクトを設定して、マップを追加します。iOS アプリの開発に必要な主なステップは次のとおりです。

  1. Xcode と SDK をインストールする
  2. API キーを取得する
  3. アプリに API キーを追加する
  4. マップを追加する

Xcode と SDK をインストールする

Xcode の最新バージョンを入手

Maps SDK for iOS を使用してプロジェクトを作成するには、バージョン 11.7 以降の Xcode が必要です。

SDK のインストール

CocoaPods を使用

Maps SDK for iOS は CocoaPods ポッドとして提供されています。CocoaPods は、Swift と Objective-C の Cocoa プロジェクトで依存関係を管理するためのオープンソース ツールです。

CocoaPods ツールがない場合は、ターミナルから以下のコマンドを実行して、macOS 上に CocoaPods ツールをインストールします。詳しくは、CocoaPods スタートガイドをご覧ください。

sudo gem install cocoapods

Maps SDK for iOS の Podfile を作成し、これを使用して API とその依存関係をインストールします。

  1. Xcode プロジェクトをまだ作成していない場合は、ここで作成してローカルマシンに保存します(iOS アプリを初めて開発する場合は、新規プロジェクトの作成時に iOS アプリ テンプレートを選択してください。Xcode 11.7 以前では [Single View Application] を作成します)。
  2. プロジェクトのディレクトリに、Podfile という名前のファイルを作成します。このファイルでプロジェクトの依存関係を定義します。
  3. Podfile を編集して、依存関係を追加します。次の例では、Maps SDK for iOS と Places SDK for iOS に必要な依存関係を追加しています(省略可)。
    source 'https://github.com/CocoaPods/Specs.git'
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps'
      pod 'GooglePlaces'
    end
  4. Podfile を保存します。
  5. ターミナルを開き、Podfile を含むディレクトリに移動します。

    cd <path-to-project>
  6. pod install コマンドを実行します。Podfile で指定した API とその依存関係がインストールされます。

    pod install
  7. Xcode を終了し、プロジェクトの .xcworkspace ファイルを(ダブルクリックして)開いて、Xcode を起動します。これ以降、このプロジェクトを開くには .xcworkspace ファイルを使用する必要があります。

手動でインストール

このガイドでは、GoogleMaps フレームワークをプロジェクトに手動で追加し、Xcode でビルドを構成する方法を説明します。

  1. SDK ソースファイル(GoogleMaps-3.10.0)をダウンロードします。
  2. ダウンロードしたソースファイルを解凍します。
  3. Xcode を起動し、既存のプロジェクトを開くか、新しいプロジェクトを作成します。iOS アプリを初めて開発する場合は、[Single View Application] を作成して [Use Storyboards] を無効にし、[Use Automatic Reference Counting] を有効にします。
  4. 次のバンドルをプロジェクトにドラッグします(プロンプトが表示されたら、[Copy items if needed] を選択します。上記と同じバージョンを使用してください)。
    • GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.framework

    プレミアム プランをご利用のお客様は、GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.framework も追加する必要があります。

  5. プロジェクトで GoogleMaps.framework を右クリックし、[Show In Finder] を選択します。
  6. GoogleMaps.bundleResources フォルダからプロジェクトにドラッグします。プロンプトが表示されたら、[Copy items into destination group's folder] が選択されていないことを確認します。
  7. プロジェクト ナビゲータで目的のプロジェクトを選択し、アプリのターゲットを選択します。
  8. [Build Phases] タブを開き、[Link Binary with Libraries] 内に次のフレームワークを追加します。
    • GoogleMapsBase.framework
    • GoogleMaps.framework
    • GoogleMapsCore.framework
    • GoogleMapsM4B.framework(プレミアム プランのお客様のみ)
    • Accelerate.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libz.tbd
    • OpenGLES.framework
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  9. (特定のターゲットではなく)プロジェクトを選択して、[Build Settings] タブを開きます。[Other Linker Flags] セクションで -ObjC を追加します。これらの設定が表示されない場合は、[Build Settings] バーのフィルタを [Basic] から [All] に変更します。

  10. Places SDK for iOS をインストールする方法は、Places SDK for iOS スタートガイドをご覧ください。

API キーを取得する

Maps SDK for iOS に対してアプリを認証するには、アプリ固有のバンドル ID に API キーを制限する必要があります。この組み合わせによって、iOS 限定の API キーが作成されます。

下のボタンをクリックし、指示に従ってAPI キーを取得してください。プロジェクトですでに iOS 限定の API キーを使用している場合は、そのキーを使用できます。重要: プロジェクトのプルダウン メニューで、Google Maps Platform プレミアム プランの購入時に作成されたプロジェクトを選択する必要があります。プロジェクト名は、Google Maps API for Business、Google Maps for Work、または Google Maps で始まります。

使ってみる

または、次の手順で API キーを取得します。

  1. Google Cloud Platform Console に移動します。
  2. プロジェクトのプルダウン メニューで、プレミアム プランのプロジェクトを選択します*。
  3. [次へ] をクリックします。
  4. [認証情報] ページで [API キー] を取得します。
    注: iOS 限定のキーがある場合は、そのキーを使用してもかまいません。同じプロジェクト内であれば、どの iOS アプリでも同じキーを使用できます。
  5. API キーが表示されているダイアログで [キーの制限] を選択し、API キーに iOS 制限を設定します。
  6. [制限] セクションで [iOS アプリ] を選択し、アプリのバンドル ID を入力します(例: com.example.hellomap)。
  7. [保存] をクリックします。

    プロジェクトの API キーのリストに、新しい iOS 限定の API キーが表示されます。API キーは次のような文字列です。

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

Google Cloud Platform Console で既存のキーを検索することもできます。

Google Cloud Platform Console の詳しい使用方法は、Google Cloud Platform Console のヘルプをご覧ください。

アプリに API キーを追加する

Swift

次のように、API キーを AppDelegate.swift に追加します。

  1. 以下のインポート文を追加します。
    import GoogleMaps
  2. 次のコードを application(_:didFinishLaunchingWithOptions:) メソッドに追加し、「YOUR_API_KEY」をお客様の API キーに置き換えます。
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Places API も使用している場合は、次のようにキーを再度追加します。
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

次のように、API キーを AppDelegate.m に追加します。

  1. 以下のインポート文を追加します。
    @import GoogleMaps;
  2. 次のコードを application:didFinishLaunchingWithOptions: メソッドに追加し、「YOUR_API_KEY」をお客様の API キーに置き換えます。
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Places API も使用している場合は、次のようにキーを再度追加します。
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

マップを追加する

以下のコードでは、既存の ViewController に簡単なマップを追加する方法を示しています。新しいアプリを作成する場合は、最初に上記の手順で SDK をインストールして、新しいプロジェクトを作成し、iOS アプリ テンプレートを選択します。注: 11.7 では [Single View Application] を作成します。

次に、アプリのデフォルトの ViewController 内にいくつかのメソッドを追加(またはこれらのメソッドを更新)し、GMSMapView のインスタンスを作成して初期化します。

Swift

/*
 * Copyright 2020 Google Inc. All rights reserved.
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

import UIKit
import GoogleMaps

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.
        let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera)
        self.view.addSubview(mapView)

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
  }
}

      

Objective-C

/*
* Copyright 2020 Google Inc. All rights reserved.
*
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
  // Do any additional setup after loading the view.
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:6];
  GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
  mapView.myLocationEnabled = YES;
  [self.view addSubview:mapView];

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end

      

アプリを実行すると、シドニー(オーストラリア)の中心にマーカーが 1 つ配置されたマップが表示されます。マーカーのみ表示され、マップが表示されない場合は、API キーを指定しているか確認してください。

その他の情報

帰属表示の要件

アプリケーションの法的通知セクションに、帰属に関するテキストを含める必要があります。独立したメニュー項目として、または [情報] メニュー項目の一部として、法的通知を掲載することをおすすめします。

属性情報のテキストを取得するには、 GMSServices.openSourceLicenseInfo() を呼び出します。

対応プラットフォーム

プレミアム プランの Maps SDK for iOS を使用して iOS アプリを開発するには、以下の環境が必要です。

  • Xcode 11.7 以降
  • iOS SDK 11.0 以降

この SDK で開発したアプリは、iOS 9.0 以降で動作します。

バージョンの比較

次の表は、Maps SDK for iOS の標準プランを使用する場合と、プレミアム プランを使用する場合の主な違いを示しています。

  標準の Maps SDK for iOS プレミアム プラン
サポート チャネル コミュニティ サポート プレミアム サポートを利用可能
利用規約 Google Maps Platform の利用規約が適用される Google Maps Platform プレミアム プランの利用規約が適用される

ドキュメント

Maps SDK for iOS に関する主な情報ソースは、Google のサイトで公開されているデベロッパー ガイドとリファレンス ドキュメントです。