Como posso fazer com que o QGIS pare de piscar toda vez que faço o pan?

8

A maneira como o QGIS desenha a tela ao fazer o pan é bastante irritante. Se eu mover o mapa um pouquinho, tudo ficará em branco por um segundo ou dois antes das camadas serem desenhadas. Parece que isso acontece apenas quando o conteúdo da camada deve ser baixado (minhas camadas PostGIS são desenhadas sem machucar meus olhos), portanto, isso pode ser apenas um problema com a configuração e não com o código. Alguém tem uma solução?

Ah, e a pergunta deve ser "como posso tornar o QGIS adequado para epiléticos?". É tão irritante.

EDIT para fazer perguntas para o QGIS 2.4 em diante:

Isso ainda parece ser um problema na 2.4. Parece haver algumas configurações úteis em Configurações> Renderização, mas elas não ajudam no problema. O QGIS não possui a sensação agradável, escorregadia e suave de outros visualizadores de mapa. O cache ainda está nos cartões?

orieeel
fonte
Este é um dos maiores ódios de estimação com Qgis. O problema é realmente terrível quando você tem uma camada do OpenLayers Plugin no seu mapa.
Devdatta Tengshe
Não é o ideal, mas você pode desativar a renderização marcando a rendercaixa na barra de ferramentas inferior. Isso significa que os dados fora da viewport atual não são mais mostrados / atualizados.
DJQ
é ainda mais irritante quando você pensa que as mesmas camadas são renderizadas "corretamente" pelo geoserver e até pelo udig. Infelizmente eu não posso recorrer a eles, eu preciso de recursos de SQL Avançado do QGIS para testar algumas consultas geo
orieeel
1
@orieeel geoserver e uDig são feitos em Java e usar uma técnica de renderização diferente
Nathan W
No Master, você pode tentar Configurações -> Opções ... -> Renderização e assinalar "Ativar buffer traseiro". Não tenho certeza se isso é possível no 1.8. N
nhopton

Respostas:

6

Para quem ainda está tendo esse problema, no QGIS 2.10, você pode ir para Configurações> Opções> Renderização e alterar o intervalo de atualização do mapa para maior. Se o QGIS puder renderizar todas as camadas em menos que esse período, ele atualizará toda a tela de uma só vez, o que elimina o piscar. Se ele não puder atualizar todas as camadas antes que esse intervalo passe, ele mostrará uma atualização parcial, o que fará com que pisque. Você pode ver quanto tempo demora uma atualização de tela ativando o sinalizador de depuração nas configurações de renderização.

Matt
fonte
Estou digitando polígonos com base em imagens UAV (imagem RGB raster de 1 GB) e depois de atualizar o polígono, a imagem é recarregada a cada vez. isso levou cerca de 5 segundos para cada polígono! No meu caso "use render cache" nas mesmas opções resolveu meu problema! QGIS 2.10.
Jens
5

Receio que a resposta seja: você pode impedir que o QGIS pisque, financiando um desenvolvedor para implementar uma versão não piscante.

underdark
fonte
1
Para explicar o porquê: Atualmente, tudo se resume a como as camadas e os recursos são renderizados no mecanismo de renderização. Existem alguns desenvolvimentos futuros, principalmente multiencadeamento e cache, que devem ajudar a reduzir isso, mas não totalmente.
Nathan W
1
Subterrâneo: LOL
QgisTn
@underdark desejo que eu pudesse, mas isso não vai acontecer a partir do meu orçamento para estudantes.
Orieeel 22/01
@ Nathan-w apenas testou o raster landcover de qgis demonstração conjunto de dados e não há são panning problemas então eu tenho certeza que o problema aparece principalmente quando as camadas não estão em localhost
orieeel
? talvez este problema pode ser resolvido por meio de um servidor no localhost para cache ... é simplesmente incrível o WMS / WFS dados que já foi baixado não é reutilizado ..
orieeel
3

Existe uma "correção" fácil se você for corajoso o suficiente para alterar a fonte de código do QGIS:

Abra 'qgsmaptoolpan.cpp' e, no membro 'canvasMoveEvent' correspondente, adicione a frase "mCanvas-> refresh ();" do seguinte modo:

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

(QGIS versão 1.8 Lisboa)

Isso forçará uma atualização contínua no mapa enquanto você estiver usando o mouse. Poderia ir um pouco mais devagar, mas funciona bem, sim, um relaxamento para os meus olhos.

user15765
fonte
onde está esse arquivo ..? Eu não posso encontrá-lo em meus OpenSuse 12.x Graças
tomsik
Por que a necessidade de modificar o código fonte quando pode simplesmente substituir o método?
sean