Membuat dan Membaca Shapefile di C#

Format Shapefile adalah format data vektor geospasial yang digunakan untuk menampilkan informasi geografis. Kita dapat menyimpan lokasi, geometri, dan atribusi fitur titik, garis, dan poligon di Shapefile. Pada artikel ini, kita akan mempelajari cara membuat dan membaca Shapefile di C#.

Artikel ini akan mencakup topik-topik berikut:

  1. Apa itu Shapefile
  2. Cara Menggunakan Shapefile
  3. C# API untuk Membuat dan Membaca Shapefile – .NET GIS Library
  4. Buat Shapefile menggunakan C#
  5. Tambahkan Fitur ke ShapeFile yang Ada di C#
  6. Baca Shapefile menggunakan C#

Apa itu Shapefile

Sebuah shapefile merepresentasikan informasi Geospasial dalam bentuk data vektor untuk digunakan oleh aplikasi GIS. Ini dikembangkan oleh ESRI sebagai spesifikasi terbuka untuk memfasilitasi interoperabilitas antara ESRI dan produk perangkat lunak lainnya. Ini berisi data geometris yang menggambar titik, garis atau poligon pada peta dan atribut data. Shapefile dapat langsung dibaca oleh beberapa program perangkat lunak GIS seperti ArcGIS dan QGIS.

Cara Menggunakan Shapefile

Shapefile mandiri (.shp) tidak dapat digunakan oleh aplikasi perangkat lunak. Namun, shapefile yang valid yang dapat digunakan dalam perangkat lunak GIS harus berisi file wajib tambahan berikut:

C# API untuk Membuat dan Membaca Shapefile – .NET GIS Library

Untuk membuat atau membaca shapefile, kita akan menggunakan Aspose.GIS for .NET API. Memungkinkan untuk merender peta, membuat, membaca, dan mengonversi data geografis tanpa perangkat lunak tambahan. Ini mendukung bekerja dengan shapefile bersama dengan beberapa [format file yang didukung] lainnya 14.

Kelas VectorLayer API merepresentasikan layer vektor. Ini menawarkan berbagai properti dan metode untuk bekerja dengan kumpulan fitur geografis yang disimpan dalam file. Metode Create() dari kelas ini memungkinkan pembuatan lapisan vektor yang didukung. Kelas Drivers menyediakan driver untuk semua format yang didukung. Kelas Fitur API mewakili fitur geografis yang terdiri dari geometri dan atribut yang ditentukan pengguna.

Harap unduh DLL API atau instal menggunakan NuGet.

PM> Install-Package Aspose.GIS

Buat Shapefile menggunakan C#

Kita dapat dengan mudah membuat shapefile secara terprogram dengan mengikuti langkah-langkah berikut:

  1. Pertama, buat layer menggunakan metode VectorLayer.Create().
  2. Selanjutnya, tambahkan FeatureAttributes ke kumpulan atribut layer.
  3. Kemudian, buat sebuah instance dari kelas Feature menggunakan metode ConstructFeature().
  4. Setelah itu, tetapkan nilai atribut yang berbeda.
  5. Terakhir, tambahkan fitur menggunakan metode Add().

Contoh kode berikut menunjukkan cara membuat shapefile di C#:

// Contoh kode ini menunjukkan cara membuat shapefile baru.
// Buat Shapefile baru
using (VectorLayer layer = VectorLayer.Create(@"C:\Files\GIS\NewShapeFile_out.shp", Drivers.Shapefile))
{
    // Tambahkan atribut sebelum menambahkan fitur
    layer.Attributes.Add(new FeatureAttribute("name", AttributeDataType.String));
    layer.Attributes.Add(new FeatureAttribute("age", AttributeDataType.Integer));
    layer.Attributes.Add(new FeatureAttribute("dob", AttributeDataType.DateTime));

    // Tambahkan fitur dan tetapkan nilai
    Feature firstFeature = layer.ConstructFeature();
    firstFeature.Geometry = new Point(33.97, -118.25);
    firstFeature.SetValue("name", "John");
    firstFeature.SetValue("age", 23);
    firstFeature.SetValue("dob", new DateTime(1982, 2, 5, 16, 30, 0));
    layer.Add(firstFeature);

    // Tambahkan fitur lain dan tetapkan nilai
    Feature secondFeature = layer.ConstructFeature();
    secondFeature.Geometry = new Point(35.81, -96.28);
    secondFeature.SetValue("name", "Mary");
    secondFeature.SetValue("age", 54);
    secondFeature.SetValue("dob", new DateTime(1984, 12, 15, 15, 30, 0));
    layer.Add(secondFeature);
}
Buat-Shapefile-menggunakan-CSharp

Buat Shapefile menggunakan C#.

Tambahkan Fitur ke ShapeFile yang Ada menggunakan C#

Kami juga dapat menambahkan fitur baru ke shapefile yang ada dengan mengikuti langkah-langkah di bawah ini:

  1. Pertama, muat shapefile menggunakan metode Drivers.Shapefile.EditLayer() .
  2. Selanjutnya, buat instance dari kelas Feature menggunakan metode ConstructFeature().
  3. Setelah itu, tetapkan nilai atribut yang berbeda.
  4. Terakhir, tambahkan fitur menggunakan metode Add().

Contoh kode berikut menunjukkan cara menambahkan fitur ke shapefile yang sudah ada menggunakan C#.

// Contoh kode ini menunjukkan cara mengedit shapefile.
// Jalur file
string path = Path.Combine(dataDir, "NewShapeFile_out.shp");

// Edit lapisan Shapefile
using (var layer = Drivers.Shapefile.EditLayer(path))
{
    // Tambahkan fitur
    var feature = layer.ConstructFeature();
    feature.Geometry = new Point(34.81, -92.28);
    object[] data = new object[3] { "Alex", 25, new DateTime(1989, 4, 15, 15, 30, 0) };
    feature.SetValues(data);
    layer.Add(feature);
}

Baca Shapefile menggunakan C#

Kita dapat membaca atribut dari sebuah shapefile dengan mengikuti langkah-langkah berikut:

  1. Pertama, muat shapefile menggunakan metode Drivers.Shapefile.OpenLayer() .
  2. Ulangi setiap Fitur di layer.
  3. Ulangi atribut dan tampilkan detail atribut.
  4. Terakhir, periksa Geometri titik dan baca titik.

Contoh kode berikut menunjukkan cara membaca shapefile menggunakan C#.

// Contoh kode ini menunjukkan cara membaca shapefile baru.
// Jalur file
string path = Path.Combine(dataDir, "NewShapeFile_out.shp");

// Buka satu lapisan
var layer = Drivers.Shapefile.OpenLayer(path);

foreach (Feature feature in layer)
{
    foreach (var attribute in layer.Attributes)
    {
        // Tampilkan detail Atribut
        Console.WriteLine(attribute.Name + " : " + feature.GetValue(attribute.Name));
    }

    // Periksa geometri Titik
    if (feature.Geometry.GeometryType == GeometryType.Point)
    {
        // Baca Poin
        Point point = (Point)feature.Geometry;
        Console.WriteLine(point.AsText() + " X: " + point.X + " Y: " + point.Y);
        Console.WriteLine("---------------------");
    }
}
name : John
age : 23
dob : 1982-02-05T16:30:00
POINT (33.97 -118.25) X: 33.97 Y: -118.25
---------------------
name : Mary
age : 54
dob : 1984-12-15T15:30:00
POINT (35.81 -96.28) X: 35.81 Y: -96.28
---------------------
name : Alex
age : 25
dob : 04/15/1989 15:30:00
POINT (34.81 -92.28) X: 34.81 Y: -92.28

Dapatkan Lisensi Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk mencoba perpustakaan tanpa batasan evaluasi.

Kesimpulan

Pada artikel ini, kita telah mempelajari caranya

  • buat shapefile baru secara terprogram;
  • tambahkan fitur baru ke shapefile;
  • edit lapisan shapefile;
  • buka layer shapefile dan baca atribut menggunakan C#.

Selain itu, Anda dapat menjelajahi cara bekerja dengan beberapa format file GIS lainnya dan mempelajari lebih lanjut tentang Aspose.GIS for .NET API menggunakan dokumentasi. Jika ada ambiguitas, jangan ragu untuk menghubungi kami di forum kami.

Lihat juga