overpass : Limiter une recherche par pays

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
westcoast

overpass : Limiter une recherche par pays

Message par westcoast » jeu. oct. 03, 2013 2:35 pm

Bonjour à tous, je suis grand débutant et j'essaie d'avoir les données d'un type de commerce : les tatoueurs.

Pour cela, j'utilise le site : http://overpass-turbo.eu/

et je lance la requete :

Code : Tout sélectionner

<!--
<query type="node">
  <has-kv k="shop" v="tattoo"/>
  <bbox-query {{bbox}}/><!--this is auto-completed with the
                   current map view coordinates.-->
</query>
<print/>
Cela fonctionne mais cela ne me donne ceux qui sont affichés à l'écran.

Peut on limiter l'affichage des données à un pays ? un département en particulier ? ou meme à une ville ?

Merci à tous ceux qui pourront m'aider...

Ab_fabe

Re: overpass : Limiter une recherche par pays

Message par Ab_fabe » jeu. oct. 03, 2013 3:15 pm

Bonjour westcoast,

Tu peux tout simplement éliminer la ligne contenant <bbox-query {{bbox}}/>

En fonction de la quantité d'infos de ce genre dans la base, tu risques d'être noyé ... ou pas.
Le service taginfo donne le nombre d'éléments présents dans la base (880).
C'est encore raisonnable, donc pas la peine de s'encombrer d'une Bbox (d'autant que ce paramètre ralentit les temps de réponse dans Overpass-API)

Autre intérêt de taginfo : il y a un petit icone de volant de voiture en haut à droite de la fenêtre
http://taginfo.openstreetmap.org/tags/shop=tattoo
C'est un lien vers la requête correspondante dans Overpass-Turbo ;-)
Là encore il faudra enlever les lignes qui parlent de Bbox, et en dézoomant bien à l'échelle de l'Europe de l'ouest on voit les bulles apparaître.

As-tu remarqué que tu peux basculer de la carte à la liste des items par les onglets carte / data en haut à droite de l'interface overpass-turbo ?
Tu peux également afficher ces données dans plusieurs formats (json par défaut, mais xml est possible)

westcoast

Re: overpass : Limiter une recherche par pays

Message par westcoast » jeu. oct. 03, 2013 4:00 pm

Bonjour

merci de cette réponse rapide.

Par contre, cela ne répond pas tout à fait à ma question, car cela me donne toutes les boutiques dans le monde ?

Par exemple, je souhaite avoir la liste des magasins qui sont situés en France et non toute la liste dans le monde, y'a t il un code/clé à ajouter ? Si oui laquelle ?

Un code du type Country = FR ?

Par exemple, si je veux la li ste des bou langeries de France, comment faire ?
car ce code ne marche pas

Code : Tout sélectionner

<query type="node">
  <has-kv k="shop" v="bakery"/>
  <has-kv k="addr:country" v="FR"/>
  <bbox-query {{bbox}}/>
</query>
<print/>


Merci d avance

Ab_fabe

Re: overpass : Limiter une recherche par pays

Message par Ab_fabe » jeu. oct. 03, 2013 5:05 pm

C'est possible ... pas super intuitif, mais possible :-)

- Tu dois te limiter aux éléments ponctuels (recherche de "nodes", mais pas de "ways" ni de relations)
- Tu dois connaître le numéro de la relation qui t'intéresse dans la base OSM [1]. Par exemple 8649 pour l'Île-de-France

Modifie la ligne suivante : <bbox-query {{bbox}}/>
par : <area-query ref="3600008649"/>

pour faire la requête visible en [2], qui te retourne 1635 POI de boulangeries, effectivement restreintes à l'Île de France.
L'astuce étant de toujours faire l'addition 3600000000 + le N° de la relation qui t'intéresse.

Autre astuce : si la recherche n'aboutit pas au bout de 3 minutes ("time-out" par défaut), deux options :
- Ne pas mettre de restriction de zone, et faire un tri ultérieur sur le fichier .osm récupéré avec un autre outil (comme Osmosis [3])
- Ajouter un argument "timeout" dans le script [4]

J'espère que cela te sera utile.

------------------------------------------------------------------------------------------------------------------
[1] Pour les découpages administratifs en France, la page suivante du wiki est très pratique :
http://wiki.openstreetmap.org/wiki/Wiki ... istratives
Sinon, l'outil nominatim.openstreetmap.org peut donner cette référence, en cliquant sur "détails" dans le résultat de ta recherche

[2] Requête pour récupérer les POI de boulangeries sur l'Île de France

{{key=shop}}
{{value=bakery}}
<query type="node">
<has-kv k="{{key}}" v="{{value}}"/>
<area-query ref="3600008649"/>
</query>
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton"/>

[3] Osmosis : http://wiki.openstreetmap.org/wiki/FR:Osmosis

[4] Timeout : http://wiki.openstreetmap.org/wiki/Over ... Osm-Script

westcoast

Re: overpass : Limiter une recherche par pays

Message par westcoast » jeu. oct. 03, 2013 5:23 pm

OK Merci !!!!

J 'y arrive pour les limites administratives mais pas poour la france entiere...

j'ai testé :

Code : Tout sélectionner

<query type="node">
  <has-kv k="shop" v="bakery"/>
   <area-query ref="361362232"/>
</query>
<print/>
et

Code : Tout sélectionner

<query type="node">
  <has-kv k="shop" v="bakery"/>
   <area-query ref="360011980"/>
</query>
<print/>

mais je n'ai rien

Ab_fabe

Re: overpass : Limiter une recherche par pays

Message par Ab_fabe » jeu. oct. 03, 2013 6:14 pm

Dans tes requêtes, il manque un zéro :
361362232 -> 3601362232
360011980 -> 3600011980

En cas d'erreur, vérifier que le nombre que l'on a indiqué est 3 milliards 600 millions (3600000000) + le numéro de la relation

westcoast

Re: overpass : Limiter une recherche par pays

Message par westcoast » ven. oct. 04, 2013 8:16 pm

Ab_fabe a écrit :Dans tes requêtes, il manque un zéro :
361362232 -> 3601362232
360011980 -> 3600011980

En cas d'erreur, vérifier que le nombre que l'on a indiqué est 3 milliards 600 millions (3600000000) + le numéro de la relation
Je viens de retester ce code sur overpass turbo
<query type="node">
<has-kv k="shop" v="bakery"/>
<area-query ref="3601362232"/>
</query>
<print/>
et il me met :
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="Overpass API">
<note>The data included in this document is from http://www.openstreetmap.org. The data is made available under ODbL.</note>
<meta osm_base="2013-10-04T18:12:01Z" areas="2013-10-04T06:15:02Z"/>


</osm>

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités