您可以请求获取关于特定场所或地点的更多详细信息。 关注度 ID 和 “地点详情”(新)请求。 “地点详情(新)”会返回更全面的信息 有关指定地点的信息,例如其完整地址、电话号码 数字、用户评分和评价。
您可以通过多种方式获取地点 ID。您可以使用:
“地点详情(新)”请求
您可以通过调用
PlacesClient.fetchPlace()
并传递一个
FetchPlaceRequest
对象包含地点 ID 和字段列表,以及
作为任何可选参数:
// 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
对象,该对象仅包含您使用 字段请求的字段
列表。地点数据结果不得为空,因此只能提供地点结果
(例如,如果请求的地点没有照片,
photos 字段不会在结果中显示)。
要访问数据字段,请调用
方法。
例如,如需访问地点名称,请调用 getName()
。
必需参数
使用
FetchPlaceRequest
分别是:
-
地点 ID
唯一标识地点的文本标识符,从 文本搜索(新)、 附近搜索(新),或 自动补全(新)。 如需了解有关地点 ID 的详细信息,请参阅 地点 ID 概览。
-
字段列表
请求地点时,您必须指定要返回的地点数据。接收者 为此,请传递
Place.Field
值列表 并指定要返回的数据没有 返回的字段。字段列表是一种很好的设计做法,可确保您不会为 不必要的数据,这有助于避免不必要的处理时间和 这个清单是一项重要考虑因素 因为它会影响每个请求的成本。如需了解详情,请参阅 用法 和结算。
指定以下一个或多个字段:
以下字段会触发地点详情(仅 ID)SKU:
Place.Field.ID
、Place.Field.NAME
、Place.Field.PHOTO_METADATAS
以下字段会触发地点详情(仅限位置)SKU:
Place.Field.ADDRESS_COMPONENTS
,Place.Field.ADDRESS
,Place.Field.LAT_LNG
,Place.Field.PLUS_CODE
,Place.Field.TYPES
,Place.Field.VIEWPORT
以下字段会触发地点详情(基本)SKU:
Place.Field.BUSINESS_STATUS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.UTC_OFFSET
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
以下字段会触发地点详情(高级)SKU:
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.SECONDARY_OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.OPENING_HOURS
,Place.Field.USER_RATINGS_TOTAL
,Place.Field.WEBSITE_URI
以下字段会触发地点详情(首选)SKU::
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.RESERVABLE
,Place.Field.REVIEWS
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
可选参数
FetchPlaceRequest
分别是:
区域代码
用于设置响应格式的地区代码,指定为 两个字符的 CLDR 代码值。没有默认值。
如果响应中
Place.Field.ADDRESS
字段的国家/地区名称与regionCode
,则Place.Field.ADDRESS
中省略了国家/地区代码。大多数 CLDR 代码与 ISO 3166-1 代码相同, 但有一些值得注意的例外情况。例如,英国的 ccTLD 为 "uk"(.co.uk),而其 ISO 3166-1 代码为“gb”(从技术层面来讲, “大不列颠及北爱尔兰联合王国”)。 根据适用法律,该参数可能会影响结果。
如需设置地区代码参数,请在构建
FetchPlaceRequest
对象时调用setRegionCode()
方法。-
会话令牌
会话令牌是用户生成的字符串,用于跟踪 将“自动补全(新)”调用作为“会话”调用。自动补全(新)会使用会话令牌 将用户自动补全搜索的查询和地点选择阶段分组到一个单独的会话中 用于结算目的会话令牌会传递到地点详情(新) 跟随“自动补全(新)”调用的调用。如需了解详情,请参阅 会话令牌。
如需设置会话令牌参数,请在构建
FetchPlaceRequest
对象时调用setSessionToken()
方法。
地点详情示例
以下示例请求了 ID
、NAME
和 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.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);