#1 Fri 09 March 2007 13:38
- Nicolab
- Membre
- Lieu: Osaka
- Date d'inscription: 9 Dec 2005
- Messages: 95
conversion txt 2 shp
Bonjour,
Je développe avec les dernieres releases de MS4W et Chameleon
Je dispose d'un .exe sur mon serveur, qui génére des resultats en ascii. Le fichier texte en sortie est une suite de x,y (+ description) en Lambert2 etendu.
Mon objectif est de créer dynamiquement un fichier .shp à partir de ce fichier et de l'afficher directement sur la carte en tant que Layer
je cherche a réaliser la conversion avec OGR, mais ne trouve pas d'exemple tres explicite sur le net. ( le fichier source doit rester en .txt ou eventuellement en .csv ). je n'utilise pas de connection odbc, est-ce obligatoire ?
Est-ce qqun aurait déja réalisé cette de manip ? Pouvez vous m'aiguiller ?
D'avance merci pour vos réponses !!
PiKO
Hors ligne
#2 Tue 13 March 2007 20:20
Re: conversion txt 2 shp
Bonjour,
Je l'ai déjà fait mais en utilisant GRASS et sa fonction r.in.ascii (r pourraster, in pour import), notez qu'il existe son équivalent en v.in.ascii (v pou vecteur, in pour import).
D'autre part, sur le site, dans la liste des formats supportés tu as : GML - Geography Markup Language et surtout Comma Separated Value (.csv). Tu dois donc pouvoir importer ce fichier dans une base postgis et faire la conversion des champs x et y dans le champ the_geom. Éventuellement faire un export avec pgsql2shp. Voilà les deux cas que j'utilise pour cela.
Finalement, regarde la bibliothèque shapelib.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 14 March 2007 15:05
- Nicolab
- Membre
- Lieu: Osaka
- Date d'inscription: 9 Dec 2005
- Messages: 95
Re: conversion txt 2 shp
Merci Yves pour ta réponse !
J'ai en effet réussi à effectuer la conversion avec ShapeLib, avec le source C csv2shp
Je dispose donc à présent d'un executable qui me produit des shp/dbf/shx en sortie. Par contre je ne vois pas comment appeler dynamiquement le résultat dans mon mapfile. La seule solution que j'ai trouvé pour l'instant c'est une simple layer point, ce qui m'oblige à tjs nommer de la meme maniere le .shp en sortie de mon .exe ( et donc à écraser les .shp crées auparavant! )
je continue qd même à m'acharner sur OGR afin de pouvoir réaliser la conversion à la volée, via une couche OGR dans le mapfile. J'ai placé mon VRT directement dans la layer et crée un lien odbc indiquant le chemin de mon fichier csv à mon systeme windows.
Mapserver n'affiche aucun résultat, et m'indique une erreur sur mon odbc de type "[MapServer Error]: msOGRFileOpen()"
Voici ma layer et la structure du csv:
Code:
LAYER NAME "testogr" TYPE POINT CONNECTIONTYPE OGR CONNECTION " <OGRVRTDataSource> <OGRVRTLayer name='test'> <SrcDataSource>ODBC:test</SrcDataSource> <GeometryType>wkbPoint</GeometryType> <LayerSRS>WGS84</LayerSRS> <GeometryField encoding='PointFromColumns' x='Longitude' y='Latitude'/> </OGRVRTLayer> </OGRVRTDataSource>" STATUS ON DATA test STATUS OFF END
et mon csv:
Code:
longitude;latitude;concentration;normevent;directionventx;directionventy;z 724400.0000000;1843550.;0.0868653;7.0000000;-6.5778484;-2.3941412;19.0000000 724400.0000000;1843600.;0.4396290;6.9999995;-6.5778480;-2.3941410;19.0000000 724400.0000000;1843650.;0.5581486;7.0000000;-6.5778484;-2.3941412;19.0000000 724400.0000000;1843700.;0.4942698;7.0000000;-6.5778484;-2.3941412;19.0000000 724400.0000000;1843750.;0.4058759;7.0000000;-6.5778484;-2.3941412;20.0000000 724400.0000000;1843800.;0.3879518;7.0000000;-6.5778484;-2.3941412;21.0000000 724400.0000000;1843850.;0.3524447;7.0000000;-6.5778484;-2.3941412;21.0000000
Si qqn voit mon erreur ou a une idée je suis preneur !!!
@+
PikO
Hors ligne
#4 Wed 14 March 2007 15:14
Re: conversion txt 2 shp
Bonjour,
Le problème est que le csv n'est pas censé être un fichier spatial donc mapserver doit s'en servir comme source de données (SI pas SIG). Pourquoi ne pas utiliser une base de données postgis ce qui permettrait de rajouter une colonne date à ton fichier csv, de le convertir en shp puis de le rajouter dans la table spatial dans la base (l'option -a permet de rajouter les données dans shp2pgsql) sinon faire un cron qui récupère les données csv pour l'importer dans la base.
Il suffirait je pense d'avoir quelque chose comme GeomFromText('POINT (((X Y)))',27572) dans la colonne the_geom et d'importer le tout dans la table postgis psql -d base -U postgres -c "COPY tabel FROM 'fichier.csv' DELIMITER ',' "
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Fri 26 October 2007 12:22
- Y.info
- Participant occasionnel
- Lieu: Tunis
- Date d'inscription: 19 Oct 2007
- Messages: 34
Re: conversion txt 2 shp
Bonjour Yves
Je veux construire une table qui contient une colonne x, une colonne y et la colonne "the_geom" mais je ne sais pas comment construire la colonne "the_geom" a partir des x et y,
(the_geom sera comme etant une conversion des x et y)
j'ai lu le message précedent mais je l'ai pas compris.
j'utise:
mapguide 1.2
autodesk mapguide studio2007
postgis
pouvez-vous m'aidez
Cordialement
Y.info
Dernière modification par Y.info (Fri 26 October 2007 12:26)
Hors ligne
#6 Fri 26 October 2007 13:50
Re: conversion txt 2 shp
Bonjour,
Pour ajouter une colonne géométrique :
Code:
SELECT addGeometryColumn('nomTable','the_geom',27582,'POLYGON',2);
Change nomTable par le nom de ta table, 27582 par le code EPSG de ta géométrie, POLYGON par POINT, POLYGON, MULTILINE, MULTIPOLYGON, etc,
Pour mettre à jour, je chercherai si j'ai un peu de temps
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#7 Fri 26 October 2007 14:44
- Y.info
- Participant occasionnel
- Lieu: Tunis
- Date d'inscription: 19 Oct 2007
- Messages: 34
Re: conversion txt 2 shp
merci pour votre aide
Dernière modification par Y.info (Fri 26 October 2007 14:56)
Hors ligne
#8 Thu 08 November 2007 14:13
- Y.info
- Participant occasionnel
- Lieu: Tunis
- Date d'inscription: 19 Oct 2007
- Messages: 34
Re: conversion txt 2 shp
Bonsoir
J'ai construit une table avec postgis qui contient une colonne "id" et une colonne "the_geom" a partir des coordonnées x et y, (the_geom est une conversion des x et y en colonne geométrique).
je veux maintenant créer une nouvelle couche vide en autodesk mapguide studio qui permet d'afficher des points (ou des symboles) a partir de cette table, sachant que cette affichage sera point par point (càd on affiche le premier point puis la deuxième..., et que l'apparition d'un point elimine automatiquement celle qui la précede.
Pouvez-vous m'aidez?
Y.info
Dernière modification par Y.info (Thu 08 November 2007 15:19)
Hors ligne