Help us understand the problem. What is going on with this article?

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];
}
shu223
フリーランスiOSエンジニア 著書:『iOS×BLE Core Bluetooth プログラミング』『Metal入門』『実践ARKit』『Depth in Depth』『iOSアプリ開発 達人のレシピ100』他 GitHubの累計スター数24,000超
http://shu223.hatenablog.com/
engineerlife
技術力をベースに人生を謳歌する人たちのコミュニティです。
https://community.camp-fire.jp/projects/view/280040
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away