Cesium 之解析supermap iserver rest api几何体为Cesium实体(含多面体、带孔洞的转换)

本文介绍了如何使用SuperMap iClient的JavaScript库将SuperMap iServer REST API返回的几何体数据转换为GeoJSON格式。通过示例代码展示了转换过程,并指出在转换过程中遇到的问题,即`toGeometry()`方法后多边形几何体的空洞信息丢失,寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        可参考上一篇文章arcgis server rest api的几何体转为cesium实体https://blog.youkuaiyun.com/wokao253615105/article/details/123595805文章中实现了GeoJson转为Entity,本篇只介绍如何将supermap iserver rest api几何体转为GeoJson,超图几何体格式如下:

 本来想通过直接写代码实现转换为GeoJson,但是发现转换不完整。无奈还是通过官方提供的iClient实现。

官方api帮助地址

https://iclient.supermap.io/libs/iclient8c/apidoc/files/SuperMap/REST/ServerType/ServerGeometry-js.html

本文使用了SuperMap-8.1.1-17729版本的js,实际使用时,只需引入文件夹下的SuperMap.Include.js

 代码片段如下:

                        geometry = feature.geometry;
                        if (!geometry || geometry.points.length == 0) break;
                        // 临时缓存坐标数据
                        let smPoints = [];
                        feature.geometry.points.forEach(p => {
                            smPoints.push({
                                x: p.x,
                                y: p.y
                            })
                        })
                        var superRestGeomtry = new SuperMap.REST.ServerGeometry(geometry)
                        // 执行该步后multi的geometry会为空,暂不清楚原因
                        var supergeometry = superRestGeomtry.toGeometry();
                        var smGeoJSON = new SuperMap.Format.GeoJSON();
                        var smGeoJSONStr = smGeoJSON.write(supergeometry);
                        featureJson = JSON.parse(smGeoJSONStr);
                        // 重置数据
                        feature.geometry.points = smPoints;

 var supergeometry = superRestGeomtry.toGeometry();执行该步后multi的geometry会为空,暂不清楚原因,有知道的朋友帮忙解答下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xizhjxust_GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值