Place Details (最新)

您可以使用特定機構或景點的地點 ID,提出 Place Details (新版) 要求,以便取得更多相關詳細資料。Place Details (新版) 會傳回指定地點的更完整資訊,例如完整地址、電話號碼、使用者評分和評論。

取得地點 ID 的方法有很多種,例如:

Place Details (New) 要求

您可以呼叫 PlacesClient.fetchPlace(),並傳遞包含地點 ID欄位清單FetchPlaceRequest 物件,以及任何選用參數,以便要求地點詳細資料:

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

// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList("INSERT_PLACE_FIELDS_HERE");

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

// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);

Place Details (新版) 回應

Place Details (新版) 會以 Place 物件形式傳回資料,其中只包含您使用欄位清單要求的欄位。地點資料結果不可空白,因此系統只會傳回含有資料的地點結果 (例如,如果要求的地點沒有相片,結果中就不會顯示相片欄位)。

如要存取資料欄位,請呼叫對應的方法。舉例來說,如要存取地點名稱,請呼叫 getName()

必要參數

FetchPlaceRequest 的必要參數如下:

選用參數

FetchPlaceRequest 的選用參數如下:

  • 區域代碼

    用於格式化回應的區碼,指定為 兩個字元的 CLDR 代碼值。沒有預設值。

    如果回應中 Place.Field.FORMATTED_ADDRESS 欄位的國家/地區名稱與 regionCode 相符,Place.Field.FORMATTED_ADDRESS 就會省略國家/地區代碼。

    大多數 CLDR 代碼與 ISO 3166-1 代碼相同,但有一些例外情況。舉例來說,英國的 ccTLD 是「uk」(.co.uk),而 ISO 3166-1 代碼是「gb」(技術上是「大不列顛與北愛爾蘭聯合王國」實體)。這個參數可能會影響根據適用法律產生的結果。

    如要設定區域代碼參數,請在建構 FetchPlaceRequest 物件時呼叫 setRegionCode() 方法。

  • 工作階段符記

    工作階段符記是使用者產生的字串,可追蹤 Autocomplete (New) 呼叫的「工作階段」。Autocomplete (New) 會使用工作階段符記,將使用者自動完成搜尋的查詢和地點選取階段歸入不同的工作階段,以用於計費。系統會將工作階段符記傳遞至 Autocomplete (新版) 呼叫後的 Place Details (新版) 呼叫。詳情請參閱「工作階段符記」。

    如要設定工作階段權杖參數,請在建構 FetchPlaceRequest 物件時呼叫 setSessionToken() 方法。

Place Details 範例

以下範例會要求紐約市帝國大廈的 IDDISPLAY_NAMEFORMATTED_ADDRESS 欄位。

// Define a place ID.
final String placeId = "ChIJaXQRs6lZwokRY6EFpJnhNNE";

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

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

// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);