首页 / 浏览问题 / WebGIS / 问题详情
vue2.0 如何加载 s3mb 数据
51EXP 2024年05月09日

模型文件是 超图软件生成的 .scp 文件夹里有多个 .s3mb 文件,我当前工程是 vue2.0 的,希望以静态static 文件夹方式引入 原生 cesium 加载 超图这个模型,但是我引入

import S3MTilesLayer from './S3M_module/S3MTiles/S3MTilesLayer';

界面就卡死了。

请求帮助

补充代码

<template>
    <div id="cesiumContainer" style="width: 100%; height: 70vh;"></div>
</template>

<script>
import S3MTilesLayer from './S3M_module/S3MTiles/S3MTilesLayer';
export default {
    name: 'CesiumMap',
    mounted() {
        // 确保 Cesium 全局对象可用
        // if (typeof Cesium !== 'undefined') {
        //     const viewer = new Cesium.Viewer(this.$el, {
        //         imageryProvider: new Cesium.IonImageryProvider({ assetId: 2 }),
        //         baseLayerPicker: false,
        //         geocoder: false
        //     });
        // } else {
        //     console.error('Cesium is not loaded');
        // }

        let viewer = new Cesium.Viewer('cesiumContainer',{
        });
        let scene = viewer.scene;
        let layer = new S3MTilesLayer({
            context : scene._context,
            url: '.D:\\work\\eserver\\supermap-s3m-load\\s3m-spec\\S3M_SDK\\S3M_JS\\data\\CBD\\cbd.scp'
        });

        scene.primitives.add(layer);

        layer.readyPromise.then(function() {
            scene.camera.setView({
                destination : new Cesium.Cartesian3(-2181968.890329965, 4385313.17843029, 4072712.8241634783),
                orientation : {
                    heading : 3.1756648661534443,
                    pitch : -0.3715184468182904
                }
            });
        }).otherwise(function(error) {
            console.log(error);
        });

    }
}
</script>

1个回答

需求很简单,就是想把超图的模型预览一下。
51EXP 2024年05月09日
除了这个插件还有别的方式使用vue加载 s3mb,麻烦告诉下
你这个给的示例是加载 iserver 的 数据服务的,我本地没有iserver,只有.scp文件及同级.s3mb文件夹。这个该怎么加载
提供的 SuperMap3D.js 中有'realspace',这个字符串的强制判断
不使用iserver服务的话,就只能使用之前的github方法了
...