MapBox - 如何获取建筑点数 Shape/Edge

MapBox - How the get Points of Building Shape/Edge

我想使用 mapbox 获取建筑物形状的点。是否可以? 例如,我想获得下图中建筑物的红点:

我打算使用 Swift,但也许可以使用 mapbox rest API.

公开的一些 end-point 来检索这些类型的数据

不是以编程方式您可以执行以下操作: 基于overpass API you can take use of the overpass API turbo engine。使用该引擎,可以从 OpenStreetMap 数据库中提取所有数据,包括建筑物的几何形状及其坐标。如果您想查询特定边界框中的所有建筑物,只需执行以下操作:

 (
  way[building]({{bbox}});
  >;

 );
  out skel; 

这是引擎中的 EXAMPLE

如果您想根据建筑物设置搜索条件,您可能需要执行以下操作:

(
  way[building][key=value]({{bbox}});
  >;

 );
  out skel;

这是一个 EXAMPLE,用于在给定的边界框中获取建筑物,名称为 "Istituto Professionale Servizi Commerciale"

以编程方式 只需使用您选择的编程语言执行 POST 请求。示例 URL 可能如下所示,其中坐标是请求的边界框:

https://www.overpass-api.de/api/interpreter?data=(way[building][name~%22Istituto%20Professionale%20Servizi%20Commerciale%22](41.89217881581378,12.488332986831665,41.89511780763163,12.492608428001404);%3E;);out;

returned 结果默认为 XML

如果你想 return 你的结果在 geoJSON 中,只需执行:

https://www.overpass-api.de/api/interpreter?data=[out:json];(way[building][name~%22Istituto%20Professionale%20Servizi%20Commerciale%22](41.89217881581378,12.488332986831665,41.89511780763163,12.492608428001404);%3E;);out;

访问每个多边形的“elements”键将为您提供地理坐标(纬度、经度)中多边形角边的属性。