可参考上一篇文章arcgis server rest api的几何体转为cesium实体https://blog.youkuaiyun.com/wokao253615105/article/details/123595805文章中实现了GeoJson转为Entity,本篇只介绍如何将supermap iserver rest api几何体转为GeoJson,超图几何体格式如下:
本来想通过直接写代码实现转换为GeoJson,但是发现转换不完整。无奈还是通过官方提供的iClient实现。
官方api帮助地址
本文使用了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会为空,暂不清楚原因,有知道的朋友帮忙解答下。