Place Details (最新)

您可以使用特定建築物或搜尋點的地點 ID,並提出 Place Details (新) 要求,藉此要求更多詳細資料。Place Details (新版) 會傳回有關地點的詳盡資訊,例如完整地址、電話號碼、使用者評分和評論。

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

Place Details (新) 要求

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

// 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 (New) 會以 Place 物件的形式傳回資料,其中只包含您使用欄位清單要求的欄位。地點資料結果不可為空白,因此只會傳回包含資料的地點結果 (例如,如果要求的地點沒有相片,結果中就不會顯示相片欄位)。

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

必要參數

FetchPlaceRequest 的必要參數如下:

自選參數

FetchPlaceRequest 的選用參數如下:

  • 區域代碼

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

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

    大多數 CLDR 代碼與 ISO 3166-1 代碼相同,只有少數例外。舉例來說,英國的 ccTLD 是「uk」(.co.uk),而 ISO 3166-1 代碼卻是「gb」(正式的國名是「大不列顛暨北愛爾蘭聯合王國」)。根據適用法律,這個參數可能會影響結果。

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

  • 工作階段符記

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

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

Place Details 範例

以下範例針對紐約市帝國大廈,要求 IDNAMEADDRESS 欄位。

// 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.NAME, Place.Field.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);