Công cụ Hình học - Buffer Đơn giản hóa Cắt Online

Công cụ hình học GIS miễn phí: tạo vùng buffer, đơn giản hóa hình học với Douglas-Peucker, cắt theo hộp giới hạn hoặc đa giác. Xử lý dữ liệu GeoJSON/WKT ngay lập tức.

info Tạo vùng buffer xung quanh hình học ở khoảng cách được chỉ định.

Công cụ xử lý hình học là gì?

Công cụ xử lý hình học thực hiện các thao tác không gian trên các đối tượng địa lý. Các thao tác này là nền tảng trong phân tích GIS, lập bản đồ và xử lý dữ liệu không gian. Công cụ này cung cấp ba thao tác thiết yếu: buffer, đơn giản hóa và cắt.

Các thao tác này được sử dụng rộng rãi trong quy hoạch đô thị, phân tích môi trường, mạng lưới giao thông và nhiều ứng dụng không gian địa lý khác. Hiểu cách thao tác hình học là rất quan trọng cho phân tích không gian hiệu quả.

Các thao tác chính:

  • Buffer: Tạo vùng ảnh hưởng xung quanh đối tượng (vd: 500m xung quanh sông)
  • Đơn giản hóa: Giảm độ phức tạp hình học trong khi giữ nguyên hình dạng (thuật toán Douglas-Peucker)
  • Cắt: Trích xuất các phần của hình học trong ranh giới hoặc hộp giới hạn
  • Trực quan hóa: Xem trước kết quả trên bản đồ tương tác
  • Nhiều định dạng: Hỗ trợ đầu vào/đầu ra GeoJSON và WKT

Thao tác Buffer

Buffer tạo vùng có khoảng cách xác định xung quanh một hình học. Đây là một trong những thao tác không gian phổ biến nhất trong phân tích GIS.

Tham số buffer:

  • Khoảng cách: Buffer mở rộng bao xa từ hình học gốc
  • Đơn vị: Mét, kilômét, dặm hoặc feet
  • Số bước: Chất lượng đường cong buffer (8-64 bước, cao hơn = mượt hơn nhưng phức tạp hơn)

Các trường hợp sử dụng buffer phổ biến:

  • Phân tích gần gũi: Tìm khu vực trong khoảng cách của một đối tượng (vd: 1km từ tàu điện ngầm)
  • Vùng tác động: Xác định khu vực bị ảnh hưởng bởi ô nhiễm, tiếng ồn hoặc các yếu tố khác
  • Vùng dịch vụ: Xác định khu vực phủ sóng cho cơ sở vật chất hoặc dịch vụ
  • Quy định lùi: Thực thi yêu cầu khoảng cách tối thiểu trong quy hoạch

Thao tác Đơn giản hóa (Douglas-Peucker)

Đơn giản hóa giảm số lượng đỉnh trong hình học trong khi giữ nguyên hình dạng chung. Thuật toán Douglas-Peucker là tiêu chuẩn công nghiệp cho đơn giản hóa đường và đa giác.

Tham số đơn giản hóa:

  • Dung sai: Khoảng cách tối đa một điểm đơn giản hóa có thể lệch khỏi gốc (thấp hơn = chi tiết hơn)
  • Chất lượng cao: Sử dụng nhiều tính toán hơn cho kết quả tốt hơn (tùy chọn)

Khi nào sử dụng đơn giản hóa:

  • Hiển thị bản đồ: Giảm chi tiết để hiển thị nhanh hơn ở tỷ lệ nhỏ
  • Lưu trữ dữ liệu: Giảm kích thước tệp cho bộ dữ liệu lớn
  • Hiệu suất Web: Tối ưu hóa hình học cho ứng dụng bản đồ web
  • Tổng quát hóa: Tạo mức chi tiết phù hợp cho các mức zoom khác nhau

Lưu ý: Dung sai tính bằng độ cho tọa độ địa lý hoặc theo đơn vị của tọa độ chiếu. Bắt đầu với giá trị nhỏ (0.0001-0.001 cho độ) và tăng khi cần thiết.

Thao tác Cắt

Cắt trích xuất phần của hình học nằm trong ranh giới xác định. Điều này còn được gọi là 'cắt bánh quy' hoặc 'giao điểm không gian'.

Phương pháp cắt:

  • Hộp giới hạn: Cắt theo phạm vi hình chữ nhật [minX, minY, maxX, maxY]
  • Đa giác: Cắt theo ranh giới đa giác tùy chỉnh (hỗ trợ hình dạng phức tạp)

Các trường hợp sử dụng cắt phổ biến:

  • Trích xuất vùng nghiên cứu: Trích xuất dữ liệu cho vùng quan tâm cụ thể
  • Ranh giới hành chính: Cắt đối tượng theo giới hạn quốc gia, tiểu bang hoặc thành phố
  • Phân tập dữ liệu: Tạo bộ dữ liệu nhỏ hơn từ bộ dữ liệu địa lý lớn
  • Sản xuất bản đồ: Chuẩn bị dữ liệu để phù hợp với phạm vi bản đồ cụ thể

Chi tiết thuật toán

Thuật toán Douglas-Peucker:

Thuật toán Douglas-Peucker hoạt động bằng cách chia đệ quy một đường và loại bỏ các điểm nằm trong dung sai xác định của đoạn thẳng. Nó hiệu quả và tạo ra kết quả xuất sắc cho hầu hết các hình học.

  • Bước 1: Vẽ đường từ điểm đầu đến điểm cuối
  • Bước 2: Tìm điểm xa nhất từ đường này
  • Bước 3: Nếu khoảng cách >dung sai, giữ điểm và đệ quy trên các đoạn
  • Bước 4: Nếu khoảng cách ≤ dung sai, loại bỏ tất cả các điểm ở giữa

Thực hành tốt nhất

Mẹo để xử lý hình học hiệu quả:

  • Buffer: Sử dụng đơn vị phù hợp cho dữ liệu của bạn (mét cho địa phương, độ cho toàn cầu)
  • Đơn giản hóa: Thử các dung sai khác nhau để tìm sự cân bằng phù hợp giữa chi tiết và kích thước
  • Cắt: Xác thực ranh giới cắt của bạn nằm trong cùng một hệ tọa độ
  • Hiệu suất: Đơn giản hóa hình học phức tạp trước các thao tác khác
  • Xác thực: Luôn trực quan hóa kết quả để đảm bảo chúng đáp ứng yêu cầu của bạn

Các thao tác này có thể được kết hợp: ví dụ, buffer một đường, sau đó cắt vào vùng nghiên cứu, sau đó đơn giản hóa để hiển thị web.

Câu hỏi thường gặp

Công cụ này áp dụng các thao tác hình học phổ biến lên dữ liệu vector: đệm (mở rộng đối tượng ra ngoài theo khoảng cách), đơn giản hóa (giảm số đỉnh trong khi giữ hình dạng), và cắt (cắt đối tượng theo hộp giới hạn hoặc đa giác). Nó chấp nhận GeoJSON Point, LineString, Polygon, MultiPolygon, và FeatureCollection, và xuất GeoJSON mới với thao tác đã áp dụng. Đệm hữu ích cho phân tích lân cận như tìm mọi thứ trong vòng 500 m của một con sông. Đơn giản hóa giảm kích thước tệp trước khi phục vụ tile. Cắt cô lập vùng quan tâm. Tất cả thao tác chạy hoàn toàn phía máy khách; không có gì được tải lên.

Mọi GeoJSON đầu vào nên dùng kinh-vĩ độ WGS84 (EPSG:4326), CRS duy nhất mà đặc tả GeoJSON cho phép theo RFC 7946. Tọa độ là độ thập phân, với kinh độ (X) trước và vĩ độ (Y) sau. Nếu dữ liệu của bạn ở CRS chiếu như UTM, Web Mercator (EPSG:3857), hoặc lưới quốc gia, hãy chiếu lại sang WGS84 trước bằng QGIS, GDAL ogr2ogr, hoặc công cụ chuyển đổi tọa độ. Khoảng cách đệm bạn chỉ định được đo bằng mét dọc theo mặt đất, dùng phép tính trắc địa tính đến độ cong của Trái Đất, nên bạn có thể đệm chính xác ngay cả ở vĩ độ cao.

Đệm được tính bằng mét trắc địa thay vì độ, nên hình dạng kết quả tính đúng sự hội tụ của các kinh tuyến ở vĩ độ cao hơn. Đệm 1000 mét quanh một điểm ở Oslo (60 độ bắc) phủ một nửa khoảng kinh độ của cùng đệm đó quanh một điểm trên xích đạo, đúng như thực tế vật lý yêu cầu. Bên trong, công cụ chiếu mỗi đỉnh sang phép chiếu phương vị địa phương, dịch biên theo khoảng cách yêu cầu, và chiếu lại về WGS84. Điều này chính xác hơn đệm Euclide phẳng, vốn sẽ làm biến dạng nghiêm trọng hình dạng ngoài vùng nhiệt đới.

Mặc định là thuật toán Visvalingam-Whyatt với tùy chọn dự phòng Douglas-Peucker. Visvalingam-Whyatt lặp đi lặp lại loại bỏ điểm có tam giác (tạo bởi hai hàng xóm) có diện tích nhỏ nhất, lặp lại cho đến khi đạt dung sai. Cách này bảo toàn các góc quan trọng về mặt nhận thức tốt hơn Douglas-Peucker, đặc biệt trên đường bờ biển và đa giác phức tạp. Dung sai được biểu diễn bằng mét và xấp xỉ tương ứng với độ dịch chuyển tối đa của bất kỳ đỉnh nào so với đường gốc. Đối với tile bản đồ web, 1 đến 5 mét ở zoom 18 xuống tới 1000 mét ở zoom 5 là điển hình. Topo được giữ cho FeatureCollection.

GeoJSON là định dạng tiêu chuẩn mở để mã hóa các đối tượng địa lý (RFC 7946, xuất bản 2016). Nó là tài liệu JSON với lược đồ được định nghĩa nghiêm ngặt: đối tượng Feature bao bọc một hình học (Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, hoặc GeometryCollection) và một đối tượng properties. GeoJSON đã trở thành ngôn ngữ chung toàn cầu của bản đồ web vì nó dễ đọc, gốc với JavaScript, và được render gốc bởi Leaflet, Mapbox GL, Google Maps, OpenLayers, và mọi công cụ địa không gian hiện đại. Công cụ này yêu cầu GeoJSON để các thao tác có ngữ nghĩa hình học rõ ràng và đầu ra có thể dán trực tiếp vào bất kỳ trình xem nào.

Polygon là một hình kín đơn được định nghĩa bởi một vòng ngoài (biên) và không hoặc nhiều vòng trong (các lỗ cắt ra khỏi nó). MultiPolygon là danh sách các Polygon nên được coi như một đối tượng duy nhất, như các đảo của Indonesia hay các lãnh thổ không liền nhau của Pháp. Đặc tả GeoJSON phân biệt chúng để các thao tác hoạt động đúng: đệm MultiPolygon đệm từng phần riêng lẻ, trong khi đơn giản hóa Polygon giữ biên đơn của nó. Công cụ này xử lý cả hai một cách minh bạch, nhưng bạn nên xuất MultiPolygon khi đối tượng của bạn không liên tục về mặt địa lý.

Đối với tệp dưới 50 MB, hiệu năng tuyệt vời và thao tác hoàn thành trong vài giây. Giữa 50 và 200 MB, mong đợi 10 đến 60 giây xử lý và áp lực bộ nhớ có thể có trên thiết bị có dưới 4 GB RAM. Trên 200 MB, bạn nên tiền xử lý phía máy chủ với GDAL hoặc Mapshaper, hoặc chia dữ liệu theo vùng trước khi tải lên. Công cụ dùng Turf.js, vốn tải toàn bộ FeatureCollection vào các đối tượng JavaScript; trình duyệt hiện đại giới hạn một tab ở khoảng 2 đến 4 GB heap. Đối với tập dữ liệu khổng lồ, xem xét streaming qua GeoJSON phân cách dòng mới xử lý phía máy chủ.

Số học dấu phẩy động trong quá trình đệm, đơn giản hóa, hay cắt giới thiệu lỗi làm tròn nhỏ, thường ở chữ số thập phân thứ 10 đến 15. Những dịch chuyển này không đáng kể cho việc hiển thị (dưới 1 micromet trên mặt đất tại xích đạo) nhưng có thể gây vấn đề trong kiểm tra topo nghiêm ngặt. Nếu bạn cần bảo toàn chính xác, dùng dung sai đơn giản hóa đặt thành không để bỏ qua bước đó, hoặc dùng CRS như EPSG:3857 trước khi xử lý và chuyển ngược lại. Đối với hầu hết mục đích bản đồ và phân tích, độ trôi dấu phẩy động vô hình.
Công cụ Hình học - Buffer Đơn giản hóa Cắt Online — Công cụ hình học GIS miễn phí: tạo vùng buffer, đơn giản hóa hình học với Douglas-Peucker, cắt theo hộp giới hạn hoặc đa
Công cụ Hình học - Buffer Đơn giản hóa Cắt Online