API响应时间与过滤器数量成线性关系

时间:2016-10-13 13:05:37

标签: openstreetmap overpass-api

我正在调用Overpass API的本地实例来获取所有"道路"在给定的边界框中。奇怪的是,所有的道路/道路/轨道似乎都属于"高速公路"关键(不是一个非常糟糕的名字??)。我只对汽车/公共汽车可以行驶的道路感兴趣,所以我确定了一堆(大约17个)不同的高速公路值,并将它们全部添加为我的查询字符串中的过滤器。看起来像这样:

"way[highway = motorway]; way[highway = trunk]; way[highway = primary]; way[highway = secondary]; way[highway = tertiary]; way[highway = unclassified]; way[highway = residential]; way[highway = service]; way[highway = motorway_link];
way[highway = trunk_link]; way[highway = primary_link]; way[highway = secondary_link]; way[highway = tertiary_link]; way[highway = living_street]; way[highway = bus_guideway]; way[highway = road]; way[highway = track]; "

问题是,据我所知,响应时间似乎随每个添加的标签线性增加。我能做出更智能的查询来加快响应速度吗?感觉应该有一个标签定义这种方式(我会称之为#34; road"),这意味着只有一个过滤器。

1 个答案:

答案 0 :(得分:2)

只需使用一个正则表达式:

way[highway~"^(motorway|trunk|primary|secondary|tertiary)$"];

当然:在撰写本文时,建议使用当前版本0.7.53以获得最佳性能。