星图云开放平台
数字孪生树木接口
更新时间:2025-11-10 16:51:19
接口说明

该接口用于获取指定区域、版本和细节层级的3D Tiles数据,返回JSON格式的瓦片集描述文件。

调用方式

使用 API 前,需要先注册账号并完成用户认证,查看 开发指南

服务地址https://api.open.geovisearth.com/pj/getfile/46/brainsim-3dtiles/{areaCode}/V{version}/instance/tree/tileset.json?token=您的token
请求方式GET 方法
接口鉴权服务密钥授权,您需要 申请 token将 token 作为必填参数拼接在服务地址中一起请求
调用限制服务调用量的限制请点击 这里 查阅
请求参数
参数名类型规则说明是否必填缺省值
areaCodestring行政区划编码必填
versionstring当前版本,默认需要给用户最新版本,最新版本为:3,也就是V3必填
返回参数

返回值为:tileset.json​​ ,一个 JSON 格式的文件,通常用于定义​​三维瓦片集(Tileset)​​的结构和属性。
属性详情:
asset​​:规范版本和工具信息。
properties:瓦片集的全局属性(如坐标系、单位、扩展字段)
​​boundingVolume​​:瓦片的物理/地理范围,用于空间查询和裁剪。
​​geometricError​​:控制瓦片渲染细节的误差值(值越大,加载的瓦片越粗糙)。
​​refine​​:瓦片细化策略,参数:ADD:叠加子瓦片到父瓦片(渐进增强),REPLACE:用子瓦片替换父瓦片。
​​content.uri​​:指向瓦片数据文件(如 .b3dm(瓦片压缩模型)、.glb(瓦片压缩模型))。
children:子瓦片集合(递归结构)

调用示例
<!DOCTYPE html>
<html>

<head>
    <title>孪生模型展示Demo</title>
    <meta charset="utf-8">
    <script src="https://cesium.com/downloads/cesiumjs/releases/1.129/Build/Cesium/Cesium.js"></script>
    <link href="https://cesium.com/downloads/cesiumjs/releases/1.129/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
    <link rel="icon" href="https://geovisearth.com/logo.png" type="image/x-icon">
    <style>
        /* 暗黑模式全局设置 */
        :root {
            --dark-bg: #1a1a1a;
            --dark-panel: #252525;
            --dark-text: #e0e0e0;
            --dark-hover: #333333;
            --dark-active: #3d3d3d;
            --dark-border: #3a3a3a;
            --primary-color: #4a8cff;
            --primary-hover: #5d9bff;
            --tag-bg: #b8eee7;
            --disabled-bg: #3a3a3a;
            --disabled-text: #777777;
        }

        body {
            margin: 0;
            padding: 0;
            display: flex;
            flex-direction: column;
            height: 100vh;
            font-family: 'Segoe UI', 'PingFang SC', sans-serif;
        }

        .content-container {
            display: flex;
            flex: 1;
            overflow: hidden;
        }

        /* 去除Cesium logo */
        .cesium-widget-credits {
            display: none !important;
        }

        /* 3D视图容器 */
        #cesium-container {
            flex: 1;
            position: relative;
        }
    </style>
</head>

<body>
    <!-- 内容容器 -->
    <div class="content-container">
        <div id="cesium-container"></div>
    </div>

    <script>
        //#region 1、初始化Cesium Viewer

        const viewer = new Cesium.Viewer('cesium-container', {
            geocoder: false, // 隐藏搜索
            homeButton: false, // 隐藏主页
            sceneModePicker: false, // 隐藏二三维转换
            baseLayerPicker: false, // 隐藏图层选择控件
            navigationHelpButton: false, // 隐藏帮助按钮
            animation: false, // 隐藏时钟
            timeline: false, // 隐藏时间轴
            fullscreenButton: false, // 隐藏全屏
            vrButton: false, // 隐藏双屏模式
            infoBox: false, // 隐藏点击 entity 信息框
            selectionIndicator: false, // 隐藏点击 entity 绿框
            shouldAnimate: true,
        });
        if (!viewer.scene.context.webgl2) {
            console.error("WebGL 2.0 not supported");
        }
        // 最远可视距离(单位:米)
        viewer.scene.screenSpaceCameraController.maximumZoomDistance = 20000000;
        viewer.scene.fxaa = true; //开启抗锯齿
        viewer.extend(Cesium.viewerCesium3DTilesInspectorMixin);
        viewer.imageryLayers.remove(viewer.imageryLayers.get(0));

        //#endregion

        //#region 2、加载星图地球影像和地形

        // 注册星图云账号获取的token:
        // 参考地址:https://datacloud.geovisearth.com/support/map/summary

        let token = '85ea0a7350e7e2bf600cc3e34a16b4b1';

        // 星图影像
        var geovisMap = new Cesium.UrlTemplateImageryProvider({
            url: "https://api.open.geovisearth.com/pj/base/v1/img/{z}/{x}/{y}?format=webp&tmsIds=w&token=" + token,
            maximumLevel: 18,
        });
        viewer.imageryLayers.addImageryProvider(geovisMap);

        // 星图影像注记
        var geovisCia = new Cesium.UrlTemplateImageryProvider({
            url: "https://api.open.geovisearth.com/pj/base/v1/cia/{z}/{x}/{y}?format=webp&tmsIds=w&token=" + token,
            maximumLevel: 18,
        });
        viewer.imageryLayers.addImageryProvider(geovisCia);

        (async function () {
            const terrainProvider = await Cesium.CesiumTerrainProvider.fromUrl(
                "https://api.open.geovisearth.com/pj/base/v1/terrain?token=" + token,
                {
                    requestWaterMask: true,
                    requestVertexNormals: true,
                }
            );
            viewer.terrainProvider = terrainProvider;
        })();

        //#endregion

        //#region 3、加载3D Tiles模型

        let tileset;
        // 加载3DTiles模型
        loadCityModel();

        // 加载城市模型函数
        async function loadCityModel() {
            try {
                // 加载3DTiles模型
                let tileset = await Cesium.Cesium3DTileset.fromUrl("https://api.open.geovisearth.com/pj/getfile/46/brainsim-3dtiles/999999/V3/instance/tree/tileset.json?token=" + token);
                tileset.maximumScreenSpaceError = 80;
                viewer.scene.primitives.add(tileset);
                // 定位到模型
                await viewer.zoomTo(tileset);
            } catch (error) {
                console.error(`加载失败: ${error}`);
                alert(`加载失败: ${error.message}`);
            }
        }

        //#endregion
    </script>
</body>

</html>