MapBox - 如何获得建筑形状/边缘的点

时间:2016-10-23 20:16:56

标签: rest mapbox endpoints

我想使用mapbox获取建筑物形状的要点。可能吗? 例如,我想获得建筑物的红点,如下图所示:

Red points of building

我将使用Swift,但也许可以使用mapbox rest API公开的某些端点来检索这些类型的数据。

1 个答案:

答案 0 :(得分:2)

非编程您可以执行以下操作: 根据{{​​3}},您可以使用overpass API。使用该引擎,可以从OpenStreetMap数据库中提取所有数据,包括建筑物的几何形状及其坐标。如果要查询特定边界框中的所有建筑物,请执行以下操作:

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

 );
  out skel; 

这是引擎中的overpass API turbo engine

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

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

返回的结果默认为 XML

如果您想在 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;

访问每个多边形的“元素”键将为您提供地理坐标(lat,lon)中多边形角边的属性。