[OSM-talk-fr] Extraction de pois sur une commune

Philippe Verdy verdy_p at wanadoo.fr
Ven 21 Déc 12:18:54 UTC 2012


Pourquoi cette valeur magique 3600000000 ?

Ce ne serait pas plus simple d'écrire :
  <area-query ref="r61000" />...
plutôt que:
  <area-query ref="3600061000" />...

avec ainsi la possibilité de préciser les rôles à considérer dans une
relation pour ne pas tout y prendre (par exemple pour les relations de
rivières si on veut les riverbanks mais pas les "main_stream" ou
"side_stream" ni les "tributary"):
  <area-query ref="r61000;include=#default,inner,outer,enclave,exclave"/>...
ou
  <area-query ref="r61000;exclude=main_stream,side_stream"/>...

voire aussi avec plusieurs relations ET chemins (pour en faire l'union :
les rôles servent à toutes les relations précisées, pas pour les chemins):
  <area-query ref="r61000;r610001;w10000;w10001;include
=#default,inner,outer,enclave,exclave"/>...

La subtitilité sera aussi de pouvoir préciser si on ne veut pas la
récursion sur les membres d'une relation qui sont aussi une relation (et se
restreindre aux seules relations précisées et de n'y prendre alors que ses
membres qui sont des chemins, pas des relations) :
  <area-query
ref="r61000;r610001;w10000;w10001;include=#default,inner,outer,enclave,exclave;recurse=no"/>...
???

Sinon cela pourrait contenir aussi une liste ordonnée de points formant un
chemin, qu'on peut mêler à d'autres chemins:
  <area-query ref="n1000,n1001,n1002,n1003;w10000"/>...
ou si ce n'est qu'une liste de coordonnées (lon/lta) et pas toujours des
nœuds définis dans la base:
  <area-query ref="p10/10,p10/11,p11/11,p11/10,n1000,n1002;w10000"/>...

Note: dans cet exemple,

1. Les paramètres séparés par des points-virgules n'ont pas d'ordre défini
(cela concerne aussi les paramètres include= ou exclude= ou recurse= pour
les filtres) et on peut les mettre dans n'importe quel ordre, la dernière
requête sera équivalente à:
  <area-query ref="w10000;p10/10,p10/11,p11/11,p11/10,n1000,n1002"/>...

2. Les paramètres séparés par des virgules ont un ordre imposé pour former
une suite continue et cela ne concerne que des noeuds ou points(lon/lat)
dans le but de construire un chemin, on ne peut pas les disperser, ils
doivent rester groupés ensemble, mais la direction n'a pas d'importance et
la requête précédente est équivalente aussi à:
  <area-query ref="w10000;n1002,n1000,p11/10,p11/11,p10/11,p10/10"/>...
et si la liste inclue deux fois le même point, cela forme un anneau fermé
sur ce point et le point de début et fin n'a pas d'importance. Ainsi la
requête:
  <area-query ref="n1002,n1000,p11/10,p11/11,p10/11,p10/10,n1002"/>...
est équivalente à
  <area-query ref="n1000,p11/10,p11/11,p10/11,p10/10,n1002,n1000"/>...
(cette syntaxe est comparable à une bbox qui est une liste implicite de 5
points dont le premier et le dernier sont identiques, mais ici la bbox
n'est pas nécessairement aligné le long des méridiens et parallèles ; on
peut toujours indiquer une "bbox=a,b,c,d" en la traitant comme une ligne
polygonale fermée pour des requêtes plus simples ne détaillant pas les 4
points implicites)

Pour effectuer ce type de requête, une fois la liste des chemins obtenue,
on élimine les paires de chemins identiques, on connecte toutes les autres
paires de chemins qui ont une extrémité commune pour former des anneaux, on
élimine les chemins restants non fermés, les inner/outer sont recalculés
sur les chemins qui restent, et on a une surface de type multipolygone
(faite uniquement d'anneaux qui peuvent se toucher mais pas se croiser,
permettant alors d'effectuer la requête sur cette surface).


Le 21 décembre 2012 10:31, Ab_fab <gamma.gts at gmail.com> a écrit :

> Hello,
>
> Tu peux t'inspirer de cet exemple :
>
> http://wiki.openstreetmap.org/wiki/Talk:Overpass_API#How_to_combine_query_and_area-query_for_ways
>
> La subtilité, c'est de comprendre qu'il faut ajouter 3600000000 à l'id de
> la relation qui t'intéresse
>
> Pour récupérer les arrêts de bus de la commune de Basse-Goulaine (44),
> relation #61000 :
>
> <area-query ref="3600061000" />
>  <query type="node">
>    <item />
>    <has-kv k="highway" v="bus_stop"/>
>  </query>
>  <print />
>
> La requête est à faire ici :
> http://overpass-api.de/query_form.html
>
> Le 21 décembre 2012 10:15, Nicolas Moyroud <nmoyroud at free.fr> a écrit :
>
> Bonjour,
>>
>> Je cherche à faire une extraction de POIs sur une commune donnée avec
>> l'overpassAPI ou osmosis. J'ai déjà fait des extractions en me basant sur
>> une bbox, mais je ne vois pas trop comment faire avec une limite
>> administrative. Je préférerai le faire avec l'overpassAPI, mais si ce n'est
>> pas faisable je me rabattrai sur osmosis. Quelqu'un pourrait m'expliquer
>> comment faire ou me donner un lien qui explique ça ?
>> Merci pour votre aide :-)
>>
>> Nicolas
>>
>> ______________________________**_________________
>> Talk-fr mailing list
>> Talk-fr at openstreetmap.org
>> http://lists.openstreetmap.**org/listinfo/talk-fr<http://lists.openstreetmap.org/listinfo/talk-fr>
>>
>
>
>
> --
> ab_fab <http://wiki.openstreetmap.org/wiki/User:Ab_fab>
> "Il n'y a pas de pas perdus", Nadja
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-fr
>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20121221/ff5da079/attachment.htm>


Plus d'informations sur la liste de diffusion Talk-fr