您已全部設定完成!

若要開始開發,請參閱我們的開發人員文件

啟用 Google Places API for iOS

為協助您開始,我們將先引導您使用「Google 開發人員控制台」來執行一些動作:

  1. 建立或選擇專案
  2. 啟用 Google Places API for iOS
  3. 建立適當的金鑰
繼續

地點新增

您可以使用 Google Places API for iOS 新增地點到「Google 地方資訊」資料庫。新增的地點在一小段時間之後就可以在您的應用程式中看見,並且會新增到仲裁佇列,通過仲裁後即可納入「Google 地方資訊」資料庫和「Google 地圖」中。

如果要提高地點通過仲裁程序以新增到「Google 地方資訊」資料庫的機率,新增要求應該儘可能包括詳細的資訊。地址、電話號碼和網站尤其重要。

  1. 新增地點
  2. 處理多個地點 ID 和地點 ID 範圍

新增地點

建立 GMSUserAddedPlace,然後將它傳遞到 GMSPlacesClient addPlace:callback:

建立 GMSUserAddedPlace 時,請包括下列資訊:

  • 必要:商家、搜尋點或其他地點的完整文字 name。上限為 255 個字元。
  • 必要:人類看得懂的地點 address。如果地點具有格式正確、人類看得懂的地址,就比較可能通過仲裁程序而被納入「Google 地方資訊」資料庫中。
  • 必要:指定地點位置的 coordinate (CLLocationCoordinate2D) 物件。
  • 選擇性:地點的 phoneNumber。這是國際格式的電話號碼。國際格式包括國碼,而且前面加上加號 (+)。例如,Google 的美國山景辦公室國際電話號碼是 +1 650-253-0000。如果地點具有格式正確的電話號碼,就比較可能通過仲裁程序而被納入「Google 地方資訊」資料庫中。注意:必須提供 phoneNumberwebsite 任一者,或者同時提供兩者。
  • 必要:描述此地點特徵的地點類型清單。只有表 1 類型是有效的。
  • 選擇性:包含此地點之權威網站 (例如商家的首頁) 位址的 website URI。如果地點具有格式正確的網站位址,就比較可能通過仲裁程序而被納入「Google 地方資訊」資料庫中。注意:必須提供 phoneNumberwebsite 任一者,或者同時提供兩者。

此外,請一併包括用於處理結果的回呼方法。API 會呼叫指定的回呼方法,傳入新建立地點所產生的結果 GMSPlace 物件。

下列程式碼範例會新增位於澳大利亞境內 Pyrmont 且名為 'Google Shoes!' 的地點。

Swift

let userAddedPlace = GMSUserAddedPlace()
userAddedPlace.name = "Google Shoes!"
userAddedPlace.address = "48 Pirrama Road, Pyrmont, NSW 2009, Australia"
userAddedPlace.coordinate = CLLocationCoordinate2DMake(-33.8669710, 151.1958750)
userAddedPlace.phoneNumber = "(02) 9374 4000"
userAddedPlace.website = "http://www.google.com.au/"
userAddedPlace.types = ["shoe_store"]
placesClient.add(userAddedPlace, callback: { (place, error) -> Void in
  if let error = error {
    print("Add Place error: \(error.localizedDescription)")
    return
  }

  if let place = place {
    print("Added place with placeID \(place.placeID)")
    print("Added Place name \(place.name)")
    print("Added Place address \(place.formattedAddress)")
  }
})

Objective-C

GMSUserAddedPlace *userAddedPlace = [[GMSUserAddedPlace alloc] init];
userAddedPlace.name = @"Google Shoes!";
userAddedPlace.address = @"48 Pirrama Road, Pyrmont, NSW 2009, Australia";
userAddedPlace.coordinate = CLLocationCoordinate2DMake(-33.8669710, 151.1958750);
userAddedPlace.phoneNumber = @"(02) 9374 4000";
userAddedPlace.website = @"http://www.google.com.au/";
userAddedPlace.types = @[@"shoe_store"];

[_placesClient addPlace:userAddedPlace callback:^(GMSPlace *place, NSError *error) {
  if (error != nil) {
    NSLog(@"User Added Place error %@", [error localizedDescription]);
    return;
  }

  NSLog(@"Added place with placeID %@", place.placeID);
  NSLog(@"Added Place name %@", place.name);
  NSLog(@"Added Place address %@", place.formattedAddress);
}];

產生的 GMSPlace 物件會有唯一的地點 ID,您的應用程式可以從該處開始,擷取地點詳細資料。新增的地點在一小段時間之後,在您應用程式起始的 get-current-place 要求之結果,以及在您應用程式顯示的地點挑選器中就能看見。範圍則取決於用來產生您 API 金鑰的專案 ID。

新增的地點會進入仲裁佇列,被考慮納入「Google 地方資訊」資料庫。尚未獲得仲裁程序接受的地點將可繼續在提交它們的應用程式中透過地點 ID 擷取,但是不會再出現在使用 get-current-place 要求、API 挑選器或任何其他 API 方法的結果中。通過仲裁的地點才會對所有應用程式顯示,並且出現在「Google 地圖」上。

處理多個地點 ID 和地點 ID 範圍

每個地點 ID 只能參照一個地點,但是一個地點可以有多個地點 ID。為一個地點處理多個 ID 最常見的案例是,您一開始新增了只限於您應用程式範圍的地點,然後收到整個 Google 範圍的地點。

當您新增地點時,您會立即收到新地點的地點 ID。此地點 ID 僅限於您的應用程式範圍。該地點接著會進入仲裁佇列,等待核准後納入「Google 地方資訊」資料庫。如果核准,則此地點會收到新的地點 ID,供所有應用程式以及在「Google 地圖」上使用。

當您透過指定地點 ID 以要求地點時,您可以確信一律會在回應中收到相同的地點 (只要該地點存在)。

然而請注意,回應包含的地點 ID 可能會與您要求中的不同。如需詳細資訊,請參閱地點 ID 總覽

傳送您對下列選項的寶貴意見...

這個網頁
location_on
Google Places API for iOS