SuperMap精模数据处理流程及注意事项

文章目录

  • 前言
  • 一、数据合理分类
  • 二、数据检查
  • 三、生成三维切片缓存
  • 四、注意事项
  • 五、发布服务
  • 六、加载服务


前言

本文主要是针对城市级精细模型数据。为了使数据在前端使用调度更合理,加载速度更快,显示层次更鲜明,本文主要讲述数据生成缓存的参数设置及生成缓存前数据整理的建议。


一、数据合理分类

  1. 精模数据需按照地板(道路和水系也可以归到地板里)、建筑、小品、植被几大类进行区分,并单独存放数据集。
  2. 每份数据大小应在100平方公里左右,且每份数据都是连续的,不要跨区域存放。比如,现有数据160平方公里左右,可以先大块的分成两部分,A部分100平方公里左右,B部分60平方公里左右。
    根据第一项的分类原则,将数据分成地板、建筑、小品、植被四个数据集,这样整个数据就会有8个模型数据集。

二、数据检查

  1. 精细模型导入UDB后,确认数据是否存在重复顶点、重复三角面、重复子对象等情况,若存在,需进行数据校正。
  2. 在三维数据->模型工具->模型校正下有相应功能对数据进行检查并处理。如下图所示:
    SuperMap精模数据处理流程及注意事项_第1张图片

三、生成三维切片缓存

  1. 对模型数据集生成缓存,使用数据集右键-“生成缓存”功能。

  2. 对数据生成缓存,设置缓存参数,可以参考以下述中的参数设置。

  3. 对于地板(包括道路和水系)这类数据结构不复杂,需要初始显示时快速、大片区域的加载,所以可以设置较大瓦片边长,过滤阈值设置小一些甚至可以为0。

  4. 对于建筑这部分数据由于结构复杂、空间分布相较于地板更密集,所以瓦片边长可以适当调小或设置600米。结合项目使用需求,可以对纹理设置及纹理大小限制做一些调整。

  5. 对于小品通常体积不大,在整个大场景可视占比不高,只要在近处时能快速加载出来就行,所以可以设置一个相对较小的瓦片边长(为了设置最大可见距离使用)和设置一个较大的过滤阈值(让细小的构件在相对远处能被过滤掉)。

  6. 对于植被数据会有成片区、密集分布的情况,又数据结构不复杂,所以瓦片边长可以设当设置大些,但可以设置一个较大的过滤阈值,用于过滤远处细小的对象。

四、注意事项

  1. 数据分类时,需要把小品中明显是地块部分的放到地板类型中;把栏杆、围墙等长条状(长超过10米的对象)的对象摘出来放到地板中;把大型的对象(比如建筑施工的吊塔、跨度大的天桥、大型雕塑等)放到建筑分类中。

  2. 加载时,对地板可以不设置可见距离或设置很大的一个可见距离(参考值:80000米)。

  3. 对建筑设置最大可见距离8000米。

  4. 对小品设置最大可见距离300米或600米。

  5. 对植被设置最大可见距离800米或1200米。

  6. 如对山上的植被有特殊显示要求,可以将整个山范围内的植被,单独生成缓存,不设置可见距离或者设置一个较远可见距离,如8000米。

五、发布服务

使用SuperMap iServer将缓存数据发布为三维服务:
方式一:
在SuperMap iDesktop中将缓存添加到场景中保存场景再保存工作空间,iServer选择“快速发布一个或一组服务-工作空间-三维服务”即可。
方式二:
iServer选择“快速发布一个或一组服务-三维切片缓存-REST-三维服务”。

六、加载服务

使用SuperMap iClient3D for WebGL加载发布的三维服务:
方式一:

viewer.scene.open('http://localhost:8090/iserver/services/3D-local3DCache-BuildingCBD/rest/realspace')

方式二:

viewer.scene.addS3MTilesLayerByScp('http://localhost:8090/iserver/services/3D-local3DCache-BuildingCBD/rest/realspace/datas/Building@CBD/config',{
        name:'build'
    })

你可能感兴趣的:(3d,webgl,javascript)