首页 / 浏览问题 / 组件GIS / 问题详情
Iobject java切片缓存后文件没有切片
5EXP 2023年07月10日

  Datasource datasource = datasources.get(i);
                DatasetVector dataset = (DatasetVector)datasource.getDatasets().get(0);
                String cacheName = dataset.getName();
                PrjCoordSys prjCoordSys = new PrjCoordSys();
                prjCoordSys.fromEPSGCode(4490);
                dataset.setPrjCoordSys(prjCoordSys);
                Rectangle2D bounds = dataset.getBounds();
                OSGBCacheBuilder builder = new OSGBCacheBuilder();
                builder.setDataset(dataset);//设置生成缓存的数据集
                builder.setOutputFolder(bimPath);//设置缓存输出路径,与原始缓存一致
                builder.setCacheName(cacheName);//设置缓存名称,与原始缓存一致
                builder.setFileType(CacheFileType.S3MB);//设置缓存文件类型
                builder.setBounds(bounds);//
                builder.setTileWidth(300);
                builder.setPosition(new Point3D(dataset.getBounds().getCenter().x,dataset.getBounds().getCenter().y,z));
                builder.setAttributeExtentType(AttributeExtentType.S3MD);
                builder.setCacheVersion(S3MVersion.VERSION_10);
                String cachePath = bimPath+File.separator+cacheName+File.separator+cacheName+".scp";
                boolean isSuccess = builder.toConfigAndIndexFile(cachePath);
                CacheFileType fileType = builder.getFileType();

                log.info(cacheName+"生成切片缓存"+isSuccess);
                Scene scene = new Scene(workspace);
                Layer3Ds layers = scene.getLayers();
                Layer3D add = layers.add(cachePath, Layer3DType.OSGB, true);
                add.setEditable(true);
                add.setVisible(true);
                //添加缓存
                log.info("添加缓存");
                Scenes scenes = workspace.getScenes();
                scenes.add(dataset.getName(), scene.toXML());

帮帮孩子

1个回答

您好,请问您是什么数据要进行三维切片缓存生成,如果是数据集要生成球面缓存,

首先是数据集需要投影转换成地理坐标系才可以,费地理坐标系只能生成平面缓存。

其次是生成缓存接口建议您使用 SceneCacheBuilder ,

参考:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsJava/TechnoloyDocument/3DCache/3DCache5.html

希望可以帮助到您。

于丁
1
10,758EXP 2023年07月11日
我切出来的 东西把她在超图实现是可以的但是我上传到iserver的时候就不好使了
没有太理解你的意思,你是指把缓存配置文件,所有缓存s3mb块完整拷到iserver的服务器,然后发布三维服务有问题还是什么?
是的 我上传到iserver的时候没有当前模型
你现在的问题是什么呢?你具体是组件切缓存后,只有scp没有模型数据。

还是组件切出来后数据全的,你用什么方法拷到iserver的电脑上后少数据了?
...