Overpass API — отфильтровать непустые теги

Следуя этот вопрос, я пытаюсь запросить Overpass API, чтобы он возвращал все узлы с тегами «естественный» и «исторический», где тег «имя» не является пустым вокруг набора координат с радиусом 1500 м.

Что у меня есть до сих пор

<union>
    <query type="node">
        <around radius="1500" lat="51.1263041473" lon="1.3268128927"/>
        <has-kv k="historic"/>
    </query>
    <query type="node">
        <around radius="1500" lat="51.1263041473" lon="1.3268128927"/>
        <has-kv k="natural"/>
    </query>
</union>
<print/>

Это работает для обоих ключевых слов, но не учитывает, что тег «имя» не является пустым (см.: Overpass Turbo< /а>)

Как я могу отфильтровать любой узел с непустым тегом «имя»?


person Patrik    schedule 17.08.2016    source источник


Ответы (1)


Хм, я только что нашел ответ - я не знал, как поместить регулярное выражение в запрос. Теперь я делаю:

<union>
<query type="node">
    <around radius="1500" lat="51.1263041473" lon="1.3268128927"/>
    <has-kv k="historic"/>
    <has-kv k="name" regv=".+"/>      
</query>
<query type="node">
    <around radius="1500" lat="51.1263041473" lon="1.3268128927"/>
    <has-kv k="natural"/>
    <has-kv k="name" regv=".+"/>
</query>

person Patrik    schedule 17.08.2016
comment
Почему бы вам просто не написать <has-kv k="name"/>? В этом случае действительно не так много причин для регулярного выражения. - person mmd; 17.08.2016