速度更快、体积更轻、性能更好的轻量超图iServer

Related tags

CSS iServer-lite
Overview

iServer-lite

国外仓库| 国内仓库

iServer-lite是一个基于SuperMap_iClient3D_10i(2020)SuperMap iServer 10i(2020)定制开发的小程序,用于发布高性能海量s3mb地图数据,相比于超图原生iServer具有如下特点:

  • 无需试用,无需付费,直接使用(仅供测试学习之用
  • 服务启动速度快(毫秒级
  • 跨平台运行,无需任何前置环境要求(Windows双击程序即可运行,Linux命令行直接运行
  • 程序体积小(目前不超过30MB
  • 加载效率更高(基于Go开发)
  • 支持海量s3mb数据加载,可以完全替代原生iServer发布的s3mb地图服务

本程序目前实现了s3mb地图数据格式的加载,不包含任何GIS分析属性查询(拾取)逻辑,适用于对GIS分析功能要求不高并需要高性能展示三维地图的场景,对于仅需要高性能展示海量数据的场景,可以完全替代超图原生iServer,方便前端同学日常学习超图JSAPI,并了解数据从生产到上图的整个过程。

属性查询(拾取)功能正在开发完善中。。。

本程序需要超图iDesktop软件提供原始数据制作,官方软件下载地址:

如需完整的iServer功能,请自行下载超图官方iServer软件

使用方法

先拉取代码,运行demo

git clone https://github.com/iServer-lite/iServer-lite.git

目录结构如下

iServer-lite
 ├── image
 ├── index.html						# 示例HTML文件
 ├── iServer-lite					# Linux二进制可执行程序
 ├── iServer-lite.exe				# Windows可执行程序
 ├── README.md
 ├── s3mb							# s3mb缓存文件夹
 │   └── CBDCache						# 项目文件夹
 │       ├── Building@CBD					# 项目中子图层(建筑物)
 │       ├── Ground2@CBD					# 项目中子图层(地表2)
 │       ├── Ground@CBD						# 项目中子图层(地表1)
 │       ├── Tree@CBD						# 项目中子图层(树木)
 │       └── Waters@CBD						# 项目中子图层(水系)
 ├── supermap-lib					# 超图官方JSAPI
 │   ├── Cesium
 │   │   ├── Assets
 │   │   ├── Cesium.js
 │   │   ├── ThirdParty
 │   │   ├── Widgets
 │   │   └── Workers
 └── udbx							# udbx数据集(用于未来属性查询(拾取))
     └── CBD							# 项目文件夹
         └── CBD.udbx						# 项目中数据源(里面有多个数据集)

如果是Windows系统,直接双击运行iServer-lite.exe文件,开启服务

第一次运行系统会弹出网络访问许可信息框,点击允许

如果是Linux系统,可以把iServer-lite写入到系统服务,直接使用systemctl start iServer-lite指令开启服务

iServer-lite服务开启后,需要使用类似vscodeLive Server插件功能的代理服务,用现代浏览器打开index.htmlEdge访问效果如下:

数据使用的是超图官方CBD示例数据,JSAPI使用的是超图官方的iClient3D,前端开发流程跟超图官方一致,代码逻辑完全一样,只需事先把s3mb文件夹项目层次关系整理好即可,目前只支持SceneaddS3MTilesLayerByScp方法加载指定图层数据

由于数据大小限制,故没有提交官方CBD.udbx文件,目前只是用了一个空文件占位

http://127.0.0.1:666/rest/realspace/datas/{项目文件夹}/{项目数据源的子图层}/{项目数据源的子图层}/config
http://127.0.0.1:666/rest/realspace/datas/CBDCache/Building@CBD/Building@CBD/config

s3mb文件夹目录层次非常重要,请仔细核对结构,目前不支持修改目录层次

加载核心代码如下

let viewer = new Cesium.Viewer("cesiumContainer");
let promise = [];
let tileArr = [
    "Building@CBD",
    "Ground@CBD",
    "Ground2@CBD",
    "Tree@CBD",
    "Waters@CBD",
];
for (let index = 0; index < tileArr.length; index++) {
    promise.push(
        viewer.scene.addS3MTilesLayerByScp(
            `http://127.0.0.1:666/rest/realspace/datas/CBDCache/${tileArr[index]}/${tileArr[index]}/config`,
            {
                name: tileArr[index],
            }
        )
    );
}
Promise.all(promise).then((layers) => {
    viewer.flyTo(layers[2]);
});

以上就是使用iServer-lite程序的完整流程了

数据制作

用超图官方iDesktop软件完成倾斜影像、人工建模等数据入库,一般情况下,iDesktop默认使用的数据源是udb文件,这个不影响s3mb缓存文件的生成,不过为了未来可以直接使用属性查询(拾取)功能,建议先把udb文件转换成udbx文件,然后在用udbx文件去生成s3mb缓存文件,这样即可以方便移植和备份元数据,又方便可以使用iServer-lite进行属性查询和拾取。

You might also like...
Releases(v1.0.0)
  • v1.0.0(Jul 24, 2021)

    • 无需试用,无需付费,直接使用(仅供测试学习之用
    • 服务启动速度快(毫秒级
    • 跨平台运行,无需任何前置环境要求(Windows双击程序即可运行,Linux命令行直接运行
    • 程序体积小(目前不超过30MB
    • 加载效率更高(基于Go开发)
    • 支持海量s3mb数据加载,可以完全替代原生iServer发布的s3mb地图服务
    Source code(tar.gz)
    Source code(zip)
    iServer-lite(15.24 MB)
    iServer-lite.exe(25.90 MB)