在地图上查找城市或地区的多边形

Find polygon of City or region on Map

我想在城市或用户在地图上搜索过的区域周围绘制边界。我正在使用 Google Place API 来查找位置的纬度和经度。但我也想要城市或地区的边界。所以我可以在那个区域周围画一个多边形来显示。

例如,如果用户搜索 "New York, USA",我想在地图上绘制仅覆盖纽约市的叠加层。

是否有任何 API 可以在 ios 中用于在地图上找到整个区域?

Google 不提供这样的 API,但您可以使用 OpenStreetMap.

获取城市的 geojson 格式的多边形坐标

您可以将响应转换为通过 GEOSwift 等多个库在地图上使用。

示例:

https://nominatim.openstreetmap.org/search.php?q=New+York&polygon_geojson=1&format=json

let url = URL(string: "https://nominatim.openstreetmap.org/search.php?q=New+York&polygon_geojson=1&format=json")!

let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
  guard let data = data else { return }
  print(String(data: data, encoding: .utf8)!) // Here convert the data to show on map
}

task.resume()