您可以将 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 Text Search 可以根据一个字符串(例如,“北京烤鸭”“南京附近的鞋店”或“长安街 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