Dán nhãn tự động là một vấn đề thực sự khó khăn, nhưng tính năng hình học không phải là quá xấu.
Ngay cả khi bạn có thể có được vị trí để làm việc đầy đủ hầu hết thời gian, vẫn có khả năng có ngoại lệ. Một số trong số này bạn sẽ nhận thấy và có thể giải quyết. Những người khác bạn sẽ không chú ý khi tạo một bản đồ lớn hoặc ô vuông vì bạn không thể đổ trên mỗi inch trên bản đồ của mình ở nhiều tỷ lệ khác nhau. Hầu như luôn luôn bạn sẽ có nhu cầu di chuyển một số nhãn được đặt tự động theo cách thủ công, từ góc độ bản đồ.
Như tôi đã đề xuất trong nhận xét của mình, tôi sẽ làm cho vấn đề dễ dàng hơn đối với công cụ ghi nhãn. Trong trường hợp này, tôi sẽ làm điều này bằng cách xác định các dòng sông của mình là chế độ xem bảng *, với hình học sông được cắt bớt để tôn trọng ranh giới hồ. Theo cách đó, không có đặc điểm sông bên trong hồ được dán nhãn và không có va chạm nhãn.
* Tôi giả sử việc sử dụng RDBMS ở đây, như PostgreSQL / PostGIS, để thuận tiện và khả năng chỉ cập nhật nguồn dữ liệu có thẩm quyền của bạn và có chế độ xem mà không cần sự can thiệp của bạn. Nhưng bạn cũng có thể thực hiện một số công việc trả trước với các tệp tĩnh để cắt và xóa các tính năng, nhưng tôi không khuyên bạn nên làm điều này nếu bạn có kế hoạch xem lại bản đồ.
Thí dụ:
Bắt đầu với hai shapefile (có thể là bảng cơ sở dữ liệu) của sông và hồ, với các con sông giao nhau với hồ và gây ra các vấn đề về nhãn khó giải quyết hoàn toàn và tự tin:
Mang những thứ này vào Postgres nếu bạn cần với shp2pgsql :
shp2pgsql -s 4326 /data/lake public.lakes | psql -d mydb
shp2pgsql -s 4326 /data/river public.rivers | psql -d mydb
Sau đó, xác định chế độ xem với ST_Difference :
CREATE OR REPLACE VIEW rivers_clipped AS
SELECT r.id, ST_Difference(r.geom, l.geom) AS geom, r.name
FROM public.rivers AS r, public.lakes AS l;
Thêm chế độ xem vào bố cục của bạn:
Mặc dù vấn đề trong ví dụ của tôi là cố tình bịa đặt, các kiểu trong hai lớp sông (nguyên bản và khung nhìn) là như nhau, và chúng được đặt trên đỉnh hồ theo thứ tự vẽ. Khi bạn cập nhật hình học của hồ hoặc sông, bạn sẽ không cần phải làm gì nhiều hơn là làm mới kết xuất.