首页 / 浏览问题 / 云GIS / 问题详情
对于带孔图斑或者包含多个多边形的图斑,是否有其他接口或方法能正确计算面积?
50EXP 2023年08月15日

项目中需要计算图斑的面积,调用了超图提供的 measuerArea() 方法,官方示例代码如下:

但经过测试,发现该方法只能测量单个完整图斑的面积:

如果是带孔图斑,该方法不会去除孔的面积:

如果传入多个图斑,该方法的结算结果也只有第一个图斑的面积:

请教,对于带孔图斑,或者包含多个多边形的图斑,超图是否有其他接口或方法,能正确计算面积?

1个回答

您好,我这边确认了下确实存在该问题,目前iserver不支持查询岛洞面积。可以查询多个面对象的面积,传参时point2Ds填写如下时[{"x":100,"y":24},{"x": 100,"y":40},{"x": 120,"y":40},{"x": 120,"y":24},{"x": 100,"y":24},{"x": 110,"y":30},{"x": 110,"y":35},{"x":115,"y":35},{"x": 115,"y":30},{"x": 110,"y":30}],查询结果为两个面对象面积之和。
3,088EXP 2023年08月15日
能优化修复么,岛洞图形很常见把~
您好,我想咨询下:

1、你提到的 point2Ds 是 SuperMap iObjects Java 的方法参数吗?能否发个具体的文档链接。
2、iClient for Leaflet 是否能查询多个面对象的面积?

point2Ds是面积量算功能对应的iserver接口参数,可以直接自己构造get请求,具体参数参考:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/maps/map/area.htm

岛洞这个我这边报个需求,目前可以通过计算两次面的面积,用大面减去小面面积来绕行。

...