2017-01-25 4 views
0

В сообщении "Date ranges with Overpass API" Roland Olbricht анонсировала публичную бета-версию для следующего выпуска API Overpass. Я пытаюсь использовать операторы сравнения «==», «<», «< =», «>», и «> =», чтобы найти узлы с тегом населения, которое больше или меньше, то тогда любое числоОператоры сравнения Overpass-api

node[population] 
(if:"population">5834)({{bbox}}); 
(._;>;); 
out; 

К сожалению, операторы сравнения, похоже, вообще не работают. Стараюсь номер функции() node[population] (if:number("population")>5834)({{bbox}}); (._;>;); out;

Одна вещь, которая работает, как этот код

node[population] 
(if:!is_number("population"))({{bbox}}); 
(._;>;); 
out; 

поэтому у меня вопрос кто имел ли контакт с бета и эти операторы?

ответ

1

Обновленная документация была опубликована на OSM Wiki в то же время: http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL

Для вашего случая использования, то необходимо использовать следующий синтаксис:

  • Найти все узлы с population тега ток BBOX
  • То есть население числовой тег
  • Если фактическое значение тега population больше, чем 5834:

Запрос:

node[population] 
    (if: is_number(t[population]) && number(t[population])>5834) 
    ({{bbox}}); 
out; 

Благодаря автоматическое преобразование типов вы также должны иметь возможность использовать следующий сокращенный вариант:

node[population] (if: t[population] > 5834)({{bbox}}); 
out; 
Смежные вопросы