首页 / 浏览问题 / 三维GIS / 问题详情
如果创建非球面场景
匿名
2019年01月09日

使用产品:iServer 9D、iClient3D 9D
操作系统:win10 x64
数据类型:文件型,iDesktop导出的模型文件

问题详细描述:

请问在浏览器中如何使用iClient3D创建无地图、非球面场景?只需要在纯色背景中加载模型,类似这样:

谢谢!

1个回答

是在webgl里面实现吗,还是插件客户端,如果是webgl可以将地球的背景图替换为纯色背景,根据下面示例来创建平面场景

http://support.supermap.com.cn:8090/webgl/examples/editor.html#sceneModeSwitching

2,701EXP 2019年01月09日

谢谢您的回答!

想问一下,如何将地球的背景图替换为纯色背景呢?能否给个例子?我已经按照您给的例子将代码简化到下面的样子了,不好意思,第一次用GIS,不太会替换地球的背景图,还麻烦您点化一下,感谢!

var viewer = new Cesium.Viewer('cesiumContainer');
viewer.scene.mode = Cesium.SceneMode.COLUMBUS_VIEW;
var scene = viewer.scene;
var promise = scene.open("http://localhost:8090/iserver/services/3D-NanYangSphere/rest/realspace");
Cesium.when(promise, function(layer){
	viewer.flyTo(layer);
});

感谢解答,现在终于可以实现了,谢谢您!

以下是我的代码,其它遇到同样问题的朋友可以参考:


    var viewer;
    function onload(Cesium) {
        //初始化viewer部件
        viewer = new Cesium.Viewer('cesiumContainer', {
            sceneMode : Cesium.SceneMode.COLUMBUS_VIEW,//初始场景模式为2.5维
            imageryProvider:new Cesium.SingleTileImageryProvider({
                url:''//透明图片
            }),
            skyBox:false,
            skyAtmosphere:false,
            baseLayerPicker:false,
            contextOption:{
                webgl:{
                    alpha:true
                }
            }
        });

        var scene = viewer.scene;
        var promise = scene.open("http://localhost:8090/iserver/services/3D-MyModelName/rest/realspace");

        Cesium.when(promise, function(layer){
            viewer.zoomTo(layer);
            viewer.scene.camera.position = {
                x: 12541467.654670408,
                y: 3667711.361097446,
                z: 62.514623262919486
            };
            var color = {
                alpha: 1,
                red: 222/255,
                green: 237/255,
                blue: 247/255
            };
            viewer.scene.backgroundColor = color;
            viewer.scene.globe.baseColor = color;
        });

        $('#toolbar').show();
        $('#loadingbar').remove();


    }

...