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

Posted

技术标签:

【中文标题】在地图上查找城市或区域的多边形【英文标题】:Find polygon of City or region on Map 【发布时间】:2019-02-11 08:13:57 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在地图上查找城市或区域的多边形的主要内容,如果未能解决你的问题,请参考以下文章

D3:在 d3 中查找地理多边形的面积

使用高德地图绘制多边形区域

城市 Geojson 多边形数据库/库或 API

如何界定 ​​Voronoi 多边形的外部区域并与地图数据相交

在 R(邻居)中查找相邻的多边形

用C#代码写,ArcEngine开发,在加载的地图上绘制多边形后,导出绘制区域内的所有矢量要素(点线面)