ArcGIS 3D Layers 是一个面向 ArcGIS Maps SDK for JavaScript 的技能,用于在 SceneView 中使用三维专用图层类型,包括场景图层、集成网格、点云、体素、尺寸标注以及 glTF 模型导入。
用途 该技能聚焦于三维场景中的图层添加与配置,帮助开发者在 SceneView 中呈现三维建筑、摄影测量网格、LiDAR 点云、体素体数据、三维量测和建筑信息模型等内容。所有三维专用图层(SceneLayer、IntegratedMeshLayer、PointCloudLayer、VoxelLayer)均要求使用 SceneView,无法在 MapView 中工作。
主要能力
- SceneLayer:显示来自场景服务的三维建筑模型、对象和网格数据,支持弹出模板、渲染器、边线渲染(实线边与草图边)、客户端与服务端查询,以及在启用编辑时应用编辑。
- IntegratedMeshLayer:显示摄影测量网格数据(三维实景捕获)。
- IntegratedMesh3DTilesLayer:用于 3D Tiles 1.1 数据源。
- 网格修改:可通过几何与类型(clip、replace、mask)对网格区域进行裁剪或替换。
- PointCloudLayer:处理 LiDAR 数据,支持 RGB 真彩色渲染器、分类渲染器、高程拉伸渲染器、点密度与大小控制、按分类过滤,以及通过智能制图创建真彩色或分类渲染器。
- VoxelLayer:显示三维体数据(大气、海洋、地质等),支持当前变量、样式、动态切片、等值面、颜色停靠点等配置。
- DimensionLayer:三维量测,支持 DimensionAnalysis、LengthDimension,以及交互式放置尺寸标注。
- BuildingSceneLayer:加载后可访问子图层(专业与类别)。
- glTF 模型导入:通过 point-3d 符号的 object 符号层导入 .glb 模型,可设置宽高深、朝向、倾斜与翻滚,并支持使用 SketchViewModel 进行交互式放置。
- 高程信息:支持 on-the-ground、relative-to-ground、relative-to-scene、absolute-height 等模式,可设置偏移、单位与要素表达式。
- 三维分析组件:包括 arcgis-building-explorer、arcgis-elevation-profile、arcgis-line-of-sight、arcgis-shadow-cast、arcgis-slice、arcgis-directional-pad。
- 查看模式:global(默认,球面地球)与 local(平面,适用于局部区域、室内、地下或体素)。
使用方式 支持两种导入模式:ESM(npm)方式使用 import 语句从 @arcgis/core/layers/ 导入各图层类;CDN 方式使用 $arcgis.import 动态导入。图层通过 map.add() 添加到地图,并配合 SceneView 使用。体素图层可通过 arcgis-scene 组件配合 viewing-mode="local" 使用。
适用场景 适用于三维建筑展示、LiDAR 点云可视化与过滤、体素体数据渲染与切片、三维尺寸量测、建筑场景浏览、glTF 模型放置,以及三维分析(视线、阴影、剖面、切片)等场景。
限制与注意事项 SceneLayer、IntegratedMeshLayer、PointCloudLayer 和 VoxelLayer 仅能在 SceneView 中使用,不能在 MapView 中使用。VoxelLayer 建议使用 local 查看模式以获得最佳效果。点云渲染器常用字段包括 RGB、CLASS_CODE、ELEVATION、INTENSITY。glTF 模型可能需要显式设置宽高深以适配场景。可通过设置 navigationConstraint: { type: "none" } 允许地下查看。访问 variables、styles、allSublayers 等元数据前必须先 await layer.load()。
相关技能包括 arcgis-scene-environment(光照、天气、大气、阴影)、arcgis-custom-rendering(RenderNode 自定义三维 WebGL 渲染)、arcgis-visualization(渲染器与符号系统)、arcgis-layers(通用图层模式与配置)。