ArcGIS API for JavaScript开发-前端大数据量显示测试之一

0
分享 2017-03-14
Portal加载大数据量的FeatureLayer分析
1.测试环境说明
Portal 10.4.1CSV格式数据,含坐标信息,共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块。
文章来源:http://www.jianshu.com/p/2f41ed7ec0fd
 
ArcGIS API for JavaScript开发-前端大数据量显示测试之一:http://zhihu.esrichina.com.cn/article/2829
ArcGIS API for JavaScript开发-前端大数据量显示测试之二:http://zhihu.esrichina.com.cn/article/2830

0 个评论

要回复文章请先登录注册