Message posté par : Marcopololo
----------------------------------------
J'avance petit à petit. A riori je prend bien en compte les coordonnées cliquées pour
rechercher mon id de parcelle mais ce n'est pas la bonne valeur du champ qui sort.
Quelle que soit le point cliqué, le point s'affiche toujours au même endroit et
l'id est celui du point et non pas des coordonnées ?
si quelqu'un a une idée.
Merci
Marcopololo
-----------------
Code :
def display_point(self, point, button):
# Affiche les coordonnées du clic
#Instances recherche id parcelle
projet = QgsProject.instance()
coucheParcelles = projet.mapLayersByName("parcelles moyenmoutier")[0]
entites = coucheParcelles.getFeatures()
self.dlg.hide() # cache la boite de dialogue
coords = "{}, {}".format(point.x(), point.y()) ## formatage des
coordonnées
print("coordo:",coords)
pc = QgsGeometry.fromPointXY(QgsPointXY(point.x(), point.y()))
pc2 = pc.asPoint()
print("ptpc2",pc2)
#point.setGeometry(pc)
# Affichage point et numéro parcelle correpondante
recup = self.dlg.coordClick.setText(coords) # affichage des coordonnées dans la
boite de dialogue
print("pc2 :",str(pc2))
self.dlg.coord2.setText(str(pc2))
# création point en mémoire
layer = QgsVectorLayer('Point?crs=epsg:4326&field=id:integer',
'pointDemo', 'memory')
pr = layer.dataProvider()
point = QgsFeature()
point.setGeometry(pc)
#point.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(6.952679,48.381057)))
pr.addFeatures([point])
layer.updateExtents()
QgsProject.instance().addMapLayers([layer])
for e in entites:
if point.geometry().within(e.geometry()):
print(e.attributes()[1])
self.dlg.numParc.setText(e.attributes()[1])
self.dlg.show() # affiche de nouveau la boite de dialogue
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=372503#p372503
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