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

时间:2019-02-11 08:13:58

标签: ios swift mapkit google-places-api

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

例如,如果用户搜索“美国纽约”,我想在地图上绘制仅覆盖纽约市的叠加层。

我可以在ios中使用任何API在地图上找到整个区域吗?

1 个答案:

答案 0 :(得分:2)

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()