WebGL三维数据服务浏览问题与解决方案集锦

作者:LingGL

不少用户在初学WebGL产品的时候,总会遇见一些三维数据发布不成功或数据加载的问题,因此写一篇WebGL三维数据服务浏览问题与解决方案集锦,提供用户自己检测问题的方法。
本文主要分为两大部分,数据不出现和数据加载慢两种情况,再分别例举不同类型的数据出现的问题解决方案,主要提供以下类型数据的解决方法:S3M缓存数据,影像。

数据不显示

(一)基本原因

数据加载不显示是用户经常遇见的问题,加载不出有如下一些问题,也是用户最常见的,用户需要先检查一下自己是否用符合以下几种情况,然后再根据自己的数据类型来解决问题。

1. 发布工作空间服务的时候,桌面端没有关闭工作空间。

iServer发布的工作空间是独占的,意思是指,在工作空间只能在桌面端或iServer其中一个产品被使用。因此在发布数据时,桌面的工作空间需要关闭

2. 工作空间保存时相机的视角比较高

iServer打开WebGL预览的时候,相机初始的位置与桌面保存场景时的相机位置是一致的。因此有时并非是数据不正确,而是在桌面软件保存场景时视角太高。这种情况只需要在桌面软件更改一下相机视角,既可解决这个问题。

3. 图层名中带有“#”这个符号

发布的三维服务中,不支持带有“#”符号的图层,这个图层在文件中找不到对应的数据,因此这个图层时加载不出来。

4. 工作空间保存的数据路径不对

查看工作空间保存的数据源的路径先要将工作空间另存成sxwu格式,再将这个格式的工作空间使用记事本打开或者用文本编辑器。下图截图部分便是记录的工作空间和数据源的相对路径。此时通过更改此路径或着在桌面重新打开数据另存一个工作空间。

WebGL三维数据服务浏览问题与解决方案集锦

若检测完,以上几种情况都不存在,接下来,我们将要按数据类型来查找原因。

(二) 倾斜与S3M缓存图层丢失

1. 缓存切的矢量缓存

点线面数据集生成缓存的时候,有矢量缓存和三维切片两种方式。用户没有注意,就会将数据生成矢量缓存。这时需要重新生成缓存,缓存方式如下:
先将矢量数据添加到三维场景中,保存场景,再使用场景右键生成缓存,在下图标记处设置为三维切片

WebGL三维数据服务浏览问题与解决方案集锦

2. OSGB格式的文件没有压缩成S3M格式文件

WebGL支持的缓存格式为S3M,发布的数据若为OSGB格式在前端加载时会转成S3M格式的,在小数据的OSGB格式发布显示可能没有问题,但数量大的时候就会出现加载不出来的情况。因此为了避免这种情况出现,生成缓存的时候我们需要在如下图所示的地方选择生成S3M.

WebGL三维数据服务浏览问题与解决方案集锦

若为倾斜摄影数据或已生成OSGB格式的数据,可以使用压缩纹理的方式将数据格式转换.。在三维数据菜单——倾斜摄影——压缩并单体化打开压缩纹理的功能,保存类型选择S3M.

WebGL三维数据服务浏览问题与解决方案集锦

3. 切成了S3MBZ和S3MB,且iServer版本比桌面版本低(910版本及以下)

这两种格式在910及以下版本的是不支持的。

4. 切成了S3MBZ和S3MB,没有使用谷歌浏览器

这两种格式在IE目前不支持的。

(三) 影像丢失

1. 影像缓存通过场景缓存的方式生成的

场景切缓存默认是dxtz格式,WebGL不支持,缓存方式换成数据集右键缓存,缓存的格式为jpg_png格式。

2. iServer版本低

若是iServer版本低的原因,使用者一般会发现,影像数据在iServer预览没有数据,而在使用代码调用服务后浏览是正常的。这个主要原因是iServer版本内嵌的WebGL版本比较低,支持不了,因此这种情况下,建议用户升级一下版本即可。

3. 影像剖分方式不是全球剖分

WebGL加载的影像必须是切的全球剖分瓦片,若为其他剖分方式,则不支持。在超图桌面产品切缓存时,一般默认的是全球剖分。

数据加载慢

(一)运行环境要求

在数据加载之前,要确保网络环境良好和硬件设施配置较好,个人认为,若需要浏览效果好,电脑运行内存8G以上,显卡Geforce GT 10系列以上,首选谷歌浏览器运行。在使用三维产品,确保电脑中有独立显卡,并将独立显卡3D设置和PhysX设成高性能处理器。如下图所示
WebGL三维数据服务浏览问题与解决方案集锦

(二) 倾斜合并根节点

大部分倾斜数据引入超图桌面的时候,瓦片边长都比较小,这个数据发布后,前端每次请求的数据都比较小,把数据全部加载完成后,就会花费很长的时间。在这种情况下,我们可以使用下图的合并根节点的方式,将倾斜的块文件适量合并,这样在前端加载数据时一次性会加载更多的数据,在前端显示的效率就会提升。
WebGL三维数据服务浏览问题与解决方案集锦

(三) S3M切片文件超过了3M

前端数据渲染慢除了上面的原因,还有另外一种情况,生成S3M切片文件有超过3M的。超过3M的数据在前端请求会变慢,因此在生成缓存后,应该检测以下,是不是有特别大的切片文件,若有,则需要对数据作优化处理。 处理方案如下
WebGL三维数据服务浏览问题与解决方案集锦

1. 建模阶段

在建模的阶段,避免模型做得过于精细,导致模型无意义的三角面过多。建模过程中,建议相同模型引用一个对象,制作实例化模型。
建模要求和模型优化参考下方链接
https://blog.****.net/supermapsupport/article/details/80684996

2. 模型数据集优化

对模型数据集做移除重复点和重复面。
WebGL三维数据服务浏览问题与解决方案集锦

3. 缓存阶段

缓存时将模型的瓦片边长设小,勾选实例化(仅对有实例数据有用)。若缓存切片中存在着特别大的数据,在缓存时,也会比较慢,缓存前可以使用三维地理设计——三角王操作——模型拆分的功能,一般可以解决这个问题。

WebGL三维数据服务浏览问题与解决方案集锦

结语
以上便是三维前端数据浏览问题的整理,大家可以根据自己的情况自检一下原因。在自检后,若以上情况都不符合,仍然出现前端浏览问题,大家可以前往超图社区提问或拨打400890086,在咨询时,直接告诉咨询人员使用的产品和版本,电脑硬件配置和使用的浏览器更能帮助支持人员定位问题…