2016-01-04 8 views
0

Если вы ищете аэропорт (аэродром = аэродром) вокруг brescia, италия, вы также получите удар для военного аэродрома, который также будет помечен как аэродром (он помечен: aeroway = аэродром, landuse = военный, военный = аэродром). Чтобы этого избежать, я хочу найти аэровокзал = аэродром, но исключить [военные]. Я пробовал [! военные] и [военные ~ "^ $"]. Какие-либо предложения?Отрицание класса osm или типа

Этот конкретный случай может быть редок, я понимаю, но концепция отрицания многоклассовых элементов полезна. И многоклассовые элементы - не редкое явление. В общем, они кажутся бесплатными, а не противоречивыми, поэтому это не проблема. Я также понимаю, что я могу избавиться от противоречивых хитов с помощью некоторой обработки. Я не ожидал появления военного аэродрома с коммерческим аэродромом.

В любом случае, это сокращенная версия моего запроса. Я включаю узел, так и соотношение в полном запросе:

http://overpass-api.de/api/interpreter? 
data=[out:json][timeout:25][bbox:45.400861,9.868469,45.641408,10.542755]; 
(node[aeroway~%22aero|term|heli%22][! military]; ...) out etc 

или:

http://overpass-api.de/api/interpreter? 
data=[out:json][timeout:25][bbox:45.400861,9.868469,45.641408,10.542755]; 
(node[aeroway~%22aero|term|heli%22][military~%22^$%22]; ...) out etc 

Если вы пытаетесь запустить его, вам нужно включить путь и отношение. Кроме того, как вы можете видеть, я точно не прошу аэровокзал = аэродром. Я включаю терминал и вариации на вертодром. Мой опыт в том, что некоторые аэродромы отмечены только как «терминал», поэтому, если вы ищете аэропорт, просить «аэродром» недостаточно.

ответ