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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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