在ArcGIS API for JavaScript中如何用3D符号可视化点数据

4
分享 2017-08-14
       在场景中可以使用3D点符号可视化点数据,从而使场景更具真实感。3D点符号的形状可以是简单的几何形状,例如球体、立方体和四面体,也可以是真实的3D模型,例如建筑物、街道设施、树木和车辆。
      
      对于简单几何形状的3D点符号,Esri在JavaScript API中内置了多种几何形状,包括球体,圆柱体,立方体,圆锥体,菱形,四面体,在创建PointSymbol3D对象时,将符号形状指定为相应的几何形状名称即可使用。对于真实的3D模型,Esri也提供了数百个模型,如交通标志、街道设施、数据符号等,这些模型存储在ArcGIS Portal或者ArcGIS Online中,通过引用符号的URL或者符号名称来创建WebStyleSymbol就可以在程序中使用。
       
       如果这些简单的几何形状或者模型不满足需求,用户还可以自定义形状。通过ArcGIS Pro中的Export Web 3D Object插件可以将多种格式的3D模型标记符号层导出为JSON文件,该文件可以用于创建PointSymbol3D对象。下面详细介绍一下这种方法。

1. 安装Export Web 3D Object插件
      
      下载Export Web 3D Object插件:

      · 针对ArcGIS Pro 2.0版本,下载链接为:https://pan.baidu.com/s/1PV7IHpnRf1BNdRcWIsm2zA​  ;
      · 针对ArcGIS Pro 1.4版本,下载链接稍后提供;
      · 针对ArcGIS Pro 1.3版本,下载链接稍后提供;

       将下载的ExportWeb3DObjectResource.esriAddinX文件拷贝至ArcGIS Pro所在的机器,双击文件,单击“安装加载项”完成安装。

                               

         
       安装成功后,在ArcGIS Pro中名称为“加载项”的选项卡中,能够看到增加了Export Web 3D Object项。



2. 导出3D对象资源
 
      使用 Export Web 3D Object 插件将3D 模型标记层导出到 web 3D 对象资源,步骤如下:

      1) 在ArcGIS Pro的场景中,加载一个点要素类,并将其拖拽至3D图层组中;

      2) 使用已有的3D模型对点图层进行符号化;

       i. 在图层上右键,单击符号系统;

       ii. 在符号系统窗口中,选择一种符号系统,如单一符号、唯一值等;

       iii. 单击符号系统中要使用的各个符号,在格式符号化窗口中,单击属性—>图层,选择3D模型标记,单击文件按钮,浏览至存放3D模型的目录,选择要使用的3D模型文件(支持的格式包括3DS、DAE、FLT和OBJ),单击确定,最后单击应用,完成格式符号化;

       3) 在内容窗口中,单击以选中此点图层,然后在加载项选项卡中,单击Export,指定输出目录后,单击确定,此点图层中每个3D符号使用的3D模型标记层都会被作为单独的. json 文件导出到输出目录中。

      导出3D对象资源操作示例:






 3. 在JavaScript API中创建3D符号
 
       使用导出的web 3D 对象资源(.json)文件创建PointSymbol3D对象。步骤如下:

       1) 将.json文件放置在web服务器上;

       2) 在JavaScript API中使用PointSymbol3D中的ObjectSymbol3DLayer添加自定义符号,将ObjectSymbol3DLayer的href属性指定为.json文件的URL。
var symbol = new PointSymbol3D({
symbolLayers: [new ObjectSymbol3DLayer({
width: 500, // 3D模型的宽度(从东到西),以米为单位
depth: 500, // 3D模型的深度(从南向南),以米为单位
height: 2000, // 3D模型的高度,以米为单位
resource: {
href: "http://xiej.arcgisoffice.com/cities_0.json" // 3D模型的url
}
})]
});
       
       在JavaScript API应用程序中的测试结果:

2 个评论

良心教程
太棒了

要回复文章请先登录注册