美文网首页
AGS JS开发-前端大数据量显示测试之一

AGS JS开发-前端大数据量显示测试之一

作者: 辛立 | 来源:发表于2017-03-12 14:40 被阅读0次

    Portal加载大数据量的FeatureLayer分析


    1.测试环境说明

    Portal 10.4.1
    CSV格式数据,含坐标信息,共78447条,大小13M

    2.要素服务准备

    (1)在我的内容中,使用上传功能上传CSV数据并发布成要素服务。
    (2)上传与发布服务时间共耗费2分钟左右。
    (3)要素服务默认设置的图层返回数限制MaxRecordCount: 2000。

    3.Portal中加载要素服务过程分析

    在我的地图中加载要素服务时,会提示:“[图层名]未完全绘制,因为地图中要在该区域显示的要素过多。请尝试放大或设置图层的可见范围。”
    跟踪Portal中加载要素服务的过程,其流程如下:
    (1)读取要素服务在ArcGIS Server中的实际服务地址信息,请求地址:
    http://[portalbaseurl]/sharing/rest/content/items/[itemid]?f=json&token=[token]
    (2)读取Server中该要素服务的元数据信息,请求地址:
    http://[serverbaseurl]/rest/services/Hosted/[servicename]/FeatureServer?f=json&token=[token]
    (3)读取Server中该要素服务具体图层的元数据信息,请求地址:
    http://[serverbaseurl]/rest/services/Hosted/[servicename]/FeatureServer/0?f=json&token=[token]
    (4)获取要素服务的总记录数,请求地址:
    http://[serverbaseurl]/rest/services/Hosted/[servicename]/FeatureServer/0/query?f=json&returnIdsOnly=true&returnCountOnly=true&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&token=[token]
    (5)开始读取要素服务数据,并绘制在前端。读取过程分6次,每次按不同的范围条件读取。请求地址:
    http://[serverbaseurl]/rest/services/Hosted/[servicename]/FeatureServer/0/query?f=json&returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry=[geometry]&geometryType=[geotype]&inSR=[wkid]&outFields=*&outSR=[wkid]&token=[token]
    第一次读取了2000条要素数据,且返回值中exceededTransferLimit: true。
    第二次读取了950条要素数据,且返回值中exceededTransferLimit: false。
    第三次读取了2000条要素数据,且范围条件与第一次的一样。
    第四次读取了1条要素数据。
    第五次读取了36条要素数据。
    第六次读取了1条要素数据,且范围条件与第四次的一样。

    4.Portal中加载要素服务小结

    1. Portal不会加载要素服务中的所有数据。
    2. 加载时会将当前范围分割成6块,分别读取6块范围内的数据。
    3. 只要读取的某个小块范围的数据超过图层返回数限制,就会给出图层未完全绘制的提示信息。
    4. 由于是分多次请求数据,所以显示在前端的总要素条数会超出图层设置的限制数。

    5.JS中使用FeatureLayer加载大数据量分析

    使用JS中的FeatureLayer加载上述发布的要素服务,加载流程与Portal一样,也是分成6块范围(范围各不相同)加载。但需要注意的是:并不是所有情况下都会分成6块范围。更换要素服务测试时发现,当前范围分成了9块。

    相关文章

      网友评论

          本文标题:AGS JS开发-前端大数据量显示测试之一

          本文链接:https://www.haomeiwen.com/subject/oghrgttx.html