前言
MapGIS IGServer是一款专业GIS服务器,提供丰富的地图服务、数据服务、空间分析服务、三维服务、三维可视化服务等。MapGIS数字孪生平台是一款基于MapGIS IGServer的数字孪生应用开发平台,提供丰富的数字孪生应用开发工具和组件,帮助用户快速构建数字孪生应用。在MapGIS数字孪生平台中调用IGServer提供的服务,可以实现数字孪生应用的数据交互、空间分析等功能。本文以MapGIS数字孪生平台对接IGServer要素服务为例,介绍如何使用MapGIS数字孪生平台调用IGServer要素服务。
IGServer要素服务简介
要素服务是IGServer提供的一种数据服务,要素服务提供了一系列的接口,包括查询要素、编辑要素、删除要素、新增要素等。
MapGIS数字孪生平台对接IGServer要素服务
对接有两种方案:
- 查询IGServer的API文档,根据文档构造对应的请求,通过MapGIS数字孪生平台的HTTP请求组件发送请求,获取返回结果。
- 使用MapGIS Client for Js中的conmmon层提供的与IGServer交互的类,直接调用IGServer的接口。
本文选择第二种。
下载MapGIS Client for Js
npm install @mapgis/webclient-common
下载完成后,可以在node_modules\@mapgis\webclient-common\dist中找到对应的js文件。其中的es5文件夹中是es5版本的js文件,webclient-common-es6.min.js是es6版本的,可以根据项目需求选择对应的版本。
调用接口
可以参考文档,其中的服务模块(Service) 提供GIS服务接口的封装,方便GIS服务接口的调用。
以下是查询要素的示例代码:
async function queryFeatures() {
const featureSerer = new zondy.service.FeatureServer(
{ url: 'http://localhost:8089/igs/rest/services/地铁数据/FeatureServer', }
);
const data = await featureSerer.queryFeatures({
layerId: '5',
// resultRecordCount: 20 // 返回20条数据
})
if (data.succeed) {
const { features } = data.data
features.forEach(feature => {
const { attributes, geometry } = feature
const x = geometry.coordinates[0]
const y = geometry.coordinates[1]
addLabel(attributes.NAME, new MapGISCloudRender.Cartesian3(x, y, 50.0))
}
)
}
}
查询结果用于添加二维注记,代码如下:
// 添加二维注记
function addLabel(text, position) {
const label = new MapGISCloudRender.MapGISLabel(position, {
text,
labelStyle: 'YiYuan',
isAutoFly: true,
});
zdScene.addCovering(label);
}

总结
本文介绍了如何使用MapGIS数字孪生平台对接IGServer要素服务,通过调用MapGIS Client for Js中的类,可以直接调用IGServer的接口,实现数字孪生应用的数据交互、空间分析等功能。如果需要做其他空间分析、目录服务等等,也可查询webclient-common的文档,根据文档调用对应的接口即可。
1037

被折叠的 条评论
为什么被折叠?



