我的问题是,如何从 MapBox 服务获取指定路线的海拔剖面。
在输入中,我们将路径/路线作为坐标数组(纬度,经度)。结果,我们希望得到坐标对对的数组-高程。
如果高程数据的分辨率高于所提供的路线坐标,则结果还应包含原始坐标之间的高程数据。路线上的新点将根据高程数据分辨率生成。如果高程数据的分辨率较低,则应从已知数据中为查询点内插高程值。我们希望获得尽可能精确的结果。
作为我们解决方案的数据源,我们想使用 MapBox 服务。但是,针对此特定问题,我们找不到任何记录在案的 MapBox API 。我们仅找到对某些Surface API的引用,而不再支持。
据我们了解,Mapbox现在以Terrain-RGB地图图块的格式存储高程数据。 我们确定了以下步骤可以使用 MapBox
解决问题:此算法正确吗?我认为,针对特定路线生成高程剖面图是一个常见问题,是否有任何工具可以开箱即用地解决我们的问题,也许有一些SDK?我们错过了什么吗?非常感谢。
答案 0 :(得分:3)
对于您要实现的目标,我建议您使用Terrain-RGB栅格图块集( not )。相反,您应该使用Tilequery API从Mapbox Terrain v2矢量图块集中检索沿路径的点的高程。
有两种可能的来源和方法可用于从Mapbox检索高程数据,而选择实际上取决于您的需求。您已链接到以下问题的疑难解答文档中,对这两种方法进行了更详细的概述:
以下是每种方法的 tl; dr :
这是您在原始问题中概述的过程。如果您想做一些事情,例如准确地设置山体阴影的样式或为视频游戏生成3D网格,则此方法很好。请注意,这种方法不太适合查找特定纬度/经度坐标对的高程。
此过程要求您请求路线上每个点的高程。您可以通过向Mapbox Terrain v2发出请求来实现。关于需要在路径坐标之间进行插值的观点,可以将Mapbox Tilequery API用作一组坐标对,然后将其一次传递给Tilequery API。最重要的是,您从API请求中收到的Turf.js library to "explode" your line geometry可以从图块集中检索正确的海拔数据。
⚠️免责声明:我目前在Mapbox⚠️
工作