Làm thế nào tôi có thể làm cho QGIS ngừng nhấp nháy mỗi khi tôi Pan?


8

Cách QGIS vẽ bạt khi panning khá khó chịu. Nếu tôi xoay bản đồ dù chỉ một chút, mọi thứ sẽ trống trong một hoặc hai giây trước khi các lớp được vẽ. Có vẻ như điều này chỉ xảy ra khi nội dung lớp được cho là được tải xuống (các lớp PostGIS của tôi được vẽ mà không làm tổn thương mắt tôi), vì vậy đây có thể chỉ là vấn đề với cấu hình chứ không phải mã. Có ai có giải pháp không?

Ồ, và câu hỏi nên là "làm thế nào tôi có thể làm cho QGIS phù hợp với bệnh động kinh?". Thật là khó chịu.

EDIT để đặt câu hỏi cho QGIS 2.4 trở đi:

Đây vẫn là một vấn đề trong 2.4. Dường như có một số cài đặt hữu ích trong Cài đặt> Kết xuất nhưng những điều này không giúp ích cho vấn đề. QGIS chỉ thiếu cảm giác đẹp, mượt mà, mượt mà của những người xem bản đồ khác. Bộ nhớ đệm vẫn còn trên thẻ?


Đây là một trong những thú cưng lớn nhất với Qgis. Vấn đề thực sự khủng khiếp khi bạn có một lớp từ Plugin OpenLayers trong bản đồ của mình.
Devdatta Tengshe

Điều đó không lý tưởng, nhưng bạn có thể tắt kết xuất bằng cách đánh dấu vào renderô trên thanh công cụ dưới cùng. Điều này có nghĩa là dữ liệu ngoài chế độ xem hiện tại không còn được hiển thị / làm mới nữa.
djq

thậm chí còn khó chịu hơn khi bạn nghĩ rằng các lớp tương tự được hiển thị "chính xác" bởi geoserver và thậm chí udig. Than ôi tôi không thể quay sang họ, tôi cần các khả năng sql nâng cao của qgis để kiểm tra một số truy vấn địa lý
orieeel

1
@orieeel geoserver và udig được thực hiện bằng Java và sử dụng một kỹ thuật kết xuất khác
Nathan W

Trong Master, bạn có thể thử Cài đặt -> Tùy chọn ... -> Kết xuất và đánh dấu "Bật lại bộ đệm". Không chắc chắn nếu điều này là có thể trong 1.8. N.
nhopton

Câu trả lời:


6

Đối với bất kỳ ai vẫn gặp phải sự cố này, trong QGIS 2.10, bạn có thể truy cập Cài đặt> Tùy chọn> Kết xuất và thay đổi khoảng thời gian cập nhật Bản đồ thành lớn hơn. Nếu QGIS có thể hiển thị tất cả các lớp trong ít hơn khoảng thời gian này, nó sẽ cập nhật toàn bộ khung vẽ cùng một lúc, giúp loại bỏ nhấp nháy. Nếu nó không thể cập nhật tất cả các lớp trước khi khoảng thời gian này trôi qua, nó sẽ hiển thị một bản cập nhật một phần, gây ra nhấp nháy. Bạn có thể xem thời gian cập nhật canvas mất bao lâu bằng cách bật cờ gỡ lỗi trong cài đặt kết xuất.


Tôi đang số hóa các đa giác dựa trên hình ảnh UAV (hình ảnh raster RGB 1GB) và sau khi cập nhật đa giác, hình ảnh được tải lại mỗi lần. mất khoảng 5 giây cho mỗi đa giác! Trong trường hợp của tôi, "sử dụng kết xuất bộ nhớ đệm" trong cùng các tùy chọn đã giải quyết vấn đề của tôi! VÒI 2.10.
Jens

5

Tôi e rằng câu trả lời là: Bạn có thể ngăn chặn QGIS chớp mắt bằng cách tài trợ cho nhà phát triển để thực hiện phiên bản không chớp mắt.


1
Để giải thích lý do: Hiện tại chúng ta sẽ tìm hiểu cách các lớp và tính năng được hiển thị trong công cụ kết xuất. Có một số phát triển trong tương lai, chủ yếu là đa luồng và bộ nhớ đệm, sẽ giúp giảm bớt điều này nhưng không đầy đủ.
Nathan W

1
Underdark: LOL
QgisTn

@underdark ước tôi có thể, nhưng nó sẽ không xảy ra từ ngân sách sinh viên của tôi.
orieeel

@ nathan-w vừa kiểm tra raster đất nền từ bộ dữ liệu demo của qgis và không có vấn đề gì đáng lo ngại. Tôi chắc chắn vấn đề này xuất hiện chủ yếu khi các lớp không có trên localhost
orieeel

Có lẽ vấn đề này có thể được giải quyết bằng cách sử dụng máy chủ trên localhost để lưu vào bộ đệm? ... thật không thể tin được dữ liệu wms / wfs đã được tải xuống không được sử dụng lại ..
orieeel

3

Có một "sửa chữa" dễ dàng nếu bạn đủ can đảm để thay đổi nguồn mã của QGIS:

Mở 'qgsmaptoolpan.cpp' và vào thành viên 'canvasMoveEvent' tương ứng, thêm câu "mCanvas-> refresh ();" như sau:

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

(Phiên bản QGIS 1.8 Lisboa)

Điều này sẽ buộc làm mới liên tục trên bản đồ trong khi bạn di chuột bằng chuột. Nó có thể đi chậm hơn một chút, nhưng nó hoạt động tốt, ừ, thư giãn cho mắt tôi.


tập tin đó ở đâu ..? Tôi không thể tìm thấy nó trong OpenSuse 12.x Cảm ơn
tomsik

Tại sao cần phải sửa đổi mã nguồn khi chỉ có thể ghi đè phương thức?
sean
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.