¿Cómo puedo hacer que QGIS deje de parpadear cada vez que realizo una panorámica?

8

La forma en que QGIS dibuja el lienzo cuando la panorámica es bastante molesta. Si desplazo el mapa aunque sea un poco, todo queda en blanco durante un segundo o dos antes de que se dibujen las capas. Parece que esto sucede solo cuando se supone que el contenido de la capa se debe descargar (mis capas PostGIS se dibujan sin dañar mis ojos), por lo que esto podría ser solo un problema con la configuración en lugar del código. ¿Alguien tiene una solución?

Ah, y la pregunta debería ser "¿cómo puedo hacer que QGIS sea adecuado para los epilépticos?". Es así de molesto.

EDITAR para plantear preguntas para QGIS 2.4 en adelante:

Esto todavía parece ser un problema en 2.4. Parece que hay algunos ajustes útiles en Configuración> Representación, pero estos no ayudan al problema. QGIS simplemente carece de la sensación agradable, resbaladiza y suave de otros visores de mapas. ¿El almacenamiento en caché todavía está en las tarjetas?

orieeel
fuente
Esta es una de las mayores manías con Qgis. El problema es realmente terrible cuando tienes una capa del complemento OpenLayers en tu mapa.
Devdatta Tengshe
No es lo ideal, pero puede desactivar el renderizado marcando la rendercasilla en la barra de herramientas inferior. Sin embargo, esto significa que los datos fuera de la ventana gráfica actual ya no se muestran / actualizan.
DJ
es aún más molesto cuando crees que las mismas capas se representan "correctamente" por geoserver e incluso udig. Por desgracia, no puedo recurrir a ellos, necesito las capacidades sql avanzadas de qgis para probar algunas consultas geográficas
orieeel
1
@orieeel geoserver y udig se realizan en Java y utilizan una técnica de renderizado diferente
Nathan W
En Master, puede probar Configuración -> Opciones ... -> Renderizar y marcar "Habilitar el buffer de retroceso". No estoy seguro si esto es posible en 1.8. N.
nhopton

Respuestas:

6

Para cualquiera que todavía tenga este problema, en QGIS 2.10 puede ir a Configuración> Opciones> Representación y cambiar el intervalo de actualización del Mapa para que sea más grande. Si QGIS puede procesar todas las capas en menos de este período de tiempo, actualizará todo el lienzo a la vez, lo que eliminará el parpadeo. Si no puede actualizar todas las capas antes de que pase este intervalo, mostrará una actualización parcial, lo que provoca el parpadeo. Puede ver cuánto tiempo lleva una actualización del lienzo habilitando el indicador de depuración en la configuración de representación.

Mate
fuente
Estoy digitalizando polígonos basados ​​en imágenes UAV (imagen RGB de trama de 1 GB) y después de actualizar el polígono, la imagen se vuelve a cargar cada vez. eso tomó alrededor de 5 segundos para cada polígono! En mi caso, "usar el almacenamiento en caché de render" en las mismas opciones resolvió mi problema. QGIS 2.10.
Jens
5

Me temo que la respuesta es: puede evitar que QGIS parpadee financiando a un desarrollador para que implemente una versión que no parpadee.

bajo oscuro
fuente
1
Para explicar por qué: actualmente se reduce a cómo se representan las capas y las características en el motor de representación. Hay algunos desarrollos futuros, principalmente subprocesos múltiples y almacenamiento en caché, que deberían ayudar a reducir esto, pero no completamente.
Nathan W
1
Underdark: LOL
QgisTn
@underdark desearía poder hacerlo, pero no sucederá con mi presupuesto estudiantil.
orieeel
@ Nathan-w simplemente puesto a prueba la trama de la cobertura del suelo qgis demostración conjunto de datos y no existen problemas de paneo, así que estoy bastante seguro de que el problema aparece sobre todo cuando las capas no están en localhost
orieeel
¿tal vez este problema pueda resolverse usando un servidor en localhost para el almacenamiento en caché? ... es increíble que los datos de wms / wfs que ya se han descargado no se reutilicen ...
orieeel
3

Hay una "solución" fácil si eres lo suficientemente valiente como para cambiar el código fuente de QGIS:

Abra 'qgsmaptoolpan.cpp' y, en el miembro 'canvasMoveEvent' correspondiente, agregue la oración "mCanvas-> refresh ();" como sigue:

void QgsMapToolPan::canvasMoveEvent( QMouseEvent * e )
{
  if (( e->buttons() & Qt::LeftButton ) )
  {
    mDragging = true;
    // move map and other canvas items
    mCanvas->panAction( e );
    mCanvas->refresh();
  }
}

(QGIS versión 1.8 Lisboa)

Esto forzará una actualización continua en el mapa mientras se desplaza con el mouse. Podría ir un poco más lento, pero funciona bien, sí, una relajación para mis ojos.

usuario15765
fuente
donde esta ese archivo ..? No puedo encontrarlo en mi OpenSuse 12.x Gracias
tomsik
¿Por qué la necesidad de modificar el código fuente cuando solo puede anular el método?
sean