ios - 在 map 上查找城市或地区的多边形

标签 ios swift mapkit google-places-api

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

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

我可以在 ios 中使用任何 API 在 map 上查找整个区域吗?

最佳答案

Google 不提供此类 API,但您可以使用 OpenStreetMap 获取城市的 geojson 格式的多边形坐标.

您可以将响应转换为通过多个库在 map 上使用,例如 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()

关于ios - 在 map 上查找城市或地区的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54626317/

相关文章:

swift - 如何从 MapKit map 中删除国家和城市名称?

ios - MapKit CLLocationCoordinate2D 把我放在错误的位置

objective-c - 如何按固定百分比扩展 MKMapRect?

iphone - 如何从照片库加载照片并将其存储到应用程序项目中?

ios - 如何使用 swift-4 Promises then, done, catch 等 block

swift - 枚举变量的模式翻转

ios - UISearchController的UISearchBar在UITableView滚动时移位不正确并跳转

iphone - 是否可以在未安装 Xcode 的情况下在 Mac 上运行 iOS 模拟器?

ios - UIToolbarButton 上的 TapGestureRecognizer 不起作用

swift - 在带有 "as"向下转换的 Swift 中使用 UIPageViewController