以上で完了です。

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

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

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

  1. プロジェクトを作成または選択する
  2. Google Places API for Android をアクティベートする
  3. 適切なキーを作成する
続ける

プレイス ID と詳細

Google Places API for Android では、プレイスの名前、住所、緯度と経度の座標で指定した地理的位置、プレイスタイプ(ナイトクラブ、ペットショップ、美術館など)、その他プレイスに関するさまざま詳細情報をアプリに提供できます。特定のプレイスの情報にアクセスするには、プレイスを一意に識別する固定識別子であるプレイス ID を使用できます。

  1. プレイス詳細
  2. ID でプレイスを取得する
  3. アプリに属性を表示する
  4. プレイス ID について

プレイス詳細

Place オブジェクトは、特定のプレイスに関する情報を提供します。Place オブジェクトは、次の方法で取得できます。

次のメソッドを使用して、Place からデータを取得します。

  • getName() - プレイスの名前。
  • getAddress() - 人が読み取ることのできる形式でのプレイスの住所。
  • getID() - プレイスのテキスト ID。プレイス ID については、このページの続きをご覧ください。
  • getPhoneNumber() - プレイスの電話番号。
  • getWebsiteUri() - プレイスのウェブサイトの URI(わかっている場合)。これは、プレイスに関連付けられている企業や他の団体が運営するウェブサイトになります。ウェブサイトが不明の場合は null が返されます。
  • getLatLng() - 緯度と経度の座標で指定されたプレイスの地理的位置。
  • getViewport() - LatLngBounds オブジェクトとして返されるビューポイント。プレイスをマップ上に表示する場合に便利です。プレイスの規模が不明の場合は null が返されます。
  • getLocale() - 名前と住所がローカライズされているロケール。
  • getPlaceTypes() - このプレイスの特性を示すプレイスタイプの一覧。利用可能なプレイスタイプの一覧については、Place インターフェースのドキュメントをご覧ください。
  • getPriceLevel() - このプレイスの価格レベル。0(最安値)~4(最高値)の整数で返されます。
  • getRating() - プレイスの集計評価。ユーザー レビューの合計に基づいて、1.0~5.0 の値を持つフロートとして返されます。

簡単な例:

final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

ID でプレイスを取得する

プレイス ID は、プレイスを一意に識別するテキスト表記の ID です。Google Places API for Android では、Place.getId() を呼び出してプレイスの ID を取得できます。プレイス オートコンプリート リクエスト サービスでも、指定した検索クエリやフィルタに一致する各プレイスのプレイス ID が返されます。プレイス ID を保存して、後で Place オブジェクトを再取得する際に使用できます。

ID でプレイスを取得するには、GeoDataApi.getPlaceById を呼び出して、1 つ以上のプレイス ID を渡します。

API が PendingResultPlaceBuffer を返します。PlaceBuffer には指定したプレイス ID に一致する Place オブジェクトの一覧が含まれています。

Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId)
    .setResultCallback(new ResultCallback<PlaceBuffer>() {
  @Override
  public void onResult(PlaceBuffer places) {
    if (places.getStatus().isSuccess() && places.getCount() > 0) {
      final Place myPlace = places.get(0);
      Log.i(TAG, "Place found: " + myPlace.getName());
    } else {
      Log.e(TAG, "Place not found");
    }
    places.release();
  }
});

アプリに属性を表示する

アプリに GeoDataApi.getPlaceById から取得した情報を表示する場合、アプリには属性も表示する必要があります。詳細については、属性をご覧ください。

プレイス ID について

Google Places API for Android で使用されるプレイス ID は、Google Places API Web Service で使用される ID と同じです。

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

1 つのプレイスが新たなプレイス ID を受け取る状況は他にもあります。たとえば、お店やサービスが新しい場所に移動するケースが考えられます。

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

詳細については、プレイス ID の概要をご覧ください。

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