首页 / 浏览问题 / WebGIS / 问题详情
二维地图SCENE2D存在缩放问题
6EXP 2024年11月26日
请问一下,Iclient3DWebGl框架下

当执行viewer.scene.mode = SuperMap3D.SceneMode.SCENE2D;之后,地图变成了平面图层,可以正常上下左右平移地图,但是鼠标滚轮进行缩放的时候,比如说的当前北京的视角,鼠标就滑动了一下,就会跑到全球的的视角,有的时候还会黑屏,需要再缩小才能看见,这是什么问题,还是说需要额外再设置什么

1个回答

您是看的示例还是自行写的代码,您用的webgl是哪个版本呢?
1,385EXP 2024年11月26日

使用的是SuperMap iClient3D 11i(2023) for WebGL/WebGPU版本

是自行写的代码,使用的是viewer.scene.mode = SuperMap3D.SceneMode.SCENE2D;

https://www.supermapol.com/webgl/examples/webgl/editor.html#sceneModeSwitching官网示例二三维转换只有2.5d和3d

所以不太清楚转2d后还要额外设置什么吗?

现在的情况是:使用了viewer.scene.screenSpaceCameraController.zoomFactor = 0.1之后,缩放正常,滚轮滑动带着平移的效果,放大到一定程度就无法继续放大了

您更换下11.2.1最新版本,我这边测试是正常的
试了一下新版本确实正常了,非常感谢!

然后换完了之后有一个新问题,在3D下pixelSize为15的撒点都是正常大小的,切换到2d上面,撒点特别特别大,占了半个地图这样,然后我在2d下将pixelSize设置为0.0015也没有变小,是2D和3D的原因嘛   这个需要怎么解决呢
2.5D下正常吗?
你好,三维上的撒点切换到2.5D之后,撒点是正常的
应该是缺陷,您这边的代码是怎么写的呢?我测试后上报研发解决
好的,非常感谢您的解答!

撒点设置:

const markers = uploadData.features.filter(f=>f.geometry.coordinates?.[0] && f.geometry.coordinates?.[1]).map((f,i) => {
                return {
                    id: "测试" + "_point_" + i,
                    position:new SuperMap3D.Cartesian3.fromDegrees(Number(f.geometry.coordinates[0]), Number(f.geometry.coordinates[1])),
                    point:{
                        pixelSize: 15,
                        color:new SuperMap3D.Color.fromCssColorString(rgba(255,0,0)),
                    },
                    label:{
                        text: "test",
                        font: "normal 17px MicroSoft YaHei",
                        fillColor:new SuperMap3D.Color.fromCssColorString(rgb(255,255,255)),
                        disableDepthTestDistance: Number.POSITIVE_INFINITY,
                        pixelOffset:new SuperMap3D.Cartesian3(0.0,25, 0.0),
                        showBackground:true,
                        backgroundColor:new SuperMap3D.Color.fromCssColorString("rgba(0,0,0,0.7)"),
                    }
                }
            });

撒点:

for (let i = 0; i < markers.length; i++) {
                let dataConfig = entities[i];   
                let _entity = new SuperMap3D.Entity({...dataConfig,name:"测试"});

                viewer.entities.add(_entity);
            }

切换二三维:

viewer.scene.mode = SuperMap3D.SceneMode.SCENE2D;
viewer.scene.mode = SuperMap3D.SceneMode.SCENE3D;

 

您下载这个链接里的11.2.1的最新版本supermap-iclient3d-for-webgl_webgpu-11.2.1-241113-43764,测试这个版本是正常的

链接地址https://pan.baidu.com/s/1uiIbRUhybeHROs5B5igmqw?pwd=u4up

您好,这个版本替换了之后,2d模式下撒点正常了。

但是在2d模式下  是不是    不支持 new SuperMap3D.DrawHandler(viewer, mode, clampMode)  这个方法呢,现在无法在2d地图上绘制多边形了。

之前切换成2.5D也是可以正常绘制多边形的
...