Message posté par : sigtopo
----------------------------------------
Bonjour,
Après plusieurs tentatives avec ogr2ogr, finalement, la solution qui nous est apparue la
plus simple est d'utiliser des requêtes sql qui formattent correctement le Gml avec
les bonnes balises. Ces requêtes sont stockées dans un fichier excel (plus facile pour la
maintenance) et sont lues et lancées par un script python.
Exemple
-----------------
Code :
Select concat(E'
<pcrs:featureMember>
<pcrs:PointCanevasPCRS gml:id="id-canevas-',matricule,E'">
<pcrs:idObjet>',matricule,E'</pcrs:idObjet>
<pcrs:thematique>01</pcrs:thematique>
<pcrs:qualiteCategorisation>01</pcrs:qualiteCategorisation>
<pcrs:precisionPlanimetrique>',CASE WHEN type like '%Repère de
Nivellement%' THEN '999' ELSE '002'
END,E'</pcrs:precisionPlanimetrique>
<pcrs:precisionAltimetrique>',CASE WHEN Z is null THEN '999'
ELSE '002' END::varchar(3),E'</pcrs:precisionAltimetrique>
<pcrs:producteur>Colmar Agglomération</pcrs:producteur>
<pcrs:geometrie>',st_asgml(shape),E'
</pcrs:geometrie>
<pcrs:canevas>nc</pcrs:canevas>
<pcrs:precisionXY>',CASE WHEN type like '%Repère de
Nivellement%' THEN 1000 ELSE 2 END,E'</pcrs:precisionXY>
<pcrs:precisionZ>1</pcrs:precisionZ>
<pcrs:immatriculation>',matricule,E'</pcrs:immatriculation>
<pcrs:dateCreation>date_implantation</pcrs:dateCreation>
<pcrs:fiche>',croquis,E'</pcrs:fiche>
</pcrs:PointCanevasPCRS>
</pcrs:featureMember>')
from pcrs.canevas #FILTRE#
-----------------
La balise #FILTRE# permet de filtrer la donnée (notamment par le code commune chez nous.)
L'exécution du code et la récupération des infos dans un fichier texte .gml est très
rapide.
Le plus long pour le développement est finalement de bien comprendre la norme et le xsd
(on s'est basé sur des exemples et des tests avec des validateurs en ligne sur des
petits échantillons de données).
Sur l'ensemble de nos données 20 communes/1.35 Go de data, tout est passé correctement
dans les outils de contrôle de nos partenaires.
Jérôme
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=352421#p352421
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net