首页 / 浏览问题 / 移动GIS / 问题详情
Android 选择记录集中的数据导出问题
45EXP 2022年06月30日

选择记录集中的几条数据,对这几条数据进行导出成csv,shp,gpx文件。但是我导出我用的是DataConversion.exportCSV(path,dataset),我通过记录集获取到的数据集,不是我选择那几条数据的,而是全部的数据,这个数据集弄成我选择的那几条数据的数据集。

1个回答

您好,这里看您写的是从smidlist里面获取到数据,这个smidlist是您怎么得到的呢,是用多选动作得到的还是固定的呢,如果您是想用多选得到的话,建议您使用geometryselectedlistener,再设置多选动作,然后从监听器中取到几何对象的id,再从dataset、datasetvector以及recordset将选择的对象放到一起。

希望可以帮助到您。
3,745EXP 2022年06月30日

这里面的数据是通过列表展示的数据选择得到的SmId,因为需求是通过输入查询得到的数据,所以不能使用geometryselectedlistener,geometryselectedlistener不是选择图层上的对象获取嘛。如下图

如何通过几何对象的id,从dataset、datasetvector、recordset将选择的对象放到一起啊,能仔细的说一下嘛。
DatasetVector datasetVector = (DatasetVector) mMapControl.getMap().getLayers().get(0).getDataset();
Recordset recordset = datasetVector.query(queryParameter);
dataset = recordset.getDataset();

就像这样,先从map得到图层再得到数据集,接着用record接收datasetvector查询到的记录,最后从recordset里得到dataset哈

我也是这么操作的,但是导出的是整个图层的啊,是我写的查询语句问题嘛

您可以新建一个数据集,,将目标数据放进新的数据集再进行导出
如何创建数据集,我现在有点蒙圈了..

像这样先取到数据集集合类,再初始化一个矢量数据集信息类并设置相关信息,再用数据集集合类创建矢量数据集

Datasets datasets = mMapControl.getMap().getLayers().get(0).getDataset().getDatasource().getDatasets();
DatasetVectorInfo datasetVectorInfo = new DatasetVectorInfo();
datasetVectorInfo.setType(dataset.getType());
datasetVectorInfo.setEncodeType(dataset.getEncodeType());
datasetVectorInfo.setName("test");
datasets.create(datasetVectorInfo);
...