iOS でプレミアム プランを使用する

Google Maps APIs Premium Plan ライセンスでは、Google Maps SDK for iOS の拡張サポートを利用できます。 このドキュメントでは、Premium Plan で Google Maps SDK for iOS を使用して iOS アプリを作成する方法について説明します。

概要

このページに記載された手順に従い、SDK をダウンロードし、プロジェクトをセットアップしてマップを追加します。 必要なステップの概要は次のとおりです。

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

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

Xcode の最新版を入手する

Google Maps SDK for iOS を使ってプロジェクトをビルドするには、バージョン 7.3 以降の Xcode が必要です。

SDK をインストールする

CocoaPods を使う

Google Maps SDK for iOS は CocoaPods の pod として利用できます。CocoaPods は、Swift と Objective-C の Cocoa プロジェクトで依存関係を管理するためのオープンソースのツールです。

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

sudo gem install cocoapods

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

  1. Xcode プロジェクトがまだない場合は、この時点で作成してローカルマシンに保存します(初めて iOS 開発を行う場合は、Single View Application を作成します)。
  2. プロジェクトのディレクトリに、Podfile という名前のファイルを作成します。このファイルでプロジェクトの依存関係を定義します。
  3. Podfile を編集して、依存関係を追加します。Google Maps SDK for iOS と Places API for iOS(オプション)に必要な依存関係を含む例を次に示します。
    source 'https://github.com/CocoaPods/Specs.git'
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps'
      pod 'GooglePlaces'
    end

    プレミアム プランのユーザーは、pod 'GoogleMaps/M4B' も追加する必要があります。

  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-2.0.1 をダウンロードします。
  2. ソースファイルを解凍します。
  3. Xcode を起動し、既存のプロジェクトを開くか、新しいプロジェクトを作成します。初めて iOS 開発を行う場合は、「Single View Application」を作成して、[Use Storyboards] を無効にし、[Use Automatic Reference Counting] を有効にします。
  4. 次のバンドルをプロジェクトにドラッグします(プロンプトが表示されたら、[Copy items if needed] を選択します)。
    • Subspecs/Base/Frameworks/GoogleMapsBase.framework
    • Subspecs/Maps/Frameworks/GoogleMaps.framework
    • Subspecs/Maps/Frameworks/GoogleMapsCore.framework

    プレミアム プランのユーザーは、Subspecs/M4B/Frameworks/GoogleMapsM4B.framework も含める必要があります。

  5. プロジェクトで [GoogleMaps.framework] を右クリックして、[Show In Finder] を選択します。
  6. [GoogleMaps.bundle] を [Resources] フォルダからプロジェクトにドラッグします。プロンプトが表示されたら、[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
    • CoreLocation.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 API for iOS をインストールする場合は、Places API for iOS のスタートガイドをご覧ください。

API キーを取得する

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

下のボタンをクリックして、指示に従って操作し、API キーを取得します。プロジェクトに iOS 限定の API キーが既にある場合は、そのキーを使用することもできます。重要: [Project] ドロップダウン メニューでは、Google Maps APIs Premium Plan を購入した際に作成されたプロジェクトを選択する必要があります。プロジェクト名の先頭は、Google Maps APIs for Business or Google Maps for Work or Google Maps です。

キーの取得

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

  1. Google API Console に移動します。
  2. [Project] ドロップダウン メニューから、Google Maps Premium プロジェクト*を選択します。
  3. [Continue] をクリックします。
  4. [Credentials] ページで、API キーを取得します。
    注: iOS 限定のキーがある場合は、そのキーを使用することもできます。同じプロジェクト内で任意の iOS アプリに対して同じキーを使用できます。
  5. API キーが表示されているダイアログで、[Restrict key] を選択して、API キーを iOS 限定にします。
  6. [Restrictions] セクションで [iOS apps] を選択してから、アプリのバンドル識別子を入力します。例: com.example.hellomap
  7. [Save] をクリックします。

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

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

Google API Console で、既存のキーを探すこともできます。

Google API Console の使用に関する詳細については、API Console のヘルプをご覧ください。

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

Swift

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

  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

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

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

マップの追加

次のコードは、既存の ViewController にシンプルな地図を追加する方法を示しています。新しいアプリを作成するには、まず上記のインストールの指示に従い、Single View Application を新規に作成します。このとき、[Use Storyboards] を無効に、[Use Automatic Reference Counting](ARC)を有効にします。

次に、アプリのデフォルトの ViewController 内でいくつかのメソッドの追加とアップデートを行い、GMSMapView のインスタンスを作成して初期化します。

Swift

import UIKit
import GoogleMaps

class YourViewController: UIViewController {

  // You don't need to modify the default init(nibName:bundle:) method.

  override func loadView() {
    // 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: CGRect.zero, camera: camera)
    mapView.isMyLocationEnabled = true
    view = 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

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

@implementation YourViewController

// You don't need to modify the default initWithNibName:bundle: method.

- (void)loadView {
  // 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:CGRectZero camera:camera];
  mapView.myLocationEnabled = YES;
  self.view = 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() を呼び出すことで入手できます。

サポート対象のプラットフォーム

Premium Plan とともに配布されている Google Maps SDK for iOS を使用して iOS アプリを開発するにあたって、必要なものは次のとおりです。

  • Xcode 7.3 以降
  • iOS SDK 8.0 以降

この SDK を使用して開発したアプリは、iOS 7.0 以降で動作します。

バージョンの比較

次の表は、標準の Google Maps SDK for iOS を使用する場合と、Premium Plan で SDK を使用する場合の主な違いを示しています。

  標準の Google Maps SDK for iOS Premium Plan
サポート チャンネル コミュニティ ベースのサポート プレミアム サポートの利用
利用規約 Google マップ / Google Earth API 利用規約に従います。 Google Maps APIs Premium Plan の利用規約に従います。

ドキュメント

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