Có cách nào để kết xuất các đường với một đường cong (bezier) mượt mà trong QGIS không?


33

Tôi đang chuyển từ việc tạo bản đồ bằng Illustrator sang tạo chúng bằng dữ liệu thực tế và dữ liệu. Một trong những điều tôi chưa thể tạo lại trong QGIS là những đường cong mượt mà tôi có thể có trong Illustrator. Tôi không nói về Tham gia và Phong cách Cap, nhưng làm thế nào toàn bộ một dòng được hiển thị.

Tôi đang tìm kiếm một câu trả lời không bao gồm xuất dưới dạng SVG sang Illustrator và hoàn thiện bản đồ ở đó.

Ngoài ra, tôi nhận ra rằng chúng có thể được coi là một đại diện không chính xác, nhưng, đối với hầu hết các bản đồ này là để cung cấp cho người lái một ý tưởng về nơi họ đang ở và không nhất thiết phải là một đại diện chính xác.

Đây là một ví dụ về những gì tôi có nghĩa là: nhập mô tả hình ảnh ở đây


2
Dữ liệu của bạn được lưu trữ như thế nào? Hầu hết các định dạng dữ liệu (ví dụ: shapefile) không cho phép cung. Tôi tin rằng một số cơ sở dữ liệu bây giờ làm mặc dù.
Darren đối thủ

Câu trả lời:


24

Kiểm tra plugin Generalizer, nó sẽ làm những gì bạn muốn. Các plugin có các tùy chọn làm mịn hoạt động khá tốt.

Nó không thay đổi cách hiển thị các dòng của bạn mà thay vào đó tạo một shapefile mới với việc làm mịn (hoặc đơn giản hóa / khái quát hóa) được áp dụng.

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

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


Tôi không thể tìm thấy plugin này cho QGIS 1.7.3 mặc dù tôi đã bật repos bên thứ 3. Bạn có thể chỉ cho bạn cách bật / tìm nó không? Trông thú vị và đơn giản.
SaultDon

3
Lạ thật. Nó nên có trong trình cài đặt plugin vì nó đến từ repo plugin QGIS chính.
Nathan W

3
Bạn nói đúng, nhưng từ Trình cài đặt Trình cắm Python, tôi phải chuyển đến tab tùy chọn và thay đổi "Các plugin được phép" thành: "Hiển thị tất cả các plugin, ngay cả những plugin được đánh dấu là thử nghiệm".
SaultDon

Cuối cùng tôi đã chơi với plugin này một chút và nó thực sự hoạt động tốt hơn vì tôi không phải sử dụng lớp GRASS và chỉ có thể chuyển đổi shapefile hiện tại của mình.
Brian Kelly

Tôi đã phải làm điều đó theo hai bước để số hóa rất chi tiết nhưng lởm chởm: đầu tiên đơn giản hóa (ví dụ thuật toán Lang), sau đó làm mịn. Làm việc một điều trị.
một ben khác

16

Sử dụng plugin QGIS + GRASS:

Thêm thanh công cụ Grass từ cửa sổ "Manage Plugins". thêm plugin công cụ cỏ vào qgis

Các dòng của bạn sẽ cần phải là một vectơ cỏ, vì vậy hãy chuyển đổi chúng thành một bộ bản đồ GRASS mới hoặc hiện có.

Từ thanh công cụ GRASS, chọn Công cụ GRASS ... nhập mô tả hình ảnh ở đây

Tìm mô-đun: v.generalize ( hướng dẫn WIKI tại đây )

Sau đó, bạn có thể chọn một số thuật toán khái quát hóa khác nhau: Công cụ GRASS v.generalize lựa chọn thuật toán

Lưu ý các thuật toán: Chaiken, Hermite hoặc thậm chí Sliding Average. Có một số người khác là tốt!

Sự khác biệt có thể được nhìn thấy trong các hình ảnh wiki: v.generalize đơn giản hóa sự khác biệt ví dụ

từ Wiki: "Lưu ý rằng, một điểm khác biệt giữa" Chaiken "và" Hermite "là các dòng được tạo bởi" Chaiken "" ghi "các dòng gốc trong khi các dòng" Hermite "" đăng ký "các dòng gốc như có thể thấy trong ảnh [ở trên]. (Dòng màu đen là dòng gốc, dòng màu xanh lá cây là "Chaiken" và màu xanh là "Hermite")


Sử dụng uDig + jgrasstools hoặc cỏ:

Nếu bạn gặp khó khăn khi nhận được kết quả mong muốn từ v.generalize của GRASS, hãy thử phiên bản mới nhất của uDig với jgrasstools . Bạn cũng có thể lấy bình cỏ từ cùng một nơi với jgrasstools.

Khi uDig được cài đặt và chạy và chạy, hãy bật Hộp công cụ không gian : Cửa sổ> Hiển thị chế độ xem> Khác ... kích hoạt hộp công cụ không gian trong uDig

Hủy bỏ thanh công cụ để dễ đọc hơn (bấm chuột phải vào tab Hộp công cụ không gian> Tách ...): tách hộp công cụ không gian trong uDig

Tải các mô-đun jgrasstools và cỏ (tùy chọn) cần thiết: tải jgrasstools / cỏ vào udig

Đừng quên thiết lập các tham số cỏ của bạn (trỏ đến tệp thực thi hoặc tập tin bat trên windows hoặc lệnh cỏ trong linux tức là / usr / bin / grass) nếu bạn cũng tải tập tin jar cỏ: thiết lập các tham số cỏ trong uDig

Cuối cùng! Sử dụng các công cụ từ jgrasstools (không phải cỏ), bạn có thể khái quát hóa dòng dễ dàng với Xử lý Vector> LineSmootherJaiTools Xử lý véc tơ thành LineSmootherJaiTools trong uDig

Đảm bảo đặt đúng đầu vào và đầu ra (chỉ hoạt động trên Shapefiles, do đó không cần phải chuyển đổi dữ liệu của bạn sang mapets / vị trí cho cỏ) : cài đặt đầu vào và đầu ra cho Hộp công cụ không gian trong uDig

Sau khi hoàn tất cài đặt dung sai làm mịn (0.0 - 1.0) và đầu vào / đầu ra, nhấn nút Play trên cửa sổ Hộp công cụ không gian (trên cùng bên phải): chơi mô-đun trong Hộp công cụ không gian cho uDig

Các kết quả:
uDig đơn giản hóa kết quả jgrasstools ...


Điều này có làm thay đổi dữ liệu gốc hay nó lọc theo cách trước khi QGIS kết xuất lại?
Brian Kelly

À, điều đó đã được trả lời ở đây: "Làm mịn" (Line) là một quá trình "đảo ngược", lấy đầu vào là một dòng và tạo ra một xấp xỉ mượt mà của bản gốc. Trong một số trường hợp, điều này đạt được bằng cách chèn các đỉnh mới vào dòng ban đầu, và có thể tổng cộng lên tới 4000% số lượng đỉnh trong bản gốc. Trong trường hợp như vậy, luôn luôn là một ý tưởng tốt để đơn giản hóa dòng sau khi làm mịn. " từ grass.osgeo.org/grass64/manuals/html64_user/v.generalize.html
Brian Kelly

Vì vậy, có vẻ như đây là điều bạn có thể sẽ áp dụng khi bạn xác nhận các dòng của mình hoàn toàn chính xác và không cần chỉnh sửa thêm (trừ khi bạn muốn điều chỉnh tất cả các vectơ bổ sung và sau đó làm mịn lại)
Brian Kelly

@spline Yea, vì bạn phải làm việc với "tập dữ liệu cỏ" về cơ bản - KHÔNG phải là shapefile, bạn sẽ muốn đảm bảo rằng shapefile ban đầu đã hoàn thành. Đơn giản hóa đường thẳng để loại bỏ các đỉnh bổ sung cũng là một tùy chọn tùy thuộc vào độ dài của đường và lượng đỉnh hiện diện trong đường cong bezier .
SaultDon

Ôi trời, cỏ chẳng có ý nghĩa gì với tôi ... tên bản đồ, tên địa điểm, dbase, PERMANENT ... Tôi đã cố gắng 'khám phá' cách sử dụng câu trả lời này (với việc thừa nhận không có kiến ​​thức trước về cỏ) và thất bại thảm hại. Các tệp dường như đi đến nơi bạn mong đợi nhất (tho Tôi đoán chúng không phải là các tệp?), Tôi không thể chọn lớp đã chuyển đổi của mình trong hộp thoại tổng quát sau khi tìm hiểu cách chọn bản đồ (không phải tôi biết ý nghĩa của nó là gì một bản đồ) ... ác mộng. Nhìn hàng hóa nếu tôi có thể giải quyết tất cả mặc dù :)
một ben khác

1

Có một cách khác, có thể là cách này chỉ kể từ phiên bản QGIS 2.0:

Trong phần Xử lý> Hộp công cụ, bạn có thể truy cập GRASS và SAGA Tools. Để làm mịn, ở đó bạn tìm thấy v.generalize, nhưng cũng đơn giản hóa dòng từ SAGA. Các công cụ này hoạt động trên các shapefile thông thường, vì vậy không cần vectơ cỏ:

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

Chế độ hàng loạt vẫn chưa được giải quyết tốt (nhấp chuột phải vào menu bên phải và chọn "Thực thi theo lô", vì người ta phải chọn từng tệp một cách thủ công. Trình cắm tổng quát được đề cập thêm ở trên cho phép người ta chọn nhiều tệp đơn giản hơn , nhưng điều này chỉ hoạt động ngay bây giờ nếu một người không chỉ định một tệp để lưu vào, nếu không thì trình cắm bị hỏng.


1

Có một alghoritm hình học mịn dưới Processing Toolbox -> QGis geoalghoritms -> Vector.

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.