作者:皇皇
使用iMobile for Android添加面,绘制面的时候会遇到两个面对象相邻,但不相交,屏幕上绘制又不方便点击边界点,所以需要通过程序来自动裁剪。以下就是实现的思路及关键代码。
绘制面对象的时候和已有面重叠一部分,如图1
图一
提交编辑的时候进行空间查询,查询到与新绘制的面(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();
结果如图二
图二
完整代码关联地址:http://support.supermap.com.cn/product/search.aspx?querystr=自动裁剪