以前の Google Maps Mobile SDK for Work: iOS

以前の Google Maps APIs for Work または Google Maps API for Business ライセンスを所有しているユーザーは、Google Maps SDK for iOS を Google Maps Mobile SDK for Work の一部として購入済みです。

本ドキュメントのこのセクションでは、この SDK をセットアップする方法について説明します。

このページは、以前の Maps APIs for Work または Maps API for Business ライセンスのユーザーのみを対象にしています。このページの内容は、2016 年 1 月から利用可能になった新しい Google Maps APIs Premium Plan のユーザーには適用されません。

概要

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

  1. SDK をダウンロードします。
  2. API キーを AppDelegate に追加します。
  3. マップを追加します。

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 キーによって、Google Maps Mobile SDK for Work ユーザーとして特定され、アプリのサポートや購入済み割り当てが可能になります。 アプリのパッケージ名を登録して Google Maps Mobile SDK サービスを有効にしているアカウントで API キーを生成できます。

アカウントが

Google Maps Mobile SDK サービスに対して有効になっていることを確認する

Google Cloud Support チームは、Google Maps Mobile SDK for Work のサインアップ時に Google Maps Mobile SDK サービスを有効にします。

サービスが新しいプロジェクトで有効になります。

注: Google Maps Mobile SDK サービスが表示されるのは、プロジェクトの最初の所有者のみです。 プロジェクト所有者の追加承認をリクエストするには、

Google Cloud Support Portal に技術以外のケースを提出します。

以下の手順に従って、必須の API に対してアカウントが有効になっていることを確認します。

  1. Google API Console にアクセスして、Google アカウントでログインします。
  2. Google Maps Mobile SDK for Work を注文したときに作成された [Google Maps Mobile SDK for Work] プロジェクトを選択します。 プロジェクト名は、Google Maps APIs for Business or Google Maps for Work or Google Maps から始まります。 まだ SDK へのアクセスを購入していない場合は、[営業にお問い合わせ]ください。

  3. [Dashboard] の [APIs] のリストで、Google Maps Mobile SDK が有効になっていることを確認します。

Google API Console から API キーを取得する

プロジェクトに対して Google Maps Mobile SDK for Work サービスが有効になったら、新しい API キーを生成する必要があります。

  1. Google API Console の [Credential] ページに移動し、Google アカウントでログインします。

  2. Google Maps Mobile SDK for Work を注文したときに作成された [Google Maps Mobile SDK for Work] プロジェクトを選択します。

プロジェクト名は、Google Maps APIs for Business or Google Maps for Work or Google Maps から始まります。 まだ SDK へのアクセスを購入していない場合は、[営業にお問い合わせ]ください。

  1. [API keys] のリストから、iOS 限定のキーを見つけます。
  2. まだプロジェクトに iOS 限定の API キーがない場合は、[Create credentials] > [API key] を選択してすぐに作成します。

  3. 表示されるダイアログで、[Restrict key] を選択します。

  4. [Restrictions] セクションで、[iOS apps] を選択し、1 つ以上のアプリ バンドル識別子を入力します。 例: com.example.hellomap
  5. [Save] をクリックします。

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

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

アプリに 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 キーを指定しているか確認してください。

詳細

Google Places API for iOS

プロジェクトで Google Places API for iOS を無料で使用できますが、この API は Google Maps Mobile SDK for Work ライセンスの対象ではありません。 つまり、Google Places API for iOS には、Google Maps Mobile SDK for Work ライセンスで購入した拡張サポートまたは SLA は適用されません。また、その使用は無料 API の利用規約に準拠し、Google Maps Mobile SDK for Work の割り当てにはカウントされません。

Google Places API for iOS の有効化に関する詳細については、Google の営業担当者にお問い合わせください。

帰属表示の要件

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

属性テキストは、GMSServices.openSourceLicenseInfo() を呼び出すことで入手できます。

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

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

  • Xcode 7.3 以降
  • iOS SDK 8.0 以降

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

バージョンの比較

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

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

ドキュメント

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