浏览问题
等待回复
精选文章
申请试用
资源中心
漏洞修复
注册
|
登录
SuperMap技术问答社区
我要
提问
智能客服
首页
/
浏览问题
/
组件GIS
/
问题详情
AppendFields方法效率慢,有无替代接口
15738126...
35EXP
2022年05月16日
使用产品:supermap iobjects.net 10.2.1
问题描述:现在我有一个点数据集,有字段“点号”,但是没有点的高程信息;我通过别的方法得到了点的高程,存在了一个属性表中,表中有“点号”和“高程”两个字段,我想要把点高程添加到点数据集的属性表中。目前我是以“点号”为连接字段,调用DatasetVector.AppendFields方法实现“高程字段”的追加。但是数据量有几万条,这样处理太慢了。想问一下有没有更快的方法,可以解决这个问题
组件
请
登录
或者
注册
后回答这个问题。
1个回答
您好,append操作属于表的join操作,数据记录多,连接操作肯定慢。建议您可以通过批处理(Recordset.BatchEditor)的方式,调用recordset.addNew(Geometry geometry,java.util.Map<java.lang.String,java.lang.Object> values) 接口,实现批量提交更新,减少对表的操作,提升字段值更新效率。
希望可以帮到您。
刘程贤
2,253EXP
2022年05月16日
现在的情况是两个表数据量都很大,点号是乱序的。表1中有10个不同的点,包括点号和高程;表2中也有10万个不同的点,但是只有点号没有高程。我要怎么效率较高地把表1中的高程信息,添加到表2中呢?
这种情况,两边的记录在顺序上并不是一一对应的,感觉无法采用遍历表1,对表2采用 AddNew()的方法添加信息
您好,由于两边的记录在顺序上并不是一一对应的,如果数据体积不是很大的情况下,建议您可以尝试将表1的数据读取到内存,根据字段“点号”的值创建Dictionary,然后遍历表2时从Dictionary中取值,批处理更新高程值,这样效率会快一些。
请
登录
或者
注册
后再添加评论。
智能推荐
相关问题
相关文章
推荐教程
组件从倾斜摄影模型提取高度效率太慢
组件中是否有判断模型穿过三维面的接口或方法?
用Datasets.Create方法创建临时数据集加载缓慢
用Replace方法怎么将数据中所有小于0的value值替换成无效值
如何提高倾斜摄影裁剪效率?
AppendFields 方法添加属性字段,如何建立索引加快速度
plugin的3D模型俯仰角可以有什么方法代替吗?
十字路口优化替代方案
热门文章
查看更多>
关注我们
超图软件官网
SuperMap Online
地图慧
帮助中心
备案信息
技术资源中心
...