基于ArcGISServer进行分页矢量查询的方案进阶

文章版权由做者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/前端

1.    背景

       在空间查询中,咱们对查询结果要求以分页形式进行展现。Geoserver的WFS服务提供了maxFeatures 、startIndex以及sortBy这样的参数,经过设置这些参数的值便可实现分页。可是arcgisserver中目前没有这类能够实现分页查询的参数,那么该如何解决这个问题?这里我给出三个不断优化的解决思路。缓存

2.方案1——获取全部查询结果前端分页

       该方案顾名思义,获取到全部查询结果后在前端进行数据组织和分页。服务器

       优势:实现简单。微信

       缺点:优化

       a.当查询返回结果过大时,数据查询和传输时间都会很长 spa

       b.没有真正体现分页的优点,前端获取了全部数据,却数据展现率很低 3d

       c.arcgis一次查询返回结果的限制(需在AGS中手动设置最大返回数)server

       d.对arcgis服务器也有不小的压力blog

3.方案2——后台对全部查询结果进行缓存以支持前端分页

       后台进行arcgis查询,将查询返回的结果所有缓存:包括数据总数以及数据详细信息。前端根据返回的总数来进行分页设置。进行分页跳转时,向后台发送请求后台根据缓存数据进行对应的分页数据获取和返回。索引

       优势:

       a.实现相对简单

       b.查询返回给前端的数据量大大减小,减小数据传输耗时,加速查询效率。

       缺点:

       a.后台依然要获取到全部查询信息,ags的查询耗时

       b.查询数据量太大,对ags服务器的压力也不小

       c.缓存数据须要定时清理,不然形成太多没必要要的缓存数据

       d.依然须要处理设置AGS单次查询的最大返回数据量

4.方案3——基于ObjectID实现分页查询

        a.先进行仅返回objectID字段的查询,获取到全部结果的总数和主键值,前端进行分页。

 

       b.点击分页操做时,经过每一个页面的objectID进行指定查询,展现结果。

       优势:

       a.仅查询ObjectID的方式不受ags默认返回数据量限制,并且返回结果数据量少,能够减小传输耗时。

    

       b.ags对于仅查询ObjectID时,能够经过空间索引表快速返回查询结果(无需经过ObjectID再去关联查询属性数据表),其效率要高于还需返回其余属性信息的查询。能够大大提升查询效率。

 

 

                     -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                           若是您以为本文确实帮助了您,能够微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                

相关文章
相关标签/搜索