Place Details

プラットフォームを選択: Android iOS JavaScript ウェブサービス

Places SDK for Android は、場所の名前と住所、緯度と経度の座標で指定された地理的位置、場所のタイプ(ナイトクラブ、ペットショップ、博物館など)など、場所に関する豊富な情報をアプリに提供します。特定の場所に関する情報にアクセスするには、場所 ID を使用できます。これは、場所を一意に識別する固定 ID です。

場所の詳細

Place オブジェクトは、特定の場所に関する情報を提供します。Place オブジェクトを保持する方法は次のとおりです。

場所をリクエストする際は、返す場所データの種類を指定する必要があります。これを行うには、List<Place.Field> を渡し、返すデータ型を指定します。これは各リクエストの費用に影響するため、重要な考慮事項です。プレイスデータの結果は空にできないため、データを含むプレイスの結果のみが返されます(たとえば、リクエストされたプレイスに写真がない場合、photos フィールドは結果に表示されません)。次のフィールドを 1 つ以上指定できます。

  • Place.Field.ADDRESS
  • Place.Field.ADDRESS_COMPONENTS
  • Place.Field.BUSINESS_STATUS
  • Place.Field.ID
  • Place.Field.LAT_LNG
  • Place.Field.NAME
  • Place.Field.OPENING_HOURS
  • Place.Field.PHONE_NUMBER
  • Place.Field.PHOTO_METADATAS
  • Place.Field.PLUS_CODE
  • Place.Field.PRICE_LEVEL
  • Place.Field.RATING
  • Place.Field.TYPES
  • Place.Field.USER_RATINGS_TOTAL
  • Place.Field.ICON_URL
  • Place.Field.ICON_BACKGROUND_COLOR
  • Place.Field.VIEWPORT
  • Place.Field.UTC_OFFSET
  • Place.Field.WEBSITE_URI

詳しくは、場所のフィールドの概要をご覧ください。場所のデータのリクエストに対する課金方法については、使用量と課金をご覧ください。

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

  • getAddress() - 人が読める形式の場所の住所です。
  • getAddressComponents() - この場所の住所コンポーネントの List。これらのコンポーネントは、場所の住所に関する構造化された情報を抽出すること(たとえば、場所がある都市の検索)を目的として提供されています。これらのコンポーネントは、住所のフォーマットに使用せず、ローカライズされた住所を提供する getAddress() を呼び出してください。
  • getBusinessStatus() - ビジネスのオペレーション ステータス(ビジネスの場合)。OPERATIONALCLOSED_TEMPORARILYCLOSED PERMANENTLY のいずれかの値を含めることができます。
  • getAttributions() - 場所のデータを使用する場合にユーザーに提示する必要がある属性。
  • getID() - 場所のテキスト表記の ID。場所 ID について詳しくは、このページの後の部分をご覧ください。
  • getLatLng() - 場所の地理的位置(緯度と経度の座標で指定)。
  • getName() - 場所の名前。
  • getOpeningHours() - 場所の OpeningHours です。OpeningHours.getWeekdayText() を呼び出して、曜日の開始時刻と終了時刻を表す文字列のリストを返します。OpeningHours.getPeriods() を呼び出して、period オブジェクトのリストを返します。このリストには、getWeekdayText() によって提供されるデータに相当する詳細情報が含まれます。注: 場所が常に営業している場合、期間は日曜日の深夜 0 時で表され、closeEvent は null です。
  • getPhoneNumber() - 場所の電話番号。
  • getPhotoMetadatas() - 場所に関連付けられた写真に関連付けられたメタデータ(ビットマップ画像を含む)。
  • getPlusCode() - このプレイスの PlusCode ロケーション。
  • getPriceLevel() - この場所の価格レベル。0(最低)~ 4(最も高い)の範囲で整数として返されます。
  • getRating() – 集計されたユーザー レビューに基づく、1.0 ~ 5.0 の値を持つ浮動小数点として返される場所の評価。
  • getTypes() - この場所の特徴を表すタイプタイプのリスト。使用可能な場所のタイプのリストについては、Place インターフェースのドキュメントをご覧ください。
  • getUserRatingsTotal() - このプレイスのユーザー評価の合計数。
  • getIconUrl() - 場所のタイプを表す黒いアイコンマスクの URL。
  • getIconBackgroundColor - 場所タイプのアイコンの背景色です。
  • getUtcOffsetMinutes() - UTC オフセット(分)。
  • getViewport() - LatLngBounds オブジェクトとして返されるビューポート。地図に場所を表示する際に便利です。場所のサイズが不明な場合、null が返されることがあります。
  • getWebsiteUri() - 場所のウェブサイトの URI(既知の場合)。場所に関連付けられたビジネスまたはその他の事業体が管理しているウェブサイトです。ウェブサイトが不明の場合は null が返されます。
  • isOpen() - 場所が現在営業中かどうかを示すブール値。時間を指定しない場合のデフォルトは、isOpen は、Place.Field.UTC_OFFSETPlace.Field.OPENING_HOURS の両方が利用可能な場合にのみ返されます。正確な結果を得るには、元の場所のリクエストで Place.Field.BUSINESS_STATUS フィールドと Place.Field.UTC_OFFSET フィールドをリクエストしてください。リクエストがない場合、ビジネスは営業中であるとみなされます。isOpen と Place Details を併用する方法については、こちらの動画をご覧ください。

簡単な例:

Java


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

      

Kotlin


val name = place.name
val address = place.address
val location = place.latLng

      

ID でプレイスを取得する

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

ID で場所を取得するには、PlacesClient.fetchPlace() を呼び出して、FetchPlaceRequest を渡します。

API が TaskFetchPlaceResponse を返します。FetchPlaceResponse には、指定された場所 ID に一致する Place オブジェクトが格納されます。

次のコード例では、fetchPlace() を呼び出して、指定された場所の詳細を取得します。

Java


// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        final ApiException apiException = (ApiException) exception;
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

Kotlin


// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify the fields to return.
val placeFields = listOf(Place.Field.ID, Place.Field.NAME)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place
        Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

アプリに属性を表示する

アプリで場所情報を表示する場合は、属性も表示する必要があります。アトリビューションに関するドキュメントをご覧ください。

プレイス ID について

Places SDK for Android で使用される場所 ID は、Places API で使用される ID と同じです。各場所 ID で参照できる場所は 1 つだけですが、1 つの場所が複数の場所 ID を持つことができます。場所が新しいプレイス ID を取得するケースは他にもあります。これは、お店やサービスが新しい場所に移転する場合などに発生することがあります。

場所 ID を指定して場所をリクエストした場合、レスポンスで常に同じ場所を受け取ることができる(それでも場所が存在する場合)ため、ただし、レスポンスには、リクエストとは異なる場所 ID が含まれていることがあります。

詳しくは、場所 ID の概要をご覧ください。