[OSM-dev-fr] Export Postgis -> OSM

sly (sylvain letuffe) sylvain at letuffe.org
Jeu 25 Nov 12:05:34 GMT 2010


On mercredi 24 novembre 2010, Bruno Cortial wrote:
> Bonjour,

Salut,

> D'ici peu j'espère
> produire une requête qui selectionnement les way de "cadastre" non couverts
> par le bati "planet" (je sèche pour gérer un pourcentage d'overlap maxi).

Je pense que ça va intéresser du monde, et ce serait une grande avancée pour 
rationnaliser l'import du bâti qui, aujourd'hui, reste un peu anarchique et à 
tendance à créer un peu trop de doublons à mon sens (conflits entre zones 
déjà importées manuellement ou avec connaissance terrain et import presque 
automatique)
 
> Mais après ? Comment à partir d'une requête SQL, qui va me retourner des
> géométries et des attributs, récupérer un fichier OSM exploitable par JOSM ?

Autant te le dire tout de suite... ça ne va pas être gagné, mais c'est 
faisable !

Le plus proche qui a été déjà été fait de ce que tu veux faire se trouve a mon 
avis ici :
http://wiki.openstreetmap.org/wiki/WikiProject_Corine_Land_Cover/Corine_Data_Import
et concerne l'import de Corine Land Cover, mais ça doit être adaptable au 
bâtiments du cadastre.

!!ATTENTION!! c'est du Émilie, donc c'est, comment dire, technique, complexe, 
dur à comprendre... mais efficace !

Je te résume l'idée, car tu peux tout aussi bien tenter dans ton coin, sur le 
même principe mais ne pas t'embrouiller avec des requêtes longuent comme un 
anaconda :

Pour la commune X :
1- tu importes (osm2pgsql) le fichier osm du bati dans des tables à part 
(cadastre_**)

2- tu importes (osm2pgsql) les batiments de la zone en provenance d'osm dans 
d'autres tables (communeX_**) (attention, il y a building=* mais aussi 
place_of_workship, certaines amentity, etc.)

3- Tu consitues la requêtes de la mort qui va supprimer (ou marquer comme non 
importable) des tables cadastre_** tous les bâtiments dont il existe une 
surface non nulle d'intersection avec ceux de osm. La requette doit faire 
usage de 
ST_AREA() (obtenir la mesure de la surface)
ST_Intersection(table1.gemometrie1,table2.geometrie2) (obtenir la surface 
d'intersections entre deux géométries des deux tables)
et autres joyeusetés

4- ensuite tu utilises pgsql2shp pour sortir au format shapefile le contenu de 
ta table nettoyée genre : 
$ pgsql2shp -f batiments_qui_superposent_pas.shp "select * from 
cadastre_polygone where supperpose=0"

5- avec ogr2osm, tu convertis tes fichiers shapefiles en fichiers osm avec les 
bon tags dont tu as besoin, exemple d'utilisation de ogr2osm ici :
http://wiki.openstreetmap.org/wiki/WikiProject_France/Parcs_nationaux_et_régionaux,_réserves_naturelles/Import_des_données_INPN
tout en bas
-- 
sly





More information about the dev-fr mailing list