使用 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。
    • 获取视口以缩放至相应边界。
    • 获取边界的地图项类型(例如市行政区)。
    • 获取采用特定格式的地址,在美国区域的地址会解析为“地点名称, 州, 国家”(例如“Kirkland, WA, USA”)。
    • 获取照片等其他实用数据。

使用 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