ArcGIS JS之 identify接口之 exceededTransferLimit属性

有一个需求,大体是要查询当前范围内的要素,查询半径自定义。设计了一下,用IdentifyTask类刚好满足需求。测试中发现,缓冲区范围之内的要素,丢失了很多。经过排查发现,ArcGIS Server配置默认返回的最大要素数量为1000,因此,查询时,如果要素数量超过了1000,之后的要素默认不显示。

本想考虑做分页查询,没有查询到相关资料,个人推测是identify查询涉及了多个图层,且空间位置不好做顺序索引,所以没有固定的顺序号,导致无法分页。

后来只能想办法,如果个数超1000,则提示一下,范围过大,要素过多。少于1000,则直接显示。

测试发现服务端返回参数如下:


ArcGIS JS官网说明如下:

因此,获取该参数,判断一下展示即可。

经过测试发现,虽然请求接口返回了该参数,但是通过ArcGIS JS函数,只能获取到results要素数组,无法获取到参数 exceededTransferLimit。

调试后发现,ArcGIS JS类库中,对数据进行了处理,并未返回该参数。

具体路径为  arcgis_js_api\library\4.17\esri\rest\identify.js

修改该类,在类中增加语句即可返回该参数

if(a.exceededTransferLimit){
   b.exceededTransferLimit= a.exceededTransferLimit
}

如下:

刷新后,即可将 exceededTransferLimit参数返回

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值