Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

The way QGIS draws the canvas when panning is quite annoying. If I pan the map even a little bit everything goes blank for a second or two before the layers are drawn. It looks like this happens only when the layer content is supposed to be downloaded (my PostGIS layers are drawn without hurting my eyes), so this might be just a problem with the configuration rather than the code. Does anyone have a solution?

Oh, and the question should be "how can I make QGIS suitable for epileptics?". It's that annoying.

EDIT to pose question for QGIS 2.4 onwards:

This still appears to be an issue in 2.4. There seem to be some helpful setting under Settings > Rendering but these don't help the issue. QGIS just lacks the nice, slippy, smooth feel of other map viewers. Is caching still on the cards?

share|improve this question
    
This is one of biggest pet peeves with Qgis. The problem is really terrible when you have a layer from the OpenLayers Plugin in your map. –  Devdatta Tengshe Jan 22 '13 at 3:20
    
It's not ideal, but you can turn off rendering by ticking the render box on the bottom toolbar. This means that data outside the current viewport is no longer shown/refreshed, though. –  djq Jan 22 '13 at 6:36
    
it is even more annoying when you think that the same layers are rendered "correctly" by geoserver and even udig. Alas i cannot turn to them, i need qgis's advanced sql capabilities to test some geo queries –  orieeel Jan 22 '13 at 11:59
1  
@orieeel geoserver and udig are done in Java and use a different rendering technique –  Nathan W Jan 22 '13 at 13:07
    
In Master you could try Settings -> Options... -> Rendering and ticking "Enable back buffer". Not sure if this is possible in 1.8. N. –  nhopton Mar 4 '13 at 19:36

2 Answers 2

I'm afraid the answer is: You can stop QGIS from blinking by funding a developer to implement a non-blinking version.

share|improve this answer
1  
To explain why: It currently comes down to how the layers and features are rendered in the rendering engine. There are some future developments, mainly multi-threading, and caching, that should help to reduce this but not fully. –  Nathan W Jan 22 '13 at 7:58
    
Underdark : LOL –  QgisTn Jan 22 '13 at 10:33
    
@underdark wish i could, but it won't happen from my student budget. –  orieeel Jan 22 '13 at 12:06
    
@nathan-w just tested the landcover raster from qgis demo dataset and there are no panning problems SO i'm pretty sure the problem appears mainly when the layers are not on localhost –  orieeel Jan 22 '13 at 12:24
    
maybe this problem can be solved by using a server on localhost for caching?...it's just incredible the wms/wfs data that has already been downloaded is not reused.. –  orieeel Jan 22 '13 at 12:28

There's an easy "fix" if you're brave enough to change the code source of QGIS:

Open 'qgsmaptoolpan.cpp', and into the corresponding 'canvasMoveEvent' member, add the sentence "mCanvas->refresh();" as follows:

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

(QGIS version 1.8 Lisboa)

This will force a continuous refresh on the map while you are panning with the mouse. It could go a bit slower, but it works fine, yeah, a relax for my eyes.

share|improve this answer
    
where is that file..? I can't find it in my OpenSuse 12.x Thanks –  tomsik Apr 2 '13 at 8:26
    
Why the need to modify the source code when can just override the method? –  seanlinmt Nov 8 at 9:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.