首页 / 浏览问题 / 组件GIS / 问题详情
通过点面相交 查询点的数据,取数据过慢
209EXP 2019年05月14日

我使用点面相交,取出点的数据,然后对点数据进行操作,但是取数据的时候特别慢,我使用的方式是:

由于数据量比较大(大概有十几万条的样子),取数据特别的慢,

Map<Integer,Feature>  features= queryRecordset.getAllFeatures(); 这一步取数据特别慢,

请问一下,有别的提取数据的方式吗?

1个回答

你好,你是想通过点面相交获取与面相交的点数据集吗?然后需要对点数据做什么操作呢
9,137EXP 2019年05月14日
点数据集已经取出来了,现在想要对取出的数据集进行操作,但是数据集较大,执行到

Map<Integer,Feature>  features= queryRecordset.getAllFeatures(); 这一步取数据特别慢,

请问一下,有别的取出数据集的方法吗?或者有其他好的解决方案呢?
你具体是想做什么操作?
就是操作点的数据信息,例如经纬度字段,SMID等
你可以直接通过recordset来获取这些字段的值啊  为啥你要获取feature呢?
没有看到那个方法能够做到这种效果,为什么feature 不可以呢??
不是说不可以,是根据你的需求来说,直接用recordset来获取字段值。这样时间就很快
应该怎样获取呢,没有看到通过recordset获取多条数据的字段值的方法
通过查询的方式获取到你需要查询字段值的记录,然后循环记录集recordset,获取字段值(recordset.getFieldValue)
我通过点面相交,查询出来的是一个RecordSet  ,方法如下:

Recordset queryRecordset = datasetVector.query(parameter);

只有一个Recordset,怎样个进行循环recordset呢??
比如说你查询SmID<40的数据,那么你获取的记录集的个数就是39个,这个你可以通过recordset.getRecordCount来获取。循环记录集可以用isEOF这个方法,帮助文档上有这些方法的详细介绍,具体参考一下帮助文档
解决了,谢谢
...