Đường thẳng từ Nhãn đến Tính năng trong QGIS?


11

Những gì tôi đang cố gắng làm là gắn nhãn cho một loạt các tính năng điểm nhưng do mật độ của các tính năng điểm tôi sẽ phải di chuyển các nhãn khỏi các tính năng điểm. Sau đó tôi muốn sử dụng một đường thẳng đơn giản (không phải là một mũi tên) để hiển thị nhãn nào đề cập đến điểm nào.

Tôi đã sử dụng plugin Easy Easy Nhãn Nhãn để tạo nhãn và di chuyển chúng đến nơi tôi muốn. Nhưng điều tôi không thể làm là tạo một đường thẳng mỏng đơn giản giữa điểm và bảng.

Điều tốt nhất tôi đã đạt được là thay đổi kiểu lớp biểu tượng trên mạng (lớp nhãn> Thuộc tính> Kiểu) thành mũi tên Mũi nhọn, bỏ chọn Mũi tên cong cong và bỏ chọn mũi tên lặp lại trên mỗi phân đoạn. Và sau đó tạo chiều dài đầu và độ dày 0 và làm cho chiều rộng mũi tên của chiều rộng Mũi tên và độ rộng của mũi tên bắt đầu khi điều này càng tốt. Nhưng điều này vẫn tạo ra một dòng chunky. Xem hình A.

Tôi đã thử thiết lập biểu tượng trên mạng sau đó, gõ vào dòng chữ đơn giản, nhưng điều này dẫn đến các đường có kinks / đỉnh / góc trong đó. Xem hình ảnh B.

Lý tưởng nhất là tôi muốn các đường thẳng giữa các nhãn và tính năng (như trong hình A) có chiều rộng tương tự như trong hình B.

Ví dụ về hai loại ghi nhãn

Câu trả lời:


11

Bạn có thể sử dụng biểu thức để tạo đường giữa nhãn và hình học

nhập mô tả hình ảnh ở đây

Giải thích:

CASE 
 WHEN (label_x IS NOT NULL AND label_y IS NOT NULL) THEN
  make_line(centroid($geometry),make_point(label_x -2,label_y), make_point(label_x ,label_y))
ELSE
  NULL
END

Và điều này sẽ dẫn đến kết quả:

nhập mô tả hình ảnh ở đây


Chỉ là một sidenote, nếu các nhãn được di chuyển thủ công bằng cách sử dụng thanh công cụ thuộc tính nhãn và vị trí được lưu trữ trong dự án, các biến nhãn_x, y sẽ thay đổi thành các trường được gọi là "phụ trợ_lác_labeling_poseitionx" và "phụ trợ
Gabriel C.

1
Đặt 2 đơn vị điểm giữa của bạn về phía tây như bạn làm ở đây make_point(label_x -2,label_y)sẽ làm cho các nhãn ở bờ tây trông buồn cười. Ngoài ra, làm việc ở một quy mô khác nhau sẽ làm cho điều này trở nên vô dụng. Nó sẽ hoạt động tốt hơn khi đặt điểm này liên quan đến khoảng cách đến nhãn của bạn và vị trí tương đối từ tâm của bạn.
Albert

2

Câu trả lời của Carlos làm cho một nhà lãnh đạo được sắp xếp theo chiều ngang ở đầu nhãn chỉ có một điểm ít hơn trong trình tạo hình học cho các đường thẳng. Trong ví dụ của tôi, tôi đã di chuyển các nhãn theo cách thủ công bằng cách sử dụng thanh công cụ ghi nhãn trong QGIS 3.0.3. Lưu ý rằng kỹ thuật có thể được tìm thấy trong câu hỏi 232709 .

Những thay đổi duy nhất tôi cần thực hiện là các giá trị x, y trong biểu thức của tôi:

CASE
   WHEN ("auxiliary_storage_labeling_positionx" IS NOT NULL AND "auxiliary_storage_labeling_positiony" IS NOT NULL) THEN
        make_line(centroid($geometry),make_point("auxiliary_storage_labeling_positionx","auxiliary_storage_labeling_positiony"))
   ELSE
      NULL
END

Đối với bản thân người lãnh đạo, cây tượng trưng đi như thế này:

  • Lấp đầy
    • Máy phát điện hình học
      • Hàng
        • Điểm đánh dấu
          • Đánh dấu
            • Điểm đánh dấu đơn giản
          • Dòng đơn giản

Để đảm bảo các nhà lãnh đạo kết thúc tại trung tâm nhãn, chỉ cần chỉnh sửa các giá trị trong căn chỉnh dữ liệu được xác định của nhãn thành 'Trung tâm' cho chiều ngang và 'Một nửa' cho chiều dọc. Để định kiểu dòng thành bất cứ thứ gì bạn cần, hãy sử dụng dòng đơn giản được lồng trong dòng đánh dấu.

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.