[OSM-talk-fr] [Outil] Diviser un fichier de buildings

Pierre pinaraf at pinaraf.info
Mar 28 Sep 10:00:25 UTC 2010


On Tuesday 28 September 2010 11:36:48 Vincent de Chateau-Thierry wrote:
>  > De : "Frédéric Rodrigo"
> > 
> > Tout ce travail de découpage par bounding box, polygones arbitraires
> > (et filtres sur les tags) est faisable avec osmosis :
> > 
> > http://wihttp://webmail.laposte.net/webmail/fr_FR/write.html#ki.openstree
> > tmap.org/wiki/Osmosis/Detailed_Usage_0.35#Area_Filtering_Tasks>
> 
> J'avais regardé Osmosis, mais ce qui m'a motivé pour écrire autre chose,
> c'est de combiner : une syntaxe simple (un seul argument, le nom du
> fichier), la non redondance des ways écrits (à cheval entre les options
> completeWays et clipIncompleteEntities d'Osmosis) et le souhait de ne pas
> avoir à déterminer moi-même les coordonnées de clip (les paramètres
> left/right/bottom/top d'Osmosis).
> 
> vincent

Comme le script suivant je crois (pour la non redondance des ways, c'est pas 
forcément un problème, y'a déjà des doublons de noeuds, donc faut dans tous les 
cas nettoyer au validateur)...

ATTENTION : je ne poste ça que comme une démo, j'ai pris des morceaux de vieux 
scripts que j'ai, j'ai pas eu le temps de tester... mais ça doit marcher en 
théorie...

#!/bin/bash

bounds="`head -n 10 $1 | grep bounds`"
minlat=`echo $bounds | sed -e 's/.*minlat=\"\([0-9]*\.[0-9]*\)\".*/\1/'`
maxlat=`echo $bounds | sed -e 's/.*maxlat=\"\([0-9]*\.[0-9]*\)\".*/\1/'`
minlon=`echo $bounds | sed -e 's/.*minlon=\"\([0-9]*\.[0-9]*\)\".*/\1/'`
maxlon=`echo $bounds | sed -e 's/.*maxlon=\"\([0-9]*\.[0-9]*\)\".*/\1/'`

midlat=`echo ($minlat+$maxlat)/2 | bc -l`
midlon=`echo ($minlon+$maxlon)/2 | bc -l`

osmosis --read-xml file=$1 --bounding-box top=$maxlat left=$minlon 
bottom=$midlat right=$midlon --write-xml file="1_`basename $1`"
osmosis --read-xml file=$1 --bounding-box top=$midlat left=$minlon 
bottom=$minlat right=$midlon --write-xml file="2_`basename $1`"
osmosis --read-xml file=$1 --bounding-box top=$maxlat left=$midlon 
bottom=$midlat right=$maxlon --write-xml file="3_`basename $1`"
osmosis --read-xml file=$1 --bounding-box top=$midlat left=$midlon 
bottom=$minlat right=$maxlon --write-xml file="4_`basename $1`"
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: signature.asc
Type: application/pgp-signature
Taille: 198 octets
Desc: This is a digitally signed message part.
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20100928/bd13b193/attachment.sig>


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