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">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>
<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>