比方说,我想在柏林的餐馆和我有这个疑问:
[out:json];
area["boundary"="administrative"]["name"="Berlin"] -> .a;
(
node(area.a)["amenity"="restaurant"];
); out center;
比方说,这个结果集是太大,在短短一个请求立交桥提取。我想能够使用类似SQL的OFFSET
和LIMIT
参数,以获得前100个结果(0-99),对它们进行处理,然后得到下一个100(100-199)等。
我无法找到一个选项做到这一点的API中,是否有可能呢?如果不是这样,我应该怎么查询我的数据,把它分成较小的集?
我知道我可以增加内存限制或暂停,但是这仍然让我处理一个巨大的请求,而不是对N个小的,这是我想做到这一点。
OFFSET
不立交桥API支持,但是你可以限制的结果,这是通过查询通过在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;