banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1230
Site web

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

MathieuB a écrit:

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 sad
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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1230
Site web

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

MathieuB a écrit:

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... sad

Hors ligne

 

#7 Thu 19 March 2015 18:30

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1230
Site web

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

 

Pied de page des forums

Powered by FluxBB