以上で完了です。

開発を始めるには、デベロッパー ドキュメント をご覧下さい。

Google Places API for iOS をアクティベートする

まず初めに Google Developers Console で次の作業を行います。

  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 プレイスのデータベースに追加される可能性が高まります。
  • 必須:プレイスの位置を指定する coordinateCLLocationCoordinate2D)オブジェクト。
  • 任意:プレイスの phoneNumber。この電話番号は国際形式になります。国際形式では、「+」記号と国コードが先頭に付きます。たとえば、Google の米国、マウンテン ビュー オフィスの電話番号の国際形式は +1 650-253-0000 です。プレイスに整形式の電話番号が含まれていると、モデレーション プロセスで承認され Google プレイスのデータベースに追加される可能性が高まります。注: phoneNumberwebsite のいずれか、または両方を指定する必要があります。
  • 必須:このプレイスの特性を示すプレイスタイプの一覧。表 1 のタイプのみが有効です。
  • 任意:会社のホームページなど、このプレイスの公式ウェブサイトのアドレスが含まれる website の URI。プレイスに整形式のウェブサイト アドレスが含まれていると、モデレーション プロセスで承認され Google プレイスのデータベースに追加される可能性が高まります。注: phoneNumberwebsite のいずれか、または両方を指定する必要があります。

結果を処理するためのコールバック メソッドも含めます。API は指定されたコールバック メソッドを呼び出し、新規に作成されたプレイス用の GMSPlace オブジェクトを渡します。

以下のコードサンプルでは、オーストラリアのピルモントにある '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 が付けられ、その後アプリでその ID を使用してプレイスの詳細を取得できます。追加されたプレイスは、アプリで開始する get-current-place のリクエストの結果にすぐに表示され、アプリで表示される Place Picker でも使用可能になります。スコーピングは API キーの生成に使用されたプロジェクト ID によって決められます。

新たに追加されたプレイスは、モデレーション キューに登録され、Google プレイスのデータベースへの追加の審査に入ります。モデレーション プロセスで承認されなかったプレイスも、送信元のアプリのプレイス ID 経由で引き続き取得できますが、get-current-place リクエストの結果、API Picker、その他の API メソッドには表示されなくなります。モデレーション プロセスで承認されたプレイスは、すべてのアプリと Google マップ上に表示されます。

複数のプレイス ID とプレイス ID スコーピングの扱い

1 つのプレイス ID で参照できるのは 1 つのプレイスのみですが、1 つのプレイスが複数のプレイス ID を持つこともあります。1 つのプレイスで複数の ID を扱うケースとして最も多いのは、最初に自身のアプリケーションのみにスコープを限定したプレイスを追加した後で、そのプレイスが Google 全体をスコープする場合です。

プレイスを追加すると、追加した新しいプレイスのプレイス ID はすぐに受け取ることができます。このプレイス ID のスコープは、自分のアプリのみになります。その後、このプレイスは、モデレーション キューに登録され、Google プレイスのデータベースへの追加のための承認を待ちます。承認されると、プレイスは新しいプレイス ID を受け取り、すべてのアプリや Google マップで利用できるようになります。

プレイス ID を指定してプレイスをリクエストする場合、そのプレイスが変わらず存在している限り、レスポンスで常に同じ場所を受け取ると考えられます。

ただし、レスポンスにはリクエストで使用したプレイス ID と異なるプレイス ID が含まれることがあります。詳細については、プレイス ID の概要をご覧ください。

フィードバックを送信...