iMobile for Android技术文章-面自动裁剪

时间:2022-05-31 16:27:07

作者:皇皇

使用iMobile for Android添加面,绘制面的时候会遇到两个面对象相邻,但不相交,屏幕上绘制又不方便点击边界点,所以需要通过程序来自动裁剪。以下就是实现的思路及关键代码。
绘制面对象的时候和已有面重叠一部分,如图1
iMobile for Android技术文章-面自动裁剪
图一

提交编辑的时候进行空间查询,查询到与新绘制的面(georegion)相交的所有对象

Recordset recordset = datasetVector.query(georegion, 0.001, CursorType.DYNAMIC);
循环Recordset,与新绘制的面(georegion)进行擦除操作
recordset.moveFirst();
while (!recordset.isEOF()) {
if(recordset.getFieldValue("SMID").equals(id))
{
recordset.moveNext();
continue;
}
georegion=(GeoRegion)Geometrist.erase(georegion,recordset.getGeometry());
recordset.moveNext();
}

循环擦除完成后用新面对象替换已有的面对象

recordset.edit();
recordset.setGeometry(georegion);
recordset.update();

结果如图二
iMobile for Android技术文章-面自动裁剪
图二

完整代码关联地址:http://support.supermap.com.cn/product/search.aspx?querystr=自动裁剪