إنشاء وقراءة ملفات الأشكال في C#

تنسيق Shapefile هو تنسيق بيانات متجه جغرافي مكاني يستخدم لعرض المعلومات الجغرافية. يمكننا تخزين الموقع والهندسة وإسناد معالم النقطة والخط والمضلع في ملف الأشكال. في هذه المقالة ، سوف نتعلم كيفية إنشاء وقراءة Shapefile في C#.

تتناول هذه المقالة الموضوعات التالية:

  1. ما هو ملف الأشكال
  2. كيفية استخدام ملف شكل
  3. C# API لإنشاء وقراءة ملف الشكل - مكتبة نظم المعلومات الجغرافية .NET
  4. إنشاء ملف بأشكال باستخدام C#
  5. إضافة ميزات إلى ملف شكل موجود في C#
  6. قراءة ملف بأشكال باستخدام C#

ما هو ملف بحلقات

يمثل ملف الشكل المعلومات الجغرافية المكانية في شكل بيانات متجه لاستخدامها بواسطة تطبيقات نظم المعلومات الجغرافية. تم تطويره بواسطة ESRI كمواصفات مفتوحة لتسهيل التشغيل البيني بين ESRI ومنتجات البرامج الأخرى. يحتوي على البيانات الهندسية التي ترسم النقاط أو الخطوط أو المضلعات على الخريطة وخصائص البيانات. يمكن قراءة ملفات الأشكال مباشرة بواسطة العديد من برامج برامج GIS مثل ArcGIS و QGIS.

كيفية استخدام ملف بحلقات

لا يمكن استخدام ملف شكل مستقل (shp.) بواسطة تطبيقات البرامج. ومع ذلك ، يجب أن يحتوي ملف الشكل الصالح الذي يمكن استخدامه في برنامج GIS على الملفات الإلزامية الإضافية التالية:

C# API لإنشاء وقراءة Shapefile - .NET GIS Library

لإنشاء أو قراءة ملفات الأشكال ، سنستخدم Aspose.GIS for .NET API. يسمح بعرض الخرائط وإنشاء البيانات الجغرافية وقراءتها وتحويلها بدون برامج إضافية. وهو يدعم العمل مع ملفات الأشكال إلى جانب العديد من تنسيقات الملفات المدعومة.

تمثل فئة VectorLayer الخاصة بواجهة برمجة التطبيقات طبقة متجهة. يوفر العديد من الخصائص والطرق للعمل مع مجموعة من المعالم الجغرافية المخزنة في ملف. تسمح طريقة Create() لهذه الفئة بإنشاء طبقات متجهية مدعومة. توفر فئة Drivers برامج تشغيل لجميع التنسيقات المدعومة. تمثل فئة Feature الخاصة بواجهة برمجة التطبيقات ميزة جغرافية تتكون من السمات الهندسية والسمات المحددة من قبل المستخدم.

يرجى إما تنزيل DLL الخاصة بواجهة برمجة التطبيقات أو تثبيته باستخدام NuGet.

PM> Install-Package Aspose.GIS

إنشاء Shapefile باستخدام C#

يمكننا بسهولة إنشاء ملف شكل برمجيًا باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء طبقة باستخدام طريقة VectorLayer.Create().
  2. بعد ذلك ، أضف FeatureAttributes إلى مجموعة السمات الخاصة بالطبقة.
  3. بعد ذلك ، قم بإنشاء مثيل لفئة Feature باستخدام طريقة ConstructFeature().
  4. بعد ذلك ، قم بتعيين قيم السمات المختلفة.
  5. أخيرًا ، أضف الميزة باستخدام طريقة Add().

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء ملف أشكال في C#:

// يوضح مثال الكود هذا كيفية إنشاء ملف أشكال جديد.
// إنشاء ملف بحلقات جديدة
using (VectorLayer layer = VectorLayer.Create(@"C:\Files\GIS\NewShapeFile_out.shp", Drivers.Shapefile))
{
    // أضف السمات قبل إضافة الميزات
    layer.Attributes.Add(new FeatureAttribute("name", AttributeDataType.String));
    layer.Attributes.Add(new FeatureAttribute("age", AttributeDataType.Integer));
    layer.Attributes.Add(new FeatureAttribute("dob", AttributeDataType.DateTime));

    // إضافة ميزة وتعيين القيم
    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);

    // أضف ميزة أخرى وقم بتعيين القيم
    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);
}
إنشاء ملف الشكل باستخدام CSharp

إنشاء Shapefile باستخدام C#.

إضافة ميزات إلى ملف ShapeFile الموجود باستخدام C#

يمكننا أيضًا إضافة ميزات جديدة إلى ملف أشكال موجود باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل ملف شكل باستخدام طريقة Drivers.Shapefile.EditLayer().
  2. بعد ذلك ، قم بإنشاء مثيل لفئة Feature باستخدام طريقة ConstructFeature().
  3. بعد ذلك ، قم بتعيين قيم السمات المختلفة.
  4. أخيرًا ، أضف الميزة باستخدام طريقة Add().

يُظهر نموذج التعليمات البرمجية التالي كيفية إضافة ميزات إلى ملف أشكال موجود باستخدام C#.

// يوضح مثال الكود هذا كيفية تحرير ملف الشكل.
// مسار الملف
string path = Path.Combine(dataDir, "NewShapeFile_out.shp");

// تحرير طبقة الشكل
using (var layer = Drivers.Shapefile.EditLayer(path))
{
    // أضف ميزة
    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);
}

قراءة ملف بحلقات باستخدام C#

يمكننا قراءة السمات من ملف الشكل باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بتحميل ملف شكل باستخدام طريقة Drivers.Shapefile.OpenLayer().
  2. حلقة خلال كل معلم في الطبقة.
  3. التكرار خلال السمات وإظهار تفاصيل السمة.
  4. أخيرًا ، تحقق من هندسة النقاط واقرأ النقاط.

يُظهر نموذج التعليمات البرمجية التالي كيفية قراءة ملف أشكال باستخدام C#.

// يوضح مثال الكود هذا كيفية قراءة ملف أشكال جديد.
// مسار الملف
string path = Path.Combine(dataDir, "NewShapeFile_out.shp");

// افتح طبقة
var layer = Drivers.Shapefile.OpenLayer(path);

foreach (Feature feature in layer)
{
    foreach (var attribute in layer.Attributes)
    {
        // إظهار تفاصيل السمة
        Console.WriteLine(attribute.Name + " : " + feature.GetValue(attribute.Name));
    }

    // تحقق من هندسة النقطة
    if (feature.Geometry.GeometryType == GeometryType.Point)
    {
        // اقرأ النقاط
        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

احصل على رخصة مجانية

يمكنك الحصول على ترخيص مؤقت مجاني لتجربة المكتبة دون قيود التقييم.

استنتاج

في هذه المقالة ، تعلمنا كيف

  • إنشاء ملف شكل جديد برمجيًا ؛
  • إضافة ميزات جديدة إلى ملف الشكل ؛
  • تحرير طبقة الشكل ؛
  • افتح طبقة ملف الشكل واقرأ السمات باستخدام C#.

بالإضافة إلى ذلك ، يمكنك استكشاف كيفية العمل مع العديد من تنسيقات ملفات GIS الأخرى ومعرفة المزيد حول Aspose.GIS لـ .NET API باستخدام التوثيق. في حالة وجود أي غموض ، لا تتردد في الاتصال بنا على المنتدى.

أنظر أيضا