Overpass API语言指南在匹配标记值时允许逻辑运算符...例如:["name"~"holtorf|Gielgen"]
将返回名称= holtorf或name = Gielgen的任何对象。
您还可以组合条件,它们将成为AND ...例如:
["name"]["name"="holtorf"]
。用于搜索具有“name”标签且标签名称等于“holtorf”的内容的方法。
但我想要的是一个OR运算符......类似于:
["name"="holtorf"]|["name:eng"holtorf"]
在我的特定应用程序中,我只想知道是否有以“name”开头的任何标记...所以我想要做的是将其放入API中:["^name"]
(原因在于此API“^”表示“以”开头“)。但当然它会搜索文字“^ name”并且不返回任何内容。
是否有一些解决方法?
答案 0 :(得分:1)
没有OR操作,但您可以使用UNION
(
way["name"="holtorf"];
way["name:eng"=holtorf"]
);
还有DIFFERENCE和谈判http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Difference
在您的特定情况下,您可以使用键值regexpressions匹配。 http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Key.2Fvalue_matches_regular_expression_.28.7E.22key_regex.22.7E.22value_regex.22.29
[~"^name.*$"~"^holtorf$"];
//or only for key
[~"^name.*$"="Holtorf"];