使用 Places API 和地理编码服务来设置边界的数据驱动型样式

请选择平台: iOS JavaScript

您可以将 Places SDK for iOS 和 Geocoding API 与 Maps SDK for iOS 搭配使用,以搜索区域并获取有关地点的更多信息。Places SDK for iOS 和 Geocoding API 是强大且稳定的替代方案,可以用来获取地点 ID。如果您已经在使用地点 ID,则可以重复使用这些 ID 来设置边界的数据驱动型样式。

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

  • Places SDK for iOS 可通过 HTTP 请求返回有关地点的信息。
  • CLGeocoder 类可以根据用户输入动态地进行地理编码和反向地理编码。
  • Geocoding API 可用于对静态的已知地址进行地理编码。

使用 Places API

  • Places API 文本搜索会根据一个字符串(例如,“北京烤鸭”“南京附近的鞋店”或“长安街 8 号”)返回一组地点的相关信息。该服务会返回一个与文本字符串和任何位置偏向设置相匹配的地点列表。

  • 地点自动补全服务提供了一种便捷的方式,让您的用户能够搜索区域。如需显示指定区域内的结果,请在 GMSAutocompleteFilter 上设置 locationRestriction

获取某个区域的地点详情

  • 区域的地点详情数据同样有效。例如,您可以:

    • 根据地点名称搜索边界地点 ID。
    • 获取视口以缩放至相应边界。
    • 获取边界的地图项类型(例如市行政区)。
    • 获取采用特定格式的地址,在美国地区会解析为“地点名称,州,国家”(例如“柯克兰,华盛顿州,美国”)。
    • 获取其他实用数据,例如照片。

使用 Geocoding API

  • 借助 Geocoding API,您可以将地址、经纬度坐标或地点 ID 转换为地理位置坐标,反之亦然。以下用法可与边界的数据驱动型样式完美搭配:

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

    以下示例使用通过网址转义的地址向 Geocoding API 发出请求:

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

    您可以使用反向地理编码查找地点 ID。下例中的地理编码服务函数会返回指定纬度和经度坐标处所有地址组成部分的地点 ID:

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

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

    • administrativeArea
    • country
    • locality
    • postalCode
    • schoolDistrict

    下例展示了如何使用地理编码服务,通过反向地理编码添加组成部分限制,以检索 locality 类型的指定位置处的所有地址组成部分:

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