首页 / 浏览问题 / 三维GIS / 问题详情
管线三维缓存在webgl中不显示!!!
263EXP 2020年03月23日

首先这个问题我11月份就提过了,没有解决。iserver WebGL3D浏览s3m缓存 管线缓存需要特殊角度才显示

另外,在社区也有很多人提过!isever显示三维管道的问题

环境&背景:

1.java 10i组件最新版和idesktop 10i最新版切的三维场景缓存,在桌面中能够正常显示,但管线在webgl中均不能正常显示,特殊角度才能够显示。

2.9D产品切的三维场景缓存却能够在webgl正常显示。

3.三维自定义专题图&符号库符号模型

不知道你们用心去解决用户反馈的问题没有,产品虽然更新了,但捡了芝麻丢了西瓜。

以下为10i版本切的三维管网缓存在web页面的截图: 在场景中漫游缩放平移我也录制视频了。

这个问题麻烦你们那边尽快解决以下,提供解决方法。QQ:491540429

以下为java组件生成场景缓存的部分代码

        SceneCacheBuilder builder = null;
        try {
            //1.三维数据集图层设置
            Layer3Ds layer3Ds = scene.getLayers();
            System.out.println("场景中图层数量:"+layer3Ds.getCount());
            ArrayList<String> layerNames = new ArrayList<String>();
            for(int i=0;i<layer3Ds.getCount();i++) {
                Layer3D layer3D = layer3Ds.get(i);
                if(layer3D.getType()==Layer3DType.DATASET)
                {
                    Layer3DDataset layer3DDataset = (Layer3DDataset)layer3D;
                    layer3DDataset.setFileType(CacheFileType.S3M);//缓存文件类型
                    layer3DDataset.setTileWidth(2000);//瓦片宽度
                    layer3DDataset.setIsBuildOSGBCache(true);//三维切片缓存,不然会生成矢量缓存
                    layer3DDataset.setBuildOSGBPipeCache(true);//生成管线缓存
                    layer3DDataset.setFilterPixelSize(2);//像素过滤值,提升显示性能
                    layer3DDataset.setLODCount(0);//部分管点符号模型存在压缩变形,这个参数是超图给出的解决方式
                    layerNames.add(layer3D.getName());
                }
            }
            System.out.println("场景中三维自定义专题图层数量:"+layerNames.size());
            if(layerNames.size()==0)
            {
                return false;
            }
            //2.场景缓存生成参数
            builder = new SceneCacheBuilder(scene, output.toString());
            builder.setCompressedTextureType(CompressedTextureType.DDS);//压缩方式,PC
            builder.setProcessThreadsCount(4);//处理线程
            builder.setStorageType(StorageType.Original);//存储方式,原始
            builder.setIsCalNormal(false);
            builder.setIsInstance(true);

//            Point2D[] pts = new Point2D[]{rectangle2D.leftBottom,rectangle2D.rightTop};
//            Point2Ds te2DS = new Point2Ds(pts);
//            CoordSysTranslator.forward(te2DS, PrjCoordSys.fromEPSG(EPSGCode));
//            Rectangle2D rectangle2DProj = new Rectangle2D(te2DS.getItem(0), te2DS.getItem(1));
//            builder.setBounds(rectangle2DProj);//设置范围
//            builder.setBoundsCeiled(true);
            //2.1 设置需要生成缓存的普通图层和地形图层
            String[] layerNameArr = layerNames.toArray(new String[] {});
            builder.setOutputLayerNames(layerNameArr);//三维自定义图层
            builder.setOutputTerrainLayerNames(null);//地形图层不生成
            //2.2 场景和工作空间输出参数
            builder.setOutputSceneName(sceneName);//设置新生成的场景名称
            Path path = Paths.get(output.toString(),workspaceName+ ".smwu");//*工作空间路径
            connectionInfo.setServer(path.toString());//工作空间路径
            builder.setOutputWorkspaceConnectionInfo(connectionInfo);
            //2.3 开始生成缓存
            flag = builder.build();
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return false;
        }
        finally {
            builder.dispose();
            builder = null;
        }

1个回答

已加qq
2,560EXP 2020年03月23日
加了吗?
加过了,我这里显示的是等待验证中
我这边没有收到,重新加一下吧。
...