iMobile for Android技术文章-面自动裁剪
2016-05-03 08:31
363 查看
作者:皇皇
使用iMobile for Android添加面,绘制面的时候会遇到两个面对象相邻,但不相交,屏幕上绘制又不方便点击边界点,所以需要通过程序来自动裁剪。以下就是实现的思路及关键代码。
绘制面对象的时候和已有面重叠一部分,如图1
图一
提交编辑的时候进行空间查询,查询到与新绘制的面(georegion)相交的所有对象
循环擦除完成后用新面对象替换已有的面对象
结果如图二
图二
完整代码关联地址:http://support.supermap.com.cn/product/search.aspx?querystr=自动裁剪
使用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=自动裁剪
相关文章推荐
- Android Studio 使用 Lambda表达式
- Ubuntu Android 开发(二) Android SDK 安装
- Android 猜歌曲游戏开发
- Android Service 组件基础应用
- 简易版停车管理系统(Android)
- 【风马一族_Android】Android学习
- 通过UserAgent判断设备为Android、Ios、Pc访问
- Android Service 回顾
- Android ClassyShark vs ApkTool
- 自动批量安装APK
- Android 使用Fragment界面向下跳转并一级级返回
- android fragment 跳到另一个fragment
- android FRAMENT的切换(解决REPLACE的低效)
- android studio使用SQLite时错误
- Android远程服务例程
- 持久化保存Parcelable实践
- Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突
- android全系统动态二进制分析--CopperDroid
- Android studio 如何打包项目,与版本升级
- 神奇的504 Bad Gateway Timeout