地点详情(新)

请选择平台: Android iOS JavaScript 网络服务

您可以使用特定地点或地标的地点 ID 发出“地点详情(新)”请求,以获取有关该地点的更多详细信息。“地点详情”(新)会返回有关指定地点的更全面信息,例如完整地址、电话号码、用户评分和评价。

获取地点 ID 的方法有很多。您可以使用:

“地点详情(新)”请求

您可以通过调用 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 对象的形式返回数据,其中仅包含您使用字段列表请求的字段。地点数据结果不得为空,因此系统只会返回包含数据的地点结果(例如,如果所请求的地点没有照片,照片字段将不会显示在结果中)。

如需访问数据字段,请调用相应的方法。例如,如需访问地点名称,请调用 getName()

必需参数

FetchPlaceRequest 的必需参数如下:

  • 地点 ID

    一个文本标识符,用于唯一标识某个地点,从文本搜索(新)附近搜索(新)自动补全(新)返回。 如需详细了解地点 ID,请参阅地点 ID 概览

  • 字段列表

    请求地点时,您必须指定要返回哪些地点数据。为此,请传递 Place.Field 值列表,指定要返回的数据。响应中没有返回字段的默认列表。

    字段列表是一种良好的设计做法,可确保您不会请求不必要的数据,这有助于避免产生不必要的处理时间和结算费用。这是一个重要的考虑因素,因为它会影响每个请求的费用。如需了解详情,请参阅用量和结算

    指定以下一个或多个字段:

    • 以下字段会触发地点详情基本信息(仅 ID)SKU

      Place.Field.DISPLAY_NAME
      Place.Field.ID
      Place.Field.PHOTO_METADATAS
      Place.Field.RESOURCE_NAME
    • 以下字段会触发地点详情基本信息 SKU

      Place.Field.ADDRESS_COMPONENTS
      ADR_FORMAT_ADDRESS
      Place.Field.FORMATTED_ADDRESS
      Place.Field.LOCATION
      Place.Field.PLUS_CODE
      Place.Field.SHORT_FORMATTED_ADDRESS
      Place.Field.TYPES
      Place.Field.VIEWPORT
    • 以下字段会触发地点详情 Pro SKU

      Place.Field.ACCESSIBILITY_OPTIONS
      Place.Field.BUSINESS_STATUS
      Place.Field.GOOGLE_MAPS_URI
      Place.Field.ICON_BACKGROUND_COLOR
      Place.Field.ICON_MASK_URL
      Place.Field.PRIMARY_TYPE
      Place.Field.PRIMARY_TYPE_DISPLAY_NAME
      Place.Field.SUB_DESTINATIONS
      Place.Field.UTC_OFFSET
    • 以下字段会触发地点详情企业版 SKU

      Place.Field.CURRENT_OPENING_HOURS
      Place.Field.CURRENT_SECONDARY_OPENING_HOURS
      Place.Field.INTERNATIONAL_PHONE_NUMBER
      Place.Field.NATIONAL_PHONE_NUMBER
      Place.Field.OPENING_HOURS
      Place.Field.PRICE_LEVEL
      Place.Field.RATING
      Place.Field.SECONDARY_OPENING_HOURS
      Place.Field.USER_RATING_COUNT
      Place.Field.WEBSITE_URI
    • 以下字段会触发地点详情企业 Plus 版 SKU

      Place.Field.ALLOWS_DOGS
      Place.Field.CURBSIDE_PICKUP
      Place.Field.DELIVERY
      Place.Field.DINE_IN
      Place.Field.EDITORIAL_SUMMARY
      Place.Field.EV_CHARGE_OPTIONS
      Place.Field.FUEL_OPTIONS
      Place.Field.GOOD_FOR_CHILDREN
      Place.Field.GOOD_FOR_GROUPS
      Place.Field.GOOD_FOR_WATCHING_SPORTS
      Place.Field.LIVE_MUSIC
      Place.Field.MENU_FOR_CHILDREN
      Place.Field.OUTDOOR_SEATING
      Place.Field.PARKING_OPTIONS
      Place.Field.PAYMENT_OPTIONS
      Place.Field.RESERVABLE
      Place.Field.RESTROOM
      Place.Field.REVIEWS
      Place.Field.SERVES_BEER
      Place.Field.SERVES_BREAKFAST
      Place.Field.SERVES_BRUNCH
      Place.Field.SERVES_COCKTAILS
      Place.Field.SERVES_COFFEE
      Place.Field.SERVES_DESSERT
      Place.Field.SERVES_DINNER
      Place.Field.SERVES_LUNCH
      Place.Field.SERVES_VEGETARIAN_FOOD
      Place.Field.SERVES_WINE
      Place.Field.TAKEOUT

可选参数

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() 方法。

  • 会话令牌

    会话令牌是用户生成的字符串,用于将“自动补全(新)”调用作为“会话”进行跟踪。“自动补全”(新)使用会话令牌将用户自动补全搜索的查询和地点选择阶段归入不同的会话,以便进行结算。会话令牌会传递到紧随“自动补全(新)”调用之后的“地点详情(新)”调用中。如需了解详情,请参阅会话令牌

    如需设置会话令牌参数,请在构建 FetchPlaceRequest 对象时调用 setSessionToken() 方法。

地点详情示例

以下示例请求纽约市帝国大厦的 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);