Suite

Sélectionner l'entité superposée


J'ai des points qui ne sont pas égaux mais la distance entre eux est si petite qu'elle ne peut pas être vue même à l'échelle 200k:1. J'ai calculé la distance entre ces points et l'ai ajoutée comme attribut. Maintenant, je veux savoir où se trouvent les points, donc je les sélectionne dans la table attributaire mais je ne peux pas voir la sélection car le point est chevauché par un autre point.

Y'a t'il un moyen d'arranger cela?

Je sais que je peux définir une requête de filtre sur la couche à l'aide de l'ID de fonctionnalité. Mais j'ai beaucoup trop de points pour changer le filtre tout le temps. Je cherche une solution différente. Définir un style transparent n'aide pas non plus.


Je suis tombé sur le même problème la semaine dernière. Suivez ce flux de travail et vous pourrez voir les points sélectionnés, même s'ils partagent la position avec des points non sélectionnés :

  1. Chargez votre couche de points dans QGIS et assurez-vous qu'elle se trouve en première position de la table des matières.
  2. Ouvrez la console Python à partir des plugins de menu.
  3. Copiez le code Python suivant dans la console Python et appuyez sur Entrée (vous devrez peut-être appuyer sur Entrée plusieurs fois jusqu'à ce que vous obteniez la ligne "True").
de qgis.gui importer QgsVertexMarker de PyQt4.QtGui importer QColor de PyQt4 importer QtCore layer = iface.mapCanvas().layers()[0] vertices = [] def showSelectedPoints(): selected = layer.selectedFeatures() pour f dans sélectionné : vertex = QgsVertexMarker( iface.mapCanvas() ) vertex.setCenter( f.geometry().asPoint() ) vertex.setColor( QColor(255,0,0) ) vertex.setIconType( 3 ) # ICON_BOX vertex.setIconSize( 12 ) vertex.setPenWidth( 2 ) vertices.append( vertex ) def removeSel() : pour v dans les sommets : iface.mapCanvas().scene().removeItem( v ) del v def updateSelection() : removeSel() showSelectedPoints( ) QtCore.QObject.connect( couche, QtCore.SIGNAL("selectionChanged()"), updateSelection)
  1. Ouvrez la table attributaire et sélectionnez quelques lignes.

Vous devriez voir une boîte rouge sur chaque point sélectionné. Chaque fois que vous mettez à jour la sélection, les cases rouges devraient apparaître/disparaître en conséquence.

Si vous n'aimez pas les cases ou la couleur rouge, vous pouvez modifier les méthodes setColor et setIconType sur le code ci-dessus et le copier à nouveau dans la console Python.

S'il vous plaît essayez-le et dites-moi si quelque chose n'est pas clair pour vous.


Voir la vidéo: Capsule 25 - Transformation dune sélection en couche - ArcMap (Octobre 2021).