3 votos

Seleccionar característica superpuesta

Tengo puntos que no son iguales pero la distancia entre ellos es tan pequeña que no se puede ver ni siquiera a escala 200k:1. He calculado la distancia entre estos puntos y la he añadido como atributo. Ahora quiero saber dónde están los puntos así que los selecciono en la tabla de atributos pero no puedo ver la selección ya que el punto está superpuesto por otro punto.

¿Hay alguna forma de arreglar esto?

Sé que puedo establecer una consulta de filtro en la capa utilizando el ID de la característica. Pero tengo demasiados puntos para cambiar el filtro todo el tiempo. Estoy buscando una solución diferente. Establecer el estilo transparente tampoco ayuda.

3voto

Elliott Maynard Puntos 11

Me encontré con el mismo problema la semana pasada. Siga este flujo de trabajo y podrá ver los puntos seleccionados, aunque compartan posición con puntos no seleccionados:

  1. Cargue su capa de puntos en QGIS y asegúrese de que está en la primera posición de la TdC.

  2. Abra la consola de Python desde el menú Plugins.

  3. Copie el siguiente código de Python en la consola de Python y pulse Enter (puede que tenga que pulsar Enter un par de veces hasta que obtenga la línea "True").

    from qgis.gui import QgsVertexMarker from PyQt4.QtGui import QColor from PyQt4 import QtCore

    layer = iface.mapCanvas().layers()[0] vertices = []

    def showSelectedPoints(): selected = layer.selectedFeatures() for f in selected: 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(): for v in vertices: iface.mapCanvas().scene().removeItem( v ) del v

    def updateSelection(): removeSel() showSelectedPoints()

    QtCore.QObject.connect( layer, QtCore.SIGNAL("selectionChanged()"), updateSelection)

  4. Abra la tabla de atributos y seleccione algunas filas.

Debería ver un cuadro rojo en cada punto seleccionado. Cada vez que actualice la selección, los recuadros rojos deberían aparecer/desaparecer en consecuencia.

Si no te gustan las cajas o el color rojo, puedes editar los métodos setColor y setIconType en el código anterior y copiarlo de nuevo en la consola de Python.

Por favor, pruébalo y dime si algo no te queda claro.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X