Chỉ hiển thị các điểm đánh dấu khi nhãn được hiển thị trong QGIS?


8

Có cơ hội để xác định quy tắc kiểu QGIS để chỉ hiển thị các điểm đánh dấu khi nhãn của chúng được hiển thị không?

Mục đích của tôi là loại trừ tất cả các điểm không được dán nhãn do va chạm giữa các nhãn.

Thí dụ:

Làm thế nào để chuyển đổi điểm vô hình khi nhãn của họ sụp đổ


Bạn có thể cung cấp một số ảnh chụp màn hình của bảng thuộc tính và các điểm hiện tại được hiển thị trên bản đồ không?
sao

@whyzar Hình ảnh ví dụ được tải lên
Jakob

2
Xung đột cũng có thể được giảm bớt, nếu bạn đặt tùy chọn "Không khuyến khích các nhãn khỏi tính năng che phủ" ở tab Kết xuất.
MAP

Tôi không nghĩ rằng điều này có thể được thực hiện. Không có gì trong API để kiểm tra xem nhãn có hiển thị hay không: qgis.org/api/ classQgsLabel.html
HeikkiVesanto

Một câu hỏi khác đã được hỏi bao gồm nhu cầu / mong muốn phát hiện tính năng nào được dán nhãn hay không. Bất kỳ câu trả lời hữu ích nào cũng có thể cung cấp cho ai đó một góc độ mới để tiếp cận vấn đề này.
Phil G

Câu trả lời:


3

Điều này không lý tưởng, nhưng nếu bạn ổn với nhãn luôn xuất hiện trên điểm đánh dấu, bạn có thể sử dụng nền trên nhãn của mình như một cách giải quyết.

  1. Chuyển đến Thuộc tính lớp và bên dưới Kiểu chọn "Không có ký hiệu" (có, bạn đọc đúng).
  2. Trong Nhãn, chọn Nền từ menu phụ (trông giống như biểu tượng đường cao tốc liên bang). Tôi thường sử dụng một SVG, nhưng một vòng tròn có thể hoạt động tốt cho những gì bạn muốn.
  3. Trong menu phụ Nền, quyết định Loại Kích thước: Bộ đệm hoặc Đã sửa. Với Bộ đệm, biểu tượng sẽ phóng to cho đến khi đủ lớn để bao gồm tất cả văn bản, vì vậy tôi hy vọng bạn sẽ muốn sửa. Ví dụ dưới đây sử dụng bộ đệm.
  4. Ở đầu phần Nhãn, chọn trường bạn muốn gắn nhãn hoặc nhập biểu thức.
  5. Hãy chắc chắn rằng Vị trí không được bù.

Nhược điểm:

  1. Các biến chứng có biểu tượng hiển thị trong một chú giải trong một nhà soạn nhạc in (có cách giải quyết bằng cách tạo một lớp khác và tham chiếu nó trong mục lục, trước khi tắt và khóa các lớp)
  2. Văn bản được tập trung vào biểu tượng. Bạn có thể ghép các khoảng trắng ở phía trước nhãn để dịch chuyển sang phải, nhưng sau đó nhiều nhãn khác bị che khuất và không hiển thị. Bạn không có tùy chọn để di chuyển nhãn xung quanh các điểm ít xung đột nhất.
  3. Bạn mất rất nhiều chức năng trong việc định dạng các biểu tượng, chẳng hạn như thang màu.
  4. Có vẻ như xung đột nhãn đôi khi cần nghiêm trọng hơn để che giấu nhãn - đôi khi của tôi trùng lặp mà không có một chút rắc rối nào. Đây có thể là kết quả của việc sử dụng loại kích thước bộ đệm.

Một ví dụ lấy tên tệp từ "trường_1" và xóa phần mở rộng .jpg để tạo thành văn bản nhãn cho các vị trí ảnh:

cài đặt

Kết quả:

phóng to: phóng to lên và thu nhỏ: thu nhỏ

(lưu ý - hướng các điểm biểu tượng svg được đặt bởi một biểu thức tham chiếu đến một trường khác trong bảng)



-2

Chỉ cần chọn tất cả các giá trị có nhãn bằng truy vấn, xuất sang lớp mới hơn là sử dụng lớp vừa tạo.


Bạn có thể cho tôi một ví dụ truy vấn ngắn để chọn các giá trị hiện hiển thị nhãn không?
Jakob

Chắc chắn cung cấp một ảnh chụp màn hình của bảng thuộc tính bạn đang làm việc và các trường có nhãn bạn muốn trong đó.
NULL.Dude

Tôi mới nhận ra điều này là dành cho QGIS Tôi làm việc chủ yếu với ArcGIS nhưng về lý thuyết thì quy trình phải giống nhau, để chọn tất cả dữ liệu được liên kết với các giá trị có nhãn, sau đó tạo lớp mới với các giá trị được chọn đó.
NULL.Dude

-3

Đặt quy tắc (kiểu dựa trên quy tắc) thành biểu tượng của bạn :

"label" IS NOT NULL

(giả sử, trường cho nhãn của bạn được đặt tên là "nhãn")

Bây giờ các biểu tượng sẽ được hiển thị, nếu trường cho nhãn không trống.


2
Tôi không nghĩ đó là những gì OP đang hỏi. Các giá trị trong nhãn sẽ không có giá trị, chúng chỉ không được hiển thị vì chúng trùng với các nhãn khác.
HeikkiVesanto

@Vesanto Có, các giá trị không phải là NULL.
Jakob
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.