Edited at

Google Maps SDK for iOSの導入手順

More than 5 years have passed since last update.

アプリ内で Google Maps を使用するための SDK、"Google Maps SDK for iOS" の導入手順です。

公式情報は Google Developers にあります。

サンプル


1. API Keyを取得



  • Google APIs Console の Services タブで、Google Maps SDK for iOS を ON にする。

  • API Access タブで、"Create new iOS key" ボタンをクリック。ポップアップで出てくるウィンドウに、Google Maps SDK for iOSを使用するアプリのBundle identifierを入力する。


2. SDK をプロジェクトに追加


  • GoogleMaps SDK for iOS をダウンロード

    Getting the Google Maps SDK for iOS


  • GoogleMaps.framework をプロジェクトに追加する


  • Build Phasesタブの、Copy Bundle Resourcesに、GoogleMaps.framework フォルダ配下にある GoogleMaps.bundle を追加する



3. 必要なフレームワークをプロジェクトに追加


  • AVFoundation.framework

  • CoreData.framework

  • CoreLocation.framework

  • CoreText.framework

  • GLKit.framework

  • ImageIO.framework

  • libicucore.dylib

  • libstdc++.dylib

  • libz.dylib

  • OpenGLES.framework

  • QuartzCore.framework

  • SystemConfiguration.framework


4. ビルド設定


  • Architectures を armv7 にする(もしくは Valid Architectures から armv7s を外す)

  • Other Linker Flags に -ObjC を追加


5. Info.plistの編集

Bundle identifier欄に、手順1でAPI Key取得時に入力したBundle identifierを入力する。


6. AppDelegate で初期化


  • ヘッダをインポート

#import <GoogleMaps/GoogleMaps.h>



  • application:didFinishLaunchingWithOptions: で、provideAPIKey:メソッドをコール(引数には手順1で取得したAPI Keyを渡す)

[GMSServices provideAPIKey:@"YOUR_API_KEY"];


7. 地図を表示する ViewController の実装


  • ヘッダをインポート

#import <GoogleMaps/GoogleMaps.h>


  • プロパティ追加

@property (nonatomic, weak) GMSMapView *mapView;


  • GMSMapViewの初期化と諸々の設定

- (void)loadView {

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
longitude:151.2086
zoom:6];
self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
self.mapView.myLocationEnabled = YES;
self.view = self.mapView;

GMSMarkerOptions *options = [[GMSMarkerOptions alloc] init];
options.position = CLLocationCoordinate2DMake(-33.8683, 151.2086);
options.title = @"Sydney";
options.snippet = @"Australia";

[self.mapView addMarkerWithOptions:options];
}


  • 地図の描画を開始する

- (void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:animated];

[self.mapView startRendering];
}


  • 地図の描画を停止する

- (void)viewWillDisappear:(BOOL)animated {

[self.mapView stopRendering];

[super viewWillDisappear:animated];
}