You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Mapbox中降低特定多边形区域地形以显示地下3D模型?

解决Mapbox中地下室3D模型可见性问题的方案

一、通过多边形修改特定区域地形高度

Mapbox GL JS支持自定义地形源来局部调整地形高度,你可以用多边形圈定房屋所在区域,针对性降低该区域地形基准:

  • 先创建覆盖目标区域的GeoJSON多边形图层
  • 结合setTerrain方法与表达式逻辑,仅对目标多边形区域应用负高度偏移,示例代码如下:
map.setTerrain({
  source: 'mapbox-dem',
  exaggeration: 1,
  height: [
    'case',
    ['in', ['id'], ['get', 'ids', ['feature-state', 'lower-terrain']]],
    -5, // 自定义地形降低的高度,单位为米
    ['get', 'height']
  ]
});
  • 需将多边形图层的feature-state与地形高度计算绑定,确保仅修改目标区域地形。

二、直接调整3D模型的Z轴偏移

如果修改地形的方案复杂,直接调整模型位置是更高效的选择:

  • 在加载3D模型时,修改modelMatrix的平移参数,给Z轴设置负值让模型整体向下偏移,使地下室露出地面,基于你使用的官方示例修改代码如下:
const model = new MapboxGL.Model({
  map: map,
  url: 'path/to/your/model.gltf',
  modelMatrix: mat4.fromTranslation(mat4.create(), [lon, lat, -3]) // 最后一个参数设为负数,向下偏移3米
});

三、调整地图视角观察地下区域

若不想修改地形或模型,可通过相机参数调整来查看地下:

  • 使用map.setCamera设置pitch(倾斜角度)、zoom(缩放级别),配合center和bearing参数,让相机从侧面倾斜视角对准模型
  • 也可开启dragRotate和scrollZoom交互,手动拖动旋转地图,找到能看到地下室的视角。

内容的提问来源于stack exchange,提问作者rebuff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:22:07