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 Thu 20 May 2021 10:03

zutix
Participant actif
Date d'inscription: 19 Mar 2020
Messages: 87

QGIS 2.18 z / python2 couche: activer, joindre

Bonjour

Voici 3 questions pour lesquelles j'aurais besoin de votre aide.

Contexte :
QGIS 2.18 -  console python 2
chargement du projet à traiter : ok
suppression de la couche « csv » (anciennes données) : ok
suppression de 2 champs (issus d’une jointure antérieure de la couche « csv » ) dans la couche « étiquette » : ok
chargement de la couche csv (nouvelles données de fichier csv pour mise à jour jointure puis  carte) : ok
Les autres couches ne changent pas (4 couches au total, y compris les 2 citées).


layer = iface.activeLayer()   permet de sélectionner la couche active si elle a été sélectionnée préalablement à la main.

1- Comment faire pour sélectionner la couche « csv », par exemple, afin qu’elle soit active, automatiquement en python 2 ?

2- Que faut-il écrire en python 2 pour faire la jointure de la couche à joinde « csv » avec la couche cible « étiquette » suivante :
Joindre la couche : CSV
Champ de jointure : INSEE_COM
Champ dans la couche cible : CIBLE_COM
√ Mettre la couche jointe en cache dans la mémoire virtuelle
√ Choisir les champs à joindre :
   √ NB_PDV
   √ NB_PDV_EX
√ Personnaliser le préfixe des champs :
_       tiret sous le 8 devant chaque champs joint


3- Les imports de classes suivants sont-ils suffisants : (si d'autres sont nécessaires merci de les ajouter)
from qgis.core import QgsProject
from PyQt4.QtCore import QFileInfo
from PyQt4.QtCore import Qvariant
?

D'avance merci, Cordialement

Hors ligne

 

#2 Thu 20 May 2021 10:37

zutix
Participant actif
Date d'inscription: 19 Mar 2020
Messages: 87

Re: QGIS 2.18 z / python2 couche: activer, joindre

QGIS 2.18 z / python2 couche: activer, joindre

Si vous ne savez répondre qu'à une seule question, n'hésitez pas. Merci.

Hors ligne

 

#3 Fri 21 May 2021 08:17

zutix
Participant actif
Date d'inscription: 19 Mar 2020
Messages: 87

Re: QGIS 2.18 z / python2 couche: activer, joindre

Questions posées autrement :

1 - comment obtenir un objet layer de type : QgsMapLayer ?
pour pouvoir tester qgis.utils.iface.setActiveLayer(QgsMapLayer)

Hors ligne

 

#4 Fri 21 May 2021 08:22

zutix
Participant actif
Date d'inscription: 19 Mar 2020
Messages: 87

Re: QGIS 2.18 z / python2 couche: activer, joindre

2 - que faut-il mettre à la place de la ligne vide pour choisir les 2 champs à joindre :
joinObject = QgsVectorJoinInfo()
joinObject.joinLayerId = csv.id()
joinObject.joinFieldName = 'INSEE_COM'
joinObject.targetFieldName = 'CIBLE_COM'
joinObject.memoryCache = True

joinObject.prefix='_'
shpTarget.addJoin(joinObject)

car cela joint tous les champs. Or il n'en faudrait que 2.

Hors ligne

 

Pied de page des forums

Powered by FluxBB