我发现了
<osm-script output="json" timeout="25">
<!-- gather results -->
<union>
<!-- query part for: “waterway=*” -->
<query type="way">
<has-kv k="amenity" v="parking"/>
<bbox-query {{bbox}}/>
</query>
</union>
<!-- print results -->
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>
提供许多停车位(但不考虑可以在边境停放的街道-可能缺少可用信息)。
但是,它确实也提供了私人停车位。
当我添加
<has-kv k="access" v="public"/>
它删除了私有属性,但也删除了一些似乎没有该属性的公共属性。是否有办法(a)“减去”元素(例如<has-kv k="access" v="private"/>
)或(b)使键(例如access
)的存在可选,但强制使用值(例如public
)是否公开?
答案 0 :(得分:2)
您可以使用negation运算符:
<has-kv k="access" modv="not" v="private"/>
您的整个查询,上面有否定项:
<osm-script output="json" timeout="25">
<!-- gather results -->
<union>
<!-- query part for: “waterway=*” -->
<query type="way">
<has-kv k="amenity" v="parking"/>
<has-kv k="access" modv="not" v="private"/>
<bbox-query {{bbox}}/>
</query>
</union>
<!-- print results -->
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>
或者在更具可读性的OverpassQL中:
[timeout:25]
[out:json]
;
(
way
["amenity"="parking"]
["access"!="private"]
{{bbox}};
);
out;
>;
out skel qt;