您好,安装您提供的代码,我已重现“只有第一个点数据集”生成缓存的情况,这里需要您您先循环,对每个矢量数据集调用一次OSGBVectorCacheBuilder。
对于一次性生成多个缓存,您可以使用 SceneCacheBuilder类,您可查看帮助手册《二三维缓存》中的5.2.4章节(在帮助手册中搜索 “生成场景缓存”)(帮助手册位于安装目录下help文件夹中)。
在生成场景缓存时,影像图层对应影像缓存图层,地形图层对应地形缓存图层,矢量图层对应矢量缓存图层,地图图层对应地图缓存图层,如果是缓存图层(比如模型缓存图层)或者KML图层,则保持不变。
这里矢量图层生成的缓存为 矢量缓存,为三维矢量瓦片文件 *.scv
// 设置生成场景缓存的路径,需提前创建好文件夹
String output= "c:\\temp\\outputScene\\1";
//创建场景缓存
SceneCacheBuilder m_sceneCacheBuilder = new SceneCacheBuilder();
Scene scene=new Scene(m_workspace);
scene.open("未命名场景");
m_sceneCacheBuilder.setScene(scene);
m_sceneCacheBuilder.setOutputFolder(output);
//设置哪些普通图层对应的数据会生成缓存
String[] layerNames = {"NewRegion@TestDataSource", "NewLine@TestDataSource", "NewPoint@TestDataSource"};
m_sceneCacheBuilder.setOutputLayerNames(layerNames);
//设置新生成的场景的名称
m_sceneCacheBuilder.setOutputSceneName("Scene");
m_sceneCacheBuilder.setStorageType(StorageType.Single );
m_sceneCacheBuilder.setImageSize(CacheImageSize.SIZE256);
m_sceneCacheBuilder.setS3MVersion(S3MVersion.VERSION_30);
WorkspaceConnectionInfo m_workspaceConnectionInfoCache = new WorkspaceConnectionInfo();
m_workspaceConnectionInfoCache.setServer(output + "Scene.smwu");
m_workspaceConnectionInfoCache.setType(WorkspaceType.SMWU);
m_workspaceConnectionInfoCache.setVersion(WorkspaceVersion.UGC60);
m_sceneCacheBuilder.setOutputWorkspaceConnectionInfo(m_workspaceConnectionInfoCache);
boolean isSuccess= m_sceneCacheBuilder.build();
希望能帮助到您