Suite (et fin) des essais<br><br>Récupérer les 223 communes de Loire-Atlantique est possible par ce moyen<br>Il faut ajuster la valeur de timeout car la requête est exécutée en 4'30<br><br>Il y a une option permettant de ne pas indiquer les métadonnées (version de l'objet, contributeur) dans le fichier retourné. La requête est un peu plus courte (4'00) mais surtout le fichier récupéré est pratiquement 2 fois plus mince (8.5 MO contre 15.4 au format XML non compressé). <br>
Intéressant si le but n'est pas de travailler sur les données pour les renvoyer vers la base.<br><br><br><div class="gmail_quote">Le 4 décembre 2011 14:48, Ab_fab <span dir="ltr"><<a href="mailto:gamma.gts@gmail.com">gamma.gts@gmail.com</a>></span> a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Bonjour,<br><br>Un petit retour d'expérience sur un exercice pratique auquel je me suis livré : <br>Récupérer les limites des 24 communes de l'agglomération nantaise le plus <br>
_ rapidement, <br>_ proprement (pas de noeuds ni de limites importées deux fois) <br>

_ et simplement (pas de recours à une base postgis perso par ex.) possible.<br><br>Je me suis tourné vers l'Overpass API [1] qui a pour avantage d'être rapide, à jour et qui ne craint pas les requêtes lourdes. <br>

Il y a un minuteur de sécurité sur les requêtes qui satureraient le système. Un script qui prend plus de 3 minutes est stoppé.<br>
<br>On peut l'interroger par le biais d'un script, même assez long,ce qui s'est révélé très pratique.<br>Le script peut être collé dans une interface sur le web [2] ou bien enregistré dans un fichier texte (portant l'extension .osm3s) dont le contenu sera envoyé vers le serveur par une ligne de commande [3]<br>


<br>Pour mon exercice, je me suis orienté sur une recherche des limites en ciblant la référence insee incluse dans chacune des relations [4], et en indiquant une bbox pour préciser un peu la zone géographique de la recherche.<br>

<br>Pour une commune seule (ici Nantes), la requête est comme suit :<br><br><span style="font-family:courier new,monospace">  <union></span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">*    <query type="relation">    </span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">*      <bbox-query s="47.0" n="47.5" w="-2.0" e="-1.5"/>    </span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">*     <has-kv k="ref:INSEE" v="44109"/></span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">*   </query> </span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">*   <recurse type="relation-node" into="nodes"/></span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">*   <recurse type="relation-way"/></span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">*   <recurse type="way-node"/></span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">  </union></span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">  <print mode="meta"/></span><br><br>
Il est possible de faire soi-même la longue requête en faisant des copier coller des lignes marquées d'un * et en y modifiant pour chaque bloc le code insee. C'est jouable, mais pas vraiment top.<br><br>J'ai demandé à Roland Ollbricht (qui développe l'outil) s'il y avait moyen de faire plus simple. Il m'a proposé de faire un script bash. [N'étant pas un dieu sous linux, je ne savais pas que l'on pouvait y faire des boucles]<br>

Résultat, le fichier .sh en pièce jointe, où l'on retrouve en bloc tous les codes INSEE. <br>Une fois exécuté, il renvoie le fichier insee.osm3s (pièce jointe)<br><br>Ne reste plus qu'à faire la requête en [3] et on obtient le fichier .osm qui s'ouvre nickel dans JOSM<br>

<br>Le fichier .sh est à ajuster pour changer les bbox si l'on s'intéresse à une autre zone.<br>On peut aussi changer la formulation de la boucle. <br>Par exemple, pour un département qui est au complet niveau des limites administratives on peut faire incrémenter le code insee par pas de 1 du premier au dernier code commune du département et récupérer les limites d'un département au grand complet.<br>

<br>Comme je trouve la démarche assez sympathique, je me permets de la partager ici !<br><br>-------------<br><span style="font-family:courier new,monospace">[1] <a href="http://wiki.openstreetmap.org/wiki/Overpass_API" target="_blank">http://wiki.openstreetmap.org/wiki/Overpass_API</a></span><br style="font-family:courier new,monospace">


<span style="font-family:courier new,monospace"><br>[2] <a href="http://www.overpass-api.de/query_form.html" target="_blank">http://www.overpass-api.de/query_form.html</a></span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">    <a href="http://overpass.osm.rambler.ru/query_form.html" target="_blank">http://overpass.osm.rambler.ru/query_form.html</a></span><br style="font-family:courier new,monospace">


<span style="font-family:courier new,monospace"><br>[3] Pour un script dans le fichier insee.osm3s & une sortie dans le fichier insee.osm.xml<br>    wget --post-file=insee.osm3s -O insee.osm.xml "<a href="http://overpass-api.de/api/interpreter" target="_blank">http://overpass-api.de/api/interpreter</a>"</span><br>

<br><span style="font-family:courier new,monospace">[4] les codes INSEE des 24 communes de Nantes Métropole sont</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">   
44009 44018 44020 44024 44026 44047 44074 44035 44101 44120 44198 44094</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">   
44109 44114 44143 44150 44172 44166 44171 44194 44162 44190 44204 44215</span><br><font color="#888888">
<br>-- <br><a href="http://wiki.openstreetmap.org/wiki/User:Ab_fab" target="_blank">ab_fab</a><br>"Il n'y a pas de pas perdus"<br>
</font></blockquote></div><br><br clear="all"><br>-- <br><a href="http://wiki.openstreetmap.org/wiki/User:Ab_fab" target="_blank">ab_fab</a><br>"Il n'y a pas de pas perdus"<br>