AGOL 托管要素服务比 maxRecordCount 多 returns 个要素

AGOL hosted feature service returns more features than maxRecordCount

我正在使用 sf 包在 R 中对 ArcGIS Online 托管要素服务进行一些实验。

我不明白为什么这个请求的响应包含超过 60k 个特征: https://services.arcgis.com/nSZVuSZjHpEZZbRo/ArcGIS/rest/services/Rijksmonumenten/FeatureServer/0/query?where=1%3D1&outFields=%2A&returnCountOnly=false&f=geojson

根据服务参数maxRecordCount为10000: https://services.arcgis.com/nSZVuSZjHpEZZbRo/ArcGIS/rest/services/Rijksmonumenten/FeatureServer/0?f=json

我以为我必须使用分页,但事实并非如此。因此我很惊讶。有人可以解释一下吗。

这是我要点的 link,其中包含 R 代码: https://gist.github.com/FrieseWoudloper/47f4dcf68be39bff9dfaf2cd57610db3

此致, 威利

使用 wireshark 网络数据包检查器,并将协议方案从 https 更改为 http,你可以看到 st_read 正在为你做分页,并向服务器发出 7 次请求以获取所有数据。每个请求都有不同的请求偏移量,然后将 10,000 条记录的结果集加上最后几条记录连接起来。

OGR 的 GeoJSON 驱动程序正在执行此操作,因此 sf 免费获取。我怀疑它是由此处记录的 FEATURE_SERVER_PAGING 选项控制的:

https://www.gdal.org/drv_geojson.html#

(注意我切换到 http 因为它更清楚地看到未加密的频道发生了什么,同样的事情发生在 https 上)