Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

GEODATA DAYS 2024

#1 Mon 23 April 2012 14:00

Anaïs Just
Participant actif
Lieu: Montreuil
Date d'inscription: 10 Dec 2007
Messages: 131

QGIS : modifier un outil

Bonjour à tous,

J'utilise l'outil "Vecteur" -> "Outil de gestion de données" -> "Séparer une couche vectorielle" sous qgis.
L'outil me convient parfaitement tel quel à une nuance près: le résultat de la séparation est au format shape. J'aimerais faire la même chose mais en générant des fichiers kml (lexport kml fonctionne bien sous quantum manuellement).
Est-il possible de modifier le code source de l'outil assez facilement (mes compétences en programmation se limitant à python)?

Sinon connaissez-vous un moyen de batcher l'export kml d'une sélection sur une couche (opération que l'on peut normalement faire au coup par coup par un clic droit sur la couche)?

Merci d'avance :-)

Dernière modification par Anaïs Just (Mon 23 April 2012 14:00)

Hors ligne

 

#2 Mon 23 April 2012 16:28

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9864
Site web

Re: QGIS : modifier un outil

Bonjour,

ogr2ogr (même en python) ?

Sinon le code source du plugin doit être disponible et sous GPL. Tu peux aussi contacter l'auteur pour que tes modifs soient incorporées dans le code. Mais j'ai peur que ce plugin ne soit en C++ hmm

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 Mon 23 April 2012 17:05

Anaïs Just
Participant actif
Lieu: Montreuil
Date d'inscription: 10 Dec 2007
Messages: 131

Re: QGIS : modifier un outil

Merci beaucoup, je vais me renseigner sur les pistes que tu as évoqué.
Parcontre comment trouve-t-on le code source d'un plugin quand on a que le nom en français de l'outil parmis toutes les lib et les bin de qgis? J'ai regardé directement dans lib et bin mais je ne sais pas trop où chercher...

Hors ligne

 

#4 Mon 23 April 2012 18:20

tqhien
Participant actif
Lieu: Clamart
Date d'inscription: 22 Apr 2011
Messages: 78

Re: QGIS : modifier un outil

Bonjour,

Les plugins utilisateurs sont installés par défaut dans $HOME/.qgis/python/plugins
Sous windows, il faut remplacer $HOME par C:\Documents and Settings\"nom utilisateur"\

La fonction Split est installée avec FWTools, qui est dans le répertoire d'installation de QGis., par exemple (c'est un peu long...):
C:\Program Files\Quantum GIS Wroclaw\apps\qgis\python\plugins\fTools\tools
Le fichier python correspondant s'appelle doVectorSplit.py

C'est à la ligne 175 qu'est rajoutée l'extension .SHP.

Code:

check = QFile(baseName + "_" + unicode(i.toString().trimmed()) + ".shp")

Et c'est à la ligne 182 qu'est défini le type de fichier (par défaut : "ESRI Shape":

Code:

           writer = QgsVectorFileWriter(fName, self.encoding, fieldList, geom, sRs)

Pour modifier le format de sortie, il faudrait rajouter le type de conversion après le sRs (cf http://www.qgis.org/api/classQgsVectorF … 9a05f3362c et mettre la bonne chaine de conversion OGR. Je ne l'ai pas en tête...

Cordialement.

Hien.

Hors ligne

 

#5 Tue 24 April 2012 10:07

Anaïs Just
Participant actif
Lieu: Montreuil
Date d'inscription: 10 Dec 2007
Messages: 131

Re: QGIS : modifier un outil

Bonjour,

Je te remercie pour ces indications, c'est exactement les infos que je recherchais!
Par contre j'ai tenté de modifier le fichier et de relancer le module séparer une couche vectorielle" mais l'outil fonctionne de la même façon et sort des shapefiles. Comme si je n'avais fait aucune modifications...Alors soit déconnecter et reconnecter Qgis ne suffit pas à charger les modifications, soit je n'ai pas du tout comprendre:

1) j'ai renommé doVectorSplit.py en doVectorSplit_old.py et j'ai fait une copie doVectorSplit.py que j'ai modifiée.

2) A la ligne 175  j'ai changé l'extension

Code:

            check = QFile(baseName + "_" + unicode(i.toString().trimmed()) + ".kml")

3) A la ligne 182 j'ai changé le driverName

Code:

            writer = QgsVectorFileWriter(fName, self.encoding, fieldList, geom, sRs, "KML")

j'ai aussi essayé

       

Code:

writer = QgsVectorFileWriter(fName, self.encoding, fieldList, geom, sRs, KML)

Aurais-tu une idée?

Merciii

Anaïs

Hors ligne

 

#6 Tue 24 April 2012 12:53

tqhien
Participant actif
Lieu: Clamart
Date d'inscription: 22 Apr 2011
Messages: 78

Re: QGIS : modifier un outil

Bonjour,

Voici les modifications à apporter, selon la version de fTools :

Code:

            check = QFile(baseName + "_" + unicode(i) + ".kml")
            #if check.exists():
            #    if not QgsVectorFileWriter.deleteShapeFile(baseName + "_" + unicode(i.toString().trimmed()) + ".shpl"):
            #       return
            writer = QgsVectorFileWriter(baseName + "_" + unicode(i.toString().trimmed()) + ".kml", self.encoding, fieldList, vlayer.dataProvider().geometryType(), sRs,"KML")

ou

Code:

            check = QFile(baseName + "_" + unicode(i.toString().trimmed()) + ".kml")
            fName = check.fileName()
            #if check.exists():
            #   if not QgsVectorFileWriter.deleteShapeFile(fName):
            #        self.errors.append( fName )
            #        continue

            writer = QgsVectorFileWriter(fName, self.encoding, fieldList, geom, sRs,"KML")

J'ai fait plusieurs test et réinstallation du plugin, donc le fichier doVectorSplit.py peut légèrement varié.
Ce fichier est compilé une seul fois au démarrage de QGis, donc après modification, il faut le redémarrer (Plugin reloader ne le recharge pas)

Pour l'explication de texte :
- le paramètre pour le choix du format de sortie est donc simplement le paramètre "KML" dans la création de writer.
- il faut désactiver la suppression des fichiers annexes au Shape : si le fichier kml existe, il va essaie de supprimer les dbf,shx et prj, ce qui échoue, la boucle passe à l'enregistrement suivant.

Cordialement.

Hien.

Hors ligne

 

#7 Tue 24 April 2012 14:18

Anaïs Just
Participant actif
Lieu: Montreuil
Date d'inscription: 10 Dec 2007
Messages: 131

Re: QGIS : modifier un outil

Super!!! C'est exactement ce que je recherchais!! ça fonctionne impec!
Vive le GeoRezo et merci à toi Hien!

Bonne journée.

Hors ligne

 

Pied de page des forums

Powered by FluxBB