首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Mapbox地形-与Mapbox?

如何使用Mapbox地形-与Mapbox?
EN

Stack Overflow用户
提问于 2019-07-10 01:33:29
回答 1查看 1.7K关注 0票数 1

Mapbox发布标高数据,使用RGB栅格块("Mapbox地形-RGB“),可在这里获得:https://docs.mapbox.com/help/troubleshooting/access-elevation-data/#mapbox-terrain-rgb

我很难弄清楚如何使用Mapbox来使用这些数据;我想不出一种在样式编辑器工作室或客户机上进行RGB解码的方法。

在寻找示例时,我只能找到在leaflet.js中使用这些数据的Mapbox示例,而不是Mapbox:https://blog.mapbox.com/global-elevation-data-6689f1d0ba65

我试图复制的相应的openlayers代码如下:

代码语言:javascript
运行
复制
function flood(pixels, data) {
  var pixel = pixels[0];
  if (pixel[3]) {
    var height = -10000 + ((pixel[0] * 256 * 256 + pixel[1] * 256 + pixel[2]) * 0.1);

    if (height <= 100 && height > 0) {
      pixel[0] = 255;
      pixel[1] = 15;
      pixel[2] = 15;
      pixel[3] = (255 - height * 2.5);
    } else {
      pixel[3] = 0;
    }
  }
  return pixel;
}

const elevation = new XYZ({
  url: 'https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=' + key,
  crossOrigin: 'anonymous',
  transition: 0
});

var raster = new RasterSource({
  sources: [elevation],
  operation: flood
});

但是我想不出用Mapbox在客户机上做这件事的任何方法。

理想情况下,我应该避免直接的API调用;我试图在Mapbox客户机中工作,以避免直接API访问带来高昂的成本。但我会从任何方法开始。

(我对此相当陌生,所以如果有更深层次的误解,我很抱歉)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 02:19:49

不能对光栅像素(如光栅着色 )执行任意操作。你可以做两件事中的任何一件:

  1. 将光栅显示为图像(使用raster源类型和raster层类型)。
  2. 将光栅视为DEM,并将其显示为坡度(使用raster-dem源类型和hillshade层类型)。

有关后者的示例,请参见https://docs.mapbox.com/studio-manual/examples/hillshade/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56962315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档