2017-01-25 4 views
0

Dans la publication "Date ranges with Overpass API" Roland Olbricht a annoncé la version bêta publique de la prochaine version de l'API Overpass. J'essaie d'utiliser les opérateurs de comparaison « == », « < », « < = », « > » et « > = » pour trouver des noeuds avec une population d'étiquette qui est supérieure à ou plus petit, puis un nombreOpérateurs de comparaison overpass-api

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

Malheureusement, les opérateurs de comparaison ne semblent pas fonctionner du tout. J'essaie numéro de fonction() node[population] (if:number("population")>5834)({{bbox}}); (._;>;); out;

Une chose qui fonctionne est le code comme celui-ci

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

donc j'ai une question de savoir si quelqu'un a eu des contacts avec la version bêta et ces opérateurs?

Répondre

1

La documentation mise à jour a été publiée sur le Wiki OSM dans l'intervalle: http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL

Pour votre cas d'utilisation, vous devez utiliser la syntaxe suivante pour:

  • Trouver tous les noeuds avec étiquette population en la bbox actuelle
  • qui ont une étiquette numérique population
  • Lorsque la valeur réelle de la balise population est plus grand que 5834:

Requête:

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

En raison de conversions de type automatique, vous devez également être en mesure d'utiliser la variante plus courte suivante:

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