有没有办法让分页一个立交桥查询结果?

问题描述 投票:0回答:1

比方说,我想在柏林的餐馆和我有这个疑问:

[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个小的,这是我想做到这一点。

openstreetmap overpass-api
1个回答
1
投票

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;
© www.soinside.com 2019 - 2024. All rights reserved.