有没有办法获得分页的立交桥查询结果? [英] Is there a way to get results for an overpass query paginated?

查看:9
本文介绍了有没有办法获得分页的立交桥查询结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我想在柏林开餐馆,我有这样的查询:

[out:json];
area["boundary"="administrative"]["name"="Berlin"] -> .a;
(
    node(area.a)["amenity"="restaurant"];
); out center;

假设这个结果集太大,无法在一个要覆盖的请求中提取。我希望能够使用类似于SQL的OFFSETLIMIT参数来获取前100个结果(0-99),处理它们,然后获得下一个100(100-199),依此类推。

我在API中找不到这样做的选项,有可能吗?如果不是,我应该如何查询我的数据以将其划分为更小的集合?

我知道我可以增加内存限制或超时,但这仍然会让我处理一个巨大的请求,而不是处理n个小的请求,这就是我想要的方式。

推荐答案

OFFSETOverpass接口不支持,但您可以通过out语句中的一个额外参数来限制查询返回的结果数。以下示例将仅返回柏林的100家餐厅:

[out:json];
area["boundary"="administrative"]["name"="Berlin"] -> .a;
(
    node(area.a)["amenity"="restaurant"];
); out center 100;
限制总体数据量的一种方法可能是计算边界框中的对象数量,如果该数字太大,则将边界框拆分为4个部分。out count;支持计数。对象数量确定后,只需使用out;即可获得一些结果。

node({{bbox}})["amenity"="restaurant"];
out count;

这篇关于有没有办法获得分页的立交桥查询结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆