Message posté par : Jean-Marie Arsac
----------------------------------------
Bonjour,
Vous avez peut-être confondu Lambert Zone III (EPSG:27563) et Lambert III "Carto" (EPSG:25573). Il y a un décalage de 3000000 sur l'Y entre les deux.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329500#p329500
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : AH
----------------------------------------
Bonjour,
Regardez ce post, il devrait vous permettre de vous en sortir :
https://georezo.net/forum/viewtopic.php?id=105621
Cordialement.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329499#p329499
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Christophe_EMS
----------------------------------------
Bonjour,
Dans quelle mesure une collectivité peut-elle participer au développement de QGIS ? Rédaction du cahier des charges, financement ? Procédure à suivre pour contribuer ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329498#p329498
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Thomas DUMONT
----------------------------------------
Bonjour,
Merci pour vos réponses.
Pour Chanteclair -> je travaille avec des shapefiles.
Pour JD -> pour vérifié que j'ai compris, je réécris votre formule comme suit :
aggregate('nom_couche_source','concatenate_unique', "nom_champs_source", filter:=intersects(geometry(@parent), $geometry))
Si c'est cela, ou désigne-t-on la couche cible et le champs à mettre à jour?
Veuillez excuser mon inexpérience.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329497#p329497
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Renaud Mouche (renaud(a)georezo.net)
----------------------------------------
Bonjour,
2 options :
1- Télécharger les données vecteurs avec l'extension OSMDownloader, puis découper plus précisément par son territoire, puis refaire la mise en forme
2- Utiliser dans chaque carte une symbolique 'Polygone inversée' sur le territoire, pour masquer les éléments de fond de carte extérieurs au territoire.
L'option 2 est probablement la plus simple, et elle permet de passer de OSM standard à Open Topo Map ou à de l'imagerie aérienne sans révolution.
Mais les étiquettes en marge du territoire seront coupées.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329495#p329495
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Alexandre Vincendeau (alexvincendeau(a)gmail.com)
----------------------------------------
Bonjour à toute la communauté !
J'ai un vilain problème de reprojection.....
Voilà, j'ai des données qui sont en Lambert Zone III (donc ellipsoïde Clarke 1880), que je voudrais convertir en Lambert 93 (donc WGS84).
Sauf que en utilisant l'outil de conversion, ou en exportant avec le nouveau scr, les coordonnées ne correspondent absolument plus, et je passe de Rhône Alpes au Niger....
J'imagine que c'est à cause de la différence entre les deux ellipsoïdes, mais dans ce cas, comment passer de l'un à l'autre ?
Merci à quiconque pourra m'aider ! :)
Bonne journée à vous !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329494#p329494
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Saliha
----------------------------------------
Bonjour,
Je vous remercie de m'avoir répondu. Effectivement, je développe une application avec le micro-framework FLASK et je veux intégrer une carte interactive qui permet de visualiser des informations en tant réel à une position spatiale ou une zone. Concernant la bibliothèques utilisée, je n'ai pas compris de quelle bibliothèque vous parlez puisque je suis débutante dans l'utilisation de FLASK, de QGIS (des systèmes d'informations géographiques en général). J'espère que j'ai pu donner les détails nécessaires et expliquer ce que je veux réaliser. Je reste à votre disposition pour d'autres informations que vous jugez utiles. Merci encore.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329478#p329478
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : F.Duval
----------------------------------------
Concernant la boucle, j'ai peut être avancé :
Je n'ai pas de message d'erreur mais rien ne se modifie visuellement/
-----------------
Code :
valeur = 'Bien joué'
for objet in Lctrl.dataProvider().getFeatures():
objet.setAttribute(3, valeur)
Lctrl.commitChanges()
-----------------
sur des sites style stackoverflow, j'ai vu que sur qgis 2. on pouvait devoir faire un 'update' avant le 'commit', mais je ne vois pas l'équivalent sur le cookbook 3.4.
Je pensais que soit on passait pas dataProvider() soit par getFeatures(), je trouve donc bizarre que
Lctrl.dataProvider().getFeatures():
ne génère pas d'erreurs...
J'espère que vous pourrez m'apporter quelques réponses.
Cordialement,
F.DUVAL
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329476#p329476
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : F.Duval
----------------------------------------
Bonjour à tous,
Et merci à ceux qui prendront la peine de lire. Je suis novice dans le développement Python pour QGIS.
J'essaye de faire des auto-exercices 'step by step' pour acquérir les notions/traitement de bases, en suivant principalement le cookbook version 3.4.
A l'avenir j'aimerais (évidemment) être capable de remplir, pour chaque objet, un champ avec une valeur issu d'un calcul préalable, d'une géométrie d'une autre couche, etc...
Pour le moment je bloque pour tout simplement modifier un champ que je viens de créer (ici 'Alors') pour remplacer les 'NULL' par une valeur constante (ici 'Bien joué').
Voici mon code
[Je sais qu'il y a des choses inutiles, surtout au début de celui ci, mais cela me permet de garder une trace de chaque petite étape, pour plus tard)
-----------------
Code :
from qgis.core import *
from qgis.utils import *
from qgis.gui import *
iface=qgis.utils.iface
pjt=QgsProject.instance()
canvas=iface.mapCanvas()
for layer in canvas.layers():
print (layer.name())
#Renvoie :
#"Troncon CTRL"
#"Listing GEOSAT"
#"Listing CTRL"
Tctrl = canvas.layers()[0]
Lgeosat = canvas.layers()[1]
Lctrl = canvas.layers()[2]
#les numéros sont, a priori, dans l'ordre du canvas
print(Lctrl.name())
#Renvoie : "Listing CTRL"
iface.setActiveLayer(Lgeosat)
#Listing GEOSAT devient la couche sélectionnée
XLctrl=Lctrl.dataProvider().fields()[0]
caps = Lctrl.dataProvider().capabilities()
#voir si la couche vecteur est modifiable
if caps & QgsVectorDataProvider.DeleteFeatures:
print('C\'est possible')
else :
print('Pas possible')
#Renvoie : "C'est possible"
XLctrl=Lctrl.dataProvider().fields()[0]
caps = Lctrl.dataProvider().capabilities()
Lctrl.startEditing() #ouvrir mode édition de Listing Ctrl
# je fais sans problème les suppressions et ajouts de champs via le dataprovider
if caps & QgsVectorDataProvider.DeleteAttributes:
Lctrl.dataProvider().deleteAttributes([3])
Lctrl.dataProvider().addAttributes([QgsField("Alors", QVariant.String)])
AlorsLctrl=Lctrl.dataProvider().fieldNameIndex("Alors")
fid = 10
valeur = 'Bien joué'
# j'ai réussi à faire la modif via getFeature mais sur un seul objet : fid = 10, comme décrit dans le cookbook
Lctrl.changeAttributeValue(fid, AlorsLctrl, valeur)
Lctrl.commitChanges()
-----------------
je peux aussi le faire via le data provider (j'ai trouvé la solution en rédigeant ce post):
-----------------
Code :
Lctrl.startEditing() #ouvrir mode édition de Listing Ctrl
if caps & QgsVectorDataProvider.DeleteAttributes:
Lctrl.dataProvider().deleteAttributes([3])
Lctrl.dataProvider().addAttributes([QgsField("Alors", QVariant.String)])
AlorsLctrl=Lctrl.dataProvider().fieldNameIndex("Alors")
fid = 15
attrib = {3:"Bien joué"}
Lctrl.dataProvider().changeAttributeValues({fid : attrib})
Lctrl.commitChanges()
-----------------
J'ai cherché comment remplacer l'argument 'fid' par un symbole ou une formule qui dirait 'pour tous les objets/id', pour que tous aient la valeur 'Bien joué', mais je n'ai pas trouvé, c'est surement très simple pour certains d'entre vous...
J'avais essayé d'inclure les deux façons de faire dans une boucle mais sans réussir non plus.
un truc du style :
-----------------
Code :
fid = 15
attrib = {3:"Bien joué"}
for objet in Lctrl.dataProvider():
Lctrl.dataProvider.changeAttributeValues({fid : attrib})
-----------------
D'ailleurs existe -t-il un glossaire des erreurs qui aiguille sur ce qui bloque, ce qu'il faut corriger : "not iterable", has no attribute", etc... ?
Dans le cook book, je n'arrive pas à comprendre la différence entre :
page 24
-----------------
Code :
if caps & QgsVectorDataProvider.ChangeAttributeValues:
attrs = { 0 : "hello", 1 : 123 }
layer.dataProvider().changeAttributeValues({ fid : attrs })
-----------------
et page 25
-----------------
Code :
layer.changeAttributeValue(fid, fieldIndex, value)
-----------------
si ce n'est qu'il y a une histoire de undo/redo, mais c'est une autre question...
Je récapitule mes principales questions :
Existe -t-il un 'glossaire des erreurs' qui puisse aiguiller sur ce qui bloque, ce qu'il faut corriger : lors des "not iterable", has no attribute", etc... ?
Y a t il un symbole ou une formule en code python pour dire 'pour tous les objets/id' ou 'sur toutes les lignes' ?
Est ce que quelqu'un pourrait m'indiquer comment corriger la boucle SVP ?
Je vous remercie beaucoup d'avoir lu jusque là, et encore plus si vous avez des pistes ou réponses à certaines questions.
Bien cordialement,
F.DUVAL
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329474#p329474
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Jean-Daniel Lomenède
----------------------------------------
Bonjour,
formule de mise à jour du champs quartier de la couche jardin
en supposant que votre couche s'appelle quartier et que le nom de champs s'appelle "nom_quartier"
pensez à bien choisir texte comme type de donnée.
Fonctionne uniquement sous qgis 3 :
-----------------
Code :
aggregate('quartien','concatenate_unique', "nom_quartier", filter:=intersects(geometry(@parent), $geometry))
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=329471#p329471
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net