Pages: 1
- Sujet précédent - QGIS : Importer champs X Y comme coordonnées depuis une base MySQL - Sujet suivant
#1 Wed 18 March 2015 06:33
- PierreBrial
- Participant occasionnel
- Date d'inscription: 28 Jan 2007
- Messages: 23
QGIS : Importer champs X Y comme coordonnées depuis une base MySQL
Bonjour,
J'ai une base MySQL contenant des points définis par un identifiant (champ texte), des coordonnées (deux champs entiers X et Y), plus d'autres informations. Il n'y a donc pas de champ défini comme Geometry pour les coordonnées.
Je souhaiterais que ces points s'affichent sur une carte chargée dans QGIS, un peu comme on le fait à partir de fichiers CSV.
J'arrive à importer ma base de données (couche / ajouter une couche vecteur / base de données), mais je ne vois pas comment déclarer les champs X et Y comme des coordonnées de points à afficher.
Je ne sais d'ailleurs pas si c'est possible. D'après les informations lues ici où là, seuls les champs définis comme données spatiales peuvent s'afficher.
Confirmez vous ce point, où y a t'il une fonction qui m'aurait échappé ?
À bientôt
Pierre
Dernière modification par PierreBrial (Wed 18 March 2015 06:37)
Hors ligne
#2 Wed 18 March 2015 12:40
Re: QGIS : Importer champs X Y comme coordonnées depuis une base MySQL
Bonjour Pierre,
si vous ne pouvez pas créer de colonne géométrique dans mysql, les vrt semblent être la piste à creuser :
http://gdal.gloobe.org/ogr/formats/vrt.html
et ici dans la dernière réponse proposée par underdark :
http://gis.stackexchange.com/questions/ … using-qgis
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Thu 19 March 2015 03:49
- PierreBrial
- Participant occasionnel
- Date d'inscription: 28 Jan 2007
- Messages: 23
Re: QGIS : Importer champs X Y comme coordonnées depuis une base MySQL
Bonjour Pierre,
si vous ne pouvez pas créer de colonne géométrique dans mysql, les vrt semblent être la piste à creuser :
http://gdal.gloobe.org/ogr/formats/vrt.html
et ici dans la dernière réponse proposée par underdark :
http://gis.stackexchange.com/questions/ … using-qgis
Merci Mathieu pour la réponse. Je vais étudier cette solution, et je publierais ici si celà fonctionne.
Hors ligne
#4 Thu 19 March 2015 05:04
- PierreBrial
- Participant occasionnel
- Date d'inscription: 28 Jan 2007
- Messages: 23
Re: QGIS : Importer champs X Y comme coordonnées depuis une base MySQL
Bon ça ne marche pas
Voici le fichier VRT :
Code:
<OGRVRTDataSource> <OGRVRTLayer name="Points"> <SrcDataSource>MySQL:ma_base,host=192.168.0.6,user=pierre|layername=ma_table</SrcDataSource> <SrcSQL>SELECT X,Y FROM ma_table</SrcSQL> <GeometryType>wkbPoint</GeometryType> <LayerSRS>EPSG:2975</LayerSRS> <GeometryField encoding="PointFromColumns" x="X" y="Y"/> </OGRVRTLayer> </OGRVRTDataSource>
Le fichier est ouvert mais aucune données n'est importée.
J'ai aussi essayé en remplaçant la requète SQL par <SrcLayer>ma_table</SrcLayer> , sans succès...
Hors ligne
#5 Thu 19 March 2015 16:55
Re: QGIS : Importer champs X Y comme coordonnées depuis une base MySQL
Bonjour Pierre,
je ne suis pas très compétent sur ce sujet, mais la syntaxe utilisée par Loïc M dans ce post sans réponse est un peu différente de la votre et semble fonctionner :
http://georezo.net/forum/viewtopic.php?pid=195824
notamment ceci :
Code:
<SrcDataSource>MYSQL:couche_bdd,user=root,password=mapservertest,host=localhost,port=3306,tables=test_mysql</SrcDataSource>
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#6 Thu 19 March 2015 17:22
- PierreBrial
- Participant occasionnel
- Date d'inscription: 28 Jan 2007
- Messages: 23
Re: QGIS : Importer champs X Y comme coordonnées depuis une base MySQL
je ne suis pas très compétent sur ce sujet, mais la syntaxe utilisée par Loïc M dans ce post sans réponse est un peu différente de la votre et semble fonctionner :
http://georezo.net/forum/viewtopic.php?pid=195824
notamment ceci :Code:
<SrcDataSource>MYSQL:couche_bdd,user=root,password=mapservertest,host=localhost,port=3306,tables=test_mysql</SrcDataSource>
Oui exact !
La bonne syntaxe dans mon cas est :
Code:
<OGRVRTDataSource> <OGRVRTLayer name="Points"> <SrcDataSource>MySQL:ma_base,user=pierre,host=localhost</SrcDataSource> <SrcSQL>SELECT X,Y FROM ma_table</SrcSQL> <GeometryType>wkbPoint</GeometryType> <LayerSRS>EPSG:2975</LayerSRS> <GeometryField encoding="PointFromColumns" x="X" y="Y"/> </OGRVRTLayer> </OGRVRTDataSource>
J'ai testé le fichier avec ogrinfo points.vrt -al , et tout est ok, les points sont correctements lus.
Malheureusement lorsque j'importe le fichier avec QGIS le programme plante avec une erreur de segmentation. J'ai essayé avec plusieurs versions de QGIS, avec le même problème. Donc là je ne sais plus quoi faire...
Hors ligne
#7 Thu 19 March 2015 18:30
Re: QGIS : Importer champs X Y comme coordonnées depuis une base MySQL
Quelles version précisément ?
La version 2.8 va être maintenue un moment et des versions correctives vont paraitre.
Ça vaut le coup de faire remonter aux développeurs ce qui ressemble à un bug : https://hub.qgis.org/
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
Pages: 1
- Sujet précédent - QGIS : Importer champs X Y comme coordonnées depuis une base MySQL - Sujet suivant