ArcIMS分页查询

     当地图中的数据较多的时候,会造成ArcIMS服务器性能的剧烈下降。当图层中的地理要素feature超过30万的时候,甚至会造成java内存溢出错误。因此ArcIMSserver在配置文件中对向请求返回的地理要素的个数进行了限制。对于图片请求,配置文件是\ArcGIS\ArcIMS\Server\etc\aimsqs.cfg,   <PARAMETER name="imagefeaturelimit" value="-1" />,表示没有限制,里面还有一些图片质量,字体路径之类的配置,也都很有用,例如修改图片质量可以有效的降低网络流量。对于feature查询请求, 配置文件是\ArcGIS\ArcIMS\Server\etc\aimsms.cfg, <PARAMETER name="featurelimit" value="10000" />,如果查询图层的featuer数量超过这个数目,也只能返回10000条,你会明显感觉到查询速度降低了很多。


      对大量数据的访问通常使用分页查询,这样做还有一个好处是可以让系统更加稳定,避免大量数据操作过程中由于资源耗尽导致出错。利用ArcIMS提供的Filter对象可以很方便的实现分页查询。可以写一个pager对象,来实现分页功能。查询返回pager对象即可。


      分页首先要知道一共feature总的个数,这是filter要这样写:filter.setSkipFeatures(true);这时查询不返回具体feature,只返回符合条件的feature的总的个数,结果用这个语句查询:fLayer.getRecordset().getFeaturesCount();.


      然后就是根据当前的页码位置(cursor)和页面大小(pagesize)取每页的数据:


        filter.setBeginRecord(this.cursor);
        filter.setFeatureLimit(this.pageSize);


      使用这个filter就可以得到相应页面的数据了。
      使用上面这几个特性,分页就可以很容易的实现了。

你可能感兴趣的:(分页查询)