supermap cesium 加载倾斜摄影

如果我们要在web端加载我们自身的数据,超图和cesium都有方法,cesium方法比较简单,可以用到cesiumlab这个比较方便的工具。其中有倾斜数据(osgb)处理方法。其中只要数据正确,他会自动读取倾斜摄影中的坐标。切出来的数据通过添加3dtiles的方法就能够正确的添加到web端的网页中。(新版本的cesium好像要添加token才能够添加底图,可以去申请ion。清楚原因的小伙伴可以科普一下为啥)

var viewer = new Cesium.Viewer('cesiumContainer', {
        selectionIndicator : false,animation : false,//是否创建动画小器件,左下角仪表
        baseLayerPicker : false,//是否显示图层选择器
        fullscreenButton : false,//是否显示全屏按钮
        geocoder : false,//是否显示geocoder小器件,右上角查询按钮
        homeButton : false,//是否显示Home按钮
        infoBox : false,//是否显示信息框
        sceneModePicker : false,//是否显示3D/2D选择器
        selectionIndicator : false,//是否显示选取指示器组件
        timeline : false,//是否显示时间轴
        navigationHelpButton : false,//是否显示右上角的帮助按钮
        scene3DOnly : true,
        automaticallyTrackDataSourceClocks : false,//自动追踪最近添加的数据源的时钟设置
        sceneMode : Cesium.SceneMode.SCENE3D,//初始场景模式
    });

    var tilesetbuilding = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
        url: , //自己切片的地址,应用到切片的tileset.json
    }));
    tilesetbuilding.readyPromise.then(function () {

        var boundingSphere = tilesetbuilding.boundingSphere;

        viewer.camera.viewBoundingSphere(boundingSphere, new Cesium.HeadingPitchRange(0.0, -0.5, boundingSphere.radius));

        viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);

    }).otherwise(function (error) {
        throw (error);
    });

    //设置操作习惯,更换中键和右键

    viewer.scene.screenSpaceCameraController.tiltEventTypes = [

        Cesium.CameraEventType.RIGHT_DRAG, Cesium.CameraEventType.PINCH,

        { eventType: Cesium.CameraEventType.LEFT_DRAG, modifier: Cesium.KeyboardEventModifier.CTRL },

        { eventType: Cesium.CameraEventType.RIGHT_DRAG, modifier: Cesium.KeyboardEventModifier.CTRL }

    ];
    viewer.scene.screenSpaceCameraController.zoomEventTypes = [Cesium.CameraEventType.MIDDLE_DRAG, Cesium.CameraEventType.WHEEL, Cesium.CameraEventType.PINCH];

这样就能够展示我们的倾斜摄影了下面说下supermap方法。首先要生成supermap读的懂得倾斜摄影缓存。打开supermap,在菜单栏选项卡中选择
选择倾斜摄影选项卡
设置倾斜摄影数据

若果不设置中心点坐标的,生成的数据可能会生成达到大西洋上(0,0),所以我们要获取倾斜摄影的中心点坐标。smart 3d导出的倾斜摄影会有这个文件metadata.xml.打开该文件

<?xml version="1.0" encoding="utf-8"?>
<ModelMetadata version="1">
    <!--Spatial Reference System-->
    <SRS>EPSG:4549</SRS>
    <!--Origin in Spatial Reference System-->
    <SRSOrigin>525138.5,3502954,0</SRSOrigin>
    <Texture>
        <ColorSource>Visible</ColorSource>
    </Texture>
</ModelMetadata>

其中包含了它的投影以及中心点坐标。可以通过在线网址:http://epsg.io/去转换投影点击Transform coordinates按钮进入坐标转换界面。在输入经纬度转成上述文件的坐标系,然后输入中心点坐标。输出栏选择我们需要的经纬度坐标系。点击转换救获得了我们需要的坐标系。然后生成scp文件。注意虽然新版本的超图iserver已经支持osgb格式的三维文件,但是为了稳定性以及效率。需要将其转换成s3m的文件,

转换s3m文件
转换完之后就可以生成场景缓存并发布了,详细步骤可以参考//www.greatytc.com/p/b18d27dbdc36

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容