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

API response time linear in number of filters

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

"way[highway = motorway]; 方式[高速公路=主干]; 方式[高速公路=主要]; 方式[高速公路=二级]; 方式[高速公路=第三级]; 方式[高速公路=未分类]; 方式[高速公路=住宅]; 方式[高速公路=服务]; 方式[高速公路= motorway_link];<br> 方式 [高速公路 = trunk_link]; 方式 [高速公路 = primary_link]; 方式 [高速公路 = secondary_link]; 方式 [高速公路 = tertiary_link]; 方式 [高速公路 = living_street]; 方式 [高速公路 = bus_guideway]; 方式[高速公路=道路]; 方式[高速公路=轨道]; "

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

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

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

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