Định dạng Shapefile là một trong những định dạng dữ liệu vectơ không gian địa lý phổ biến nhất được sử dụng để hiển thị thông tin địa lý. Trong một số trường hợp nhất định, chúng tôi có thể cần xuất dữ liệu địa lý từ định dạng ESRI Shapefile (SHP) sang định dạng SVG. SVG là một định dạng văn bản dựa trên XML để mô tả sự xuất hiện của một hình ảnh. Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển đổi shapefile thành SVG trong C#.
Bài viết này sẽ bao gồm các chủ đề sau:
C# Shapefile to SVG Converter API - Tải xuống miễn phí
Để chuyển đổi tệp hình dạng thành SVG, chúng tôi sẽ sử dụng API Aspose.GIS for .NET. Nó cho phép xuất shapefile sang SVG mà không cần phần mềm như ArcGIS, ArcMap, QGIS hoặc Google Earth. API cũng cho phép hiển thị bản đồ, tạo, đọc và chuyển đổi dữ liệu địa lý có sẵn ở các định dạng tệp được hỗ trợ.
Lớp Bản đồ của API là tập hợp các lớp có thể được hiển thị chồng lên nhau thông qua Trình kết xuất. Lớp SpatialReferenceSystem cung cấp danh sách các hệ quy chiếu không gian khác nhau để sử dụng cho bản đồ. Chúng ta có thể xác định một bộ ký hiệu dòng vectơ đơn giản bằng cách sử dụng lớp SimpleLine. Chúng ta có lớp VectorLayer đại diện cho một lớp vectơ trong API. Chúng ta có thể tải shapefile vào một lớp vectơ bằng phương thức Open (string, FileDriver) của lớp này. Nó mở lớp để đọc.
Vui lòng tải xuống DLL của API hoặc cài đặt nó bằng NuGet.
PM> Install-Package Aspose.GIS
Làm thế nào để chuyển đổi Shapefile sang SVG trong C#
Chúng tôi có thể dễ dàng chuyển đổi tệp hình dạng thành SVG bằng cách sử dụng Aspose.GIS cho .NET bằng cách làm theo các bước dưới đây:
- Khởi tạo Bản đồ.
- Gán tham chiếu không gian Wgs84 cho bản đồ.
- Mở một tệp hình dạng dưới dạng một lớp vectơ.
- Thêm lớp shapefile vào bản đồ.
- Hiển thị bản đồ ở định dạng SVG.
Bây giờ, hãy xem cách chuyển các bước này thành mã C# và chuyển đổi tệp shapefile sang định dạng SVG.
Render ShapeFile sang SVG trong C#
Vui lòng làm theo các bước dưới đây để hiển thị tệp hình dạng dưới dạng SVG:
- Đầu tiên, tạo một thể hiện của lớp Bản đồ.
- Tiếp theo, đặt SpatialReferenceSystem là Wgs84.
- Sau đó, xác định một ký hiệu dòng đơn giản bằng cách sử dụng lớp SimpleLine.
- Trong khi đó, tải một tệp hình dạng bằng phương thức VectorLayer.Open().
- Sau đó, thêm lớp shapefile vào bản đồ bằng phương thức Map.Add().
- Cuối cùng, gọi phương thức Map.Render() để lưu dưới dạng SVG. Nó lấy đường dẫn tệp SVG đầu ra và Renderers.Svg làm đối số.
Mẫu mã sau đây cho thấy cách chuyển đổi một tệp hình dạng thành SVG bằng cách sử dụng C#.
// Ví dụ mã này trình bày cách chuyển đổi một tệp hình dạng thành SVG.
// Thư mục tập tin
string dataDir = "C:\\Files\\GIS\\";
// Khởi tạo bản đồ
var map = new Map(800, 400);
// Sử dụng SRS được chỉ định
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;
// Sử dụng kiểu được chỉ định để vẽ các đường
// Chúng tôi cũng có các kiểu cho điểm, đường và bề mặt.
var symbolizer = new SimpleLine()
{
Width = Measurement.Pixels(2)
};
// Mở tệp hình dạng dưới dạng lớp
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);
// Thêm lớp shapefile vào bản đồ
map.Add(shapefileLayer, symbolizer);
// Kết xuất bản đồ sang định dạng Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);
Nhận giấy phép miễn phí
Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử thư viện mà không có giới hạn đánh giá.
Sự kết luận
Trong bài viết này, chúng ta đã học cách chuyển đổi shapefile thành SVG trong C#. Chúng ta cũng đã thấy cách xác định bản đồ và tải tệp hình dạng theo chương trình. Bên cạnh đó, bạn có thể khám phá cách làm việc với một số định dạng tệp GIS khác và tìm hiểu thêm về API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí của chúng tôi.