首页 / 浏览问题 / 移动GIS / 问题详情
android如何查询数据集数据以分组的形式获取每组总数
sm
23EXP 2020年10月16日
你好,我想分组获取每组数据的总数应该怎么办?

例如:我要查学校图层里的数据,查询大学,小学,中学各有多少所应该怎样增加查询条件?

1个回答

您好,在查询参数QueryParameter中可以设置查询的分组字段,QueryParameter.setGroupBy(java.lang.String[] value),这样就可以获取到大学、小学对应的个数。或者可以直接遍历recordset,直接计算出大学、中学、小学的数量。

9,197EXP 2020年10月16日

请问,我已经获取到到分组信息,但是数量应该怎么获取;

这是我返回来的数据,没看到每组的总数.

返回记录集recordset中,你看一下有没有一个字段为Count的字段,然后获取他的字段值
我获取的返回值是GetFeaturesResult,没有你说的recordset.
您那边使用的是什么产品,用的是什么查询呢

查询超图9D iserver的数据服务,

查询代码:

/**
 * 分组查询信息
 */
public GetFeaturesResult Selectiserver(String sql, String[] dtnames) {
    QueryParameter parameter = new QueryParameter();
    parameter.attributeFilter = sql;
    parameter.groupBy="类别";
    MyEventListener eventListener = new MyEventListener();
    GetFeaturesBySQLParameters sqlParameters = new GetFeaturesBySQLParameters();
    sqlParameters.datasetNames = dtnames;
    sqlParameters.queryParameter = parameter;
    GetFeaturesBySQLService sqlService = new GetFeaturesBySQLService(DBUtil.iserverurl + dataurl);
    sqlService.process(sqlParameters, eventListener);
    try {
        eventListener.waitUntilProcessed();
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    }
    return featuresResult;
}
查询代码是按照supermap技术资源中心里的示例代码写的.

我看您的代码使用的是iMobile Lite for Android,目前该产品已经开源了,不提供支持了,您那边开源结合源码调试一下,谢谢。开源地址:https://github.com/SuperMap/iMobile-Lite-for-Android

...