使用地点服务和 Geocoding API 设置边界的数据驱动型样式

请选择平台: Android iOS JavaScript

您可以使用地点服务和 将 Geocoding API 与 Maps SDK for Android 搭配使用,以便搜索区域;以及 获取关于地点的更多信息。地点服务 和 Geocoding API 是强大且稳定的替代方案, 。如果您已经在使用地点 ID,则可以通过 边界的数据驱动型样式。

将地点服务和地理编码服务添加到 您可以通过以下方式使用 Maps SDK for Android 应用:

  • Places SDK for Android 是一个 Android 库,其中包含用于返回有关 。
  • Places API 可通过 HTTP 请求来返回有关地点的信息。
  • Geocoder 类 可以根据用户输入动态地进行地理编码和反向地理编码。
  • Geocoding API 可用于对静态的已知地址进行地理编码。

使用地点服务

使用新版文本搜索查找地点 ID

您可以使用文本搜索(新) Places API 中的 REST API,用于获取包含区域的地点 ID 通过在字段掩码中指定 places.id 来显示数据。使用 通过文本搜索(新)请求地点 ID 只会引发 。了解详情

例如,要获取加利福尼亚州特立尼达市的地点 ID,您可以使用以下代码 API 调用:

curl -X POST -d '{
  "textQuery" : "Trinidad, CA"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.id' \
'https://places.googleapis.com/v1/places:searchText'

使用地点自动补全功能查找区域

地点自动补全功能 服务提供了一种便捷的方式, 用户搜索区域要将地点自动补全服务配置为 只返回地区,请使用 AutocompleteSupportFragment.setTypesFilter(List) 将类型过滤条件设置为 PlaceTypes.REGIONS

获取某个区域的地点详情

地点详情 服务返回区域的数据时, 非常有用。例如,您可以:

  • 根据地点名称搜索边界地点 ID。
  • 获取视口以缩放至相应边界。
  • 获取边界的地图项类型(例如 locality)。
  • 获取采用相应格式的地址,该地址将解析为“地点名称, 省/自治区/直辖市, 国家/地区”在 美国区域(例如“奥塔姆瓦, IA, USA”)。
  • 获取照片等其他实用数据。

使用 Geocoding API

Geocoding API 可让您将 将地址转换为经纬度坐标以及地点 ID,或者将地址转换为 纬度和经度坐标或地点 ID 传递到地址中。在设置边界的数据驱动型样式时,您还可以搭配采用以下措施:

  • 使用地理编码服务获取某个区域的视口。
  • 在地理编码调用中应用组成部分过滤,以获取 1 至 4 级行政区、市行政区或邮政编码对应的地点 ID。
  • 使用反向地理编码按纬度和经度查找地点 ID 坐标,甚至可以返回特定区域中所有组成部分的地点 ID 位置。

以下示例使用地址(经过网址转义的地址)向 Geocoding API:

https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY

您可以使用反向地理编码 来查找地点 ID。以下示例地理编码 服务函数会返回 指定的经纬度坐标:

https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY

结合使用反向地理编码和组成部分过滤,以获取地址组成部分 指定位置有以下一种或多种类型的 ID:

  • administrativeArea
  • country
  • locality
  • postalCode

下例中的函数说明了如何使用地理编码服务,通过反向地理编码添加组成部分限制,从而获取指定位置处仅限 locality 类型的所有地址组成部分:

https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY