首页 / 浏览问题 / 三维GIS / 问题详情
如何使用 iClient3D for WebGL 同时加载多个发布了的 3d 服务
1EXP 2024年01月10日

使用产品:iServer11、iClient3D for WebGL

问题描述:地图数据厂商对某城市的某个区的每一个街道生成了单独的 scp,所以在发布 3d 服务时,发布了多个独立的服务。现在需要在 Web 端显示整个区的 3d 地图,应该怎么做?scene.addS3MTilesLayerByScp 和 scene.open 方法都尝试过,发现只能显示其中一个服务的地图。

const viewer = new Cesium.Viewer('container');

const services = [
  'http://localhost:8090/iserver/services/3D-local3DCache-Config/rest/realspace',
  'http://localhost:8090/iserver/services/3D-local3DCache-Config2/rest/realspace'
]

const configSuffix = '/datas/Combine/config'


const promises = services.map((service) => {
  return viewer.scene.addS3MTilesLayerByScp(service + configSuffix, { name: 'Combine' })
})

Promise.all(promises).then((layers) => {
  console.log({ layers }); // 并没有执行,地图上只显示了一个图层的数据
})

或者是否有合并 .scp 的工具?将街道的多个 scp 合并至一个再发布服务?

1个回答

没太明白您到底是什么数据

如果是瓦片那种一整片的数据没办法,因为图层会有覆盖的情况

如果只是一个对象的话就 addS3MTilesLayerByScp是没问题的

只是要进行多次 addS3MTilesLayerByScp操作,添加多个图层到Scene场景中
4,151EXP 2024年01月10日
...