開始在 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 入門指南

sudo gem install cocoapods

為 Google Maps SDK for iOS 建立 Podfile,並使用它來安裝 API 與其相依項目:

  1. 如果您還沒有 Xcode 專案,請立即建立專案並將它儲存到您的本機電腦(如果您是 iOS 開發新手,請建立「單一檢視應用程式」。)
  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,以及那些 API 可能具有的任何相依性項目。

    pod install
  7. 關閉 Xcode,然後開啟 (按兩下) 您專案的 .xcworkspace 檔案以啟動 Xcode。之後,您必須使用 .xcworkspace 檔案來開啟該專案。

手動安裝

本指南顯示如何在 Xcode 中手動新增 GoogleMaps 架構到您的專案及設定您的建置設定。

  1. 下載 SDK 原始檔案:google-2.0.1
  2. 將原始檔案解除封裝。
  3. 啟動 Xcode,並開啟現有專案或建立新專案。如果您是 iOS 新手,請建立「單一檢視應用程式」,並且停用 [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.bundleResources 資料夾拖曳到您的專案。當出現提示時,請確認選取 [Copy items into destination group's folder]
  7. 從「Project Navigator」選取您的專案,並選擇應用程式的目標。
  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 金鑰,您可以使用該金鑰。重要:在專案的下拉式選單中,您必須選取訂購 Google Maps APIs Premium Plan 時,系統為您建立的專案。專案名稱將會以 Google Maps APIs for Business or Google Maps for Work or Google Maps 做為開頭。

取得金鑰

或者,您也可以依照這些步驟取得 API 金鑰:

  1. 前往 Google API Console
  2. 從專案的下拉式選單中,選取 Google Maps Premium 專案。*
  3. 按一下 [Continue]
  4. 憑證 頁面上,取得 API 金鑰
    注意:如果您擁有具有 iOS 限制的金鑰,您可以使用該金鑰。您可以將同一金鑰用於同一專案中您的任何 iOS 應用程式。
  5. 在顯示 API 金鑰的對話方塊中,選擇 [Restrict key] 以設定 API 金鑰上的 iOS 限制。
  6. [Restrictions] 區塊中,選擇 [iOS apps],然後輸入您應用程式的套件組合識別碼。例如:com.example.hellomap
  7. 按一下 [Save]

    您的新 iOS 限定 API 金鑰會出現在您專案的 API 金鑰清單中。API 金鑰是字元字串,類似於:

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

您也可以在 Google API Console 中查詢現有金鑰

如需有關使用 Google API Console 的詳細資訊,請參閱 API 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。如果您正在建立新應用程式,請先依照上面的安裝指示,然後建立一個新的單一檢視應用程式;並且停用 [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

執行您的應用程式 。您應該會看見一個單一標記位於澳洲雪梨地圖的中央。如果您看見了標記,但卻無法看見地圖,請確認您是否已提供 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 Maps/Google Earth API 服務條款規範。 Google Maps APIs Premium Plan 使用條款規範。

文件

Google Maps SDK for iOS 的相關資訊主要來自於我們網站上提供的開發人員文件與參考資料。