パンするたびにQGISの点滅を停止するにはどうすればよいですか?


8

パンが非常に煩わしいときにQGISがキャンバスを描画する方法。少しでも地図をパンすると、レイヤーが描画される前に、すべてが1〜2秒空白になります。これは、レイヤーコンテンツがダウンロードされることになっている場合にのみ発生するようです(私のPostGISレイヤーは目を痛めることなく描画されています)。これは、コードではなく構成の問題にすぎない可能性があります。誰かが解決策を持っていますか?

ああ、そして質問は「QGISをてんかんに適したものにするにはどうすればよいか」ということです。それはその迷惑なことです。

QGIS 2.4以降の質問をするための編集:

これはまだ2.4の問題のようです。[設定]> [レンダリング]の下に役立つ設定があるようですが、これらは問題を解決しません。QGISには、他のマップビューアのようにすばらしく、滑らかな感じがありません。キャッシュはまだカードに残っていますか?


これはQgisで最大のペットのおしっこの1つです。マップにOpenLayersプラグインのレイヤーがある場合、問題は本当にひどいです。
Devdatta Tengshe 2013年

理想的ではありませんがrender、下部のツールバーのボックスをチェックすることでレンダリングをオフにすることができます。ただし、現在のビューポート外のデータは表示/更新されなくなります。
djq 2013年

同じレイヤーがgeoserverやudigによって「正しく」レンダリングされると考えると、さらに面倒です。悲しいかな、それらに頼ることはできません。いくつかの地理クエリをテストするためにqgisの高度なSQL機能が必要です
orieeel

1
@orieeel geoserverとudigはJavaで実行され、異なるレンダリング手法を使用します
Nathan W

マスターでは、[設定]-> [オプション...]-> [バックバッファを有効にする]をレンダリングしてチェックします。これが1.8で可能かどうかはわかりません。N.
nhopton 2013年

回答:


6

この問題が解決しない場合は、QGIS 2.10で[設定]> [オプション]> [レンダリング]に移動し、マップの更新間隔を大きくすることができます。QGISがすべてのレイヤーをこの時間より短い時間でレンダリングできる場合、キャンバス全体を一度に更新し、点滅を取り除きます。この間隔が経過する前にすべてのレイヤーを更新できない場合は、部分的な更新が表示され、点滅が発生します。レンダリング設定でデバッグフラグを有効にすると、キャンバスの更新にかかる時間を表示できます。


UAV画像(1GBラスターRGB画像)に基づいてポリゴンをディジタイズしており、ポリゴンを更新した後、画像が毎回再読み込みされます。ポリゴンごとに約5秒かかりました。私の場合、同じオプションで「レンダーキャッシュを使用する」で問題が解決しました。QGIS 2.10。
Jens

5

答えは次のとおりです。点滅していないバージョンを実装するために開発者に資金を提供することで、QGISの点滅を停止できます。


1
理由を説明するには:現在、レイヤーとフィーチャがレンダリングエンジンでどのようにレンダリングされるかにかかっています。主にマルチスレッド化とキャッシングという将来の開発がいくつかありますが、これはこれを減らすのに役立つはずですが、完全ではありません。
Nathan W

1
Underdark:LOL
QgisTn 2013年

@underdarkができればいいのにと思っていますが、学生の予算では実現できません。
orieeel 2013年

@ nathan-wはqgisデモデータセットのランドカバーラスタをテストしたばかりであり、パンの問題はありません。問題は主に、レイヤがローカルホスト上にないときに発生すると確信しています
orieeel

?多分この問題は、キャッシングにlocalhost上のサーバーを使用することによって解決することができます...それは、WMSだけで信じられない/ ..すでにダウンロードが再利用されていないされたデータをWFS
orieeel

3

QGISのコードソースを変更する勇気がある場合は、簡単な「修正」があります。

'qgsmaptoolpan.cpp'を開き、対応する 'canvasMoveEvent'メンバーに「mCanvas-> refresh();」という文を追加します。次のように:

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

(QGISバージョン1.8 Lisboa)

これにより、マウスでパンしている間、マップが継続的に更新されます。それは少し遅くなるかもしれませんが、それはうまくいきます、ええ、私の目のためにリラックスしてください。


そのファイルはどこですか?OpenSuse 12.xのおかげで見つかりません。ありがとう
tomsik

メソッドをオーバーライドできるのに、なぜソースコードを変更する必要があるのですか。
2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.