首页 / 浏览问题 / WebGIS / 问题详情
s3m缓存桌面预览没有错位,webgl加载后部分构件错位了
twt
19EXP 2023年11月03日

缓存没问题,加载到webgl就错位了,这是什么原因​​​​

1个回答

您好,

SuperMap iClient3D for Cesium产品默认是圆球,如果您生成缓存时选择S3M版本为3.0,那么默认“椭球”选项被勾选,生成的缓存为椭球数据,在前端需要设置椭球体转换参数,如以下代码所示:

function onload(Cesium) {
var obj = [6378137.0,6378137.0,6356752.3142451793];
Cesium.Ellipsoid.WGS84 = Object.freeze(new Cesium.Ellipsoid(obj[0], obj[1], obj[2]));
var viewer = new Cesium.Viewer( 'cesiumContainer');
var scene = viewer.scene;
var promise = scene.open('http://localhost:8090/iserver/services/XXX/rest/realspace');
}

希望能够帮助到您!

435EXP 2023年11月03日

数据坐标系有问题,建议使用“开始”选项卡->“数据处理”组->“投影转换”->“批量投影转换”功能转换为统一的地理坐标系再进行生成缓存、服务发布、前端调用等一系列操作。

坐标系也转换了,数据加载还是在地下;crying

方便远程看看具体情况或者提供数据这边本地测试吗,已经私信您了。

感谢问题已经解决yes

咨询个相关问题,改为椭球模式后,flyTo这种视角定位;是不是也跟着要重新设定;

我发现好像之前写死的视角跟着不太对了

您好,

视角定位需要重新设定,可通过 Web 控制台输出信息并查看当前的视角定位。

(1)获取当前相机位置:

console.log(viewer.camera.position);

(2)获取heading、pitch、roll等参数值:

console.log(viewer.camera.heading);
console.log(viewer.camera.pitch);
console.log(viewer.camera.roll);

...