在使用SuperMap for WebGL开发时,时常需要将超图的SuperMap.Geometry和GeoJSON进行相互转换。比如在做空间叠加分析时需要传入一个Geometry作为参数,而我们在大多数情况下是GeoJSON数据。我并没有找到直接将GeoJSON转为超图Geometry的方法,但是找到了将WKT转为超图Geometry的方法。关于GeoJSON和WKT互转有很多方法,比如前端JS插件terraformer-wkt-parser。查询完毕我们获得的结果为超图Geometry,我们可以将其转换为GeoJSON进行前端渲染。
下面就是转换方法:
1,SuperMap.Geometry转GeoJSON
var smGeometry = new SuperMap.Geometry.Point(-111.04, 45.68);
var smGeoJSON = new SuperMap.Format.GeoJSON();
var geoJSONStr = smGeoJSON.write(smGeometry);
2,WKT字符串转SuperMap.Geometry
var wktStr = 'POLYGON((116.37447088956512 40.00039762507984,116.38082727408998 40.00055355996213,116.3809628154319 39.99635760612853,116.37447088956512 40.00039762507984))';
var polygon = SuperMap.Geometry.fromWKT(wktStr);