قراءة وكتابة البيانات المكانية

يسرد الجدول أدناه تنسيقات الملفات المكانية المعتمدة لعمليات القراءة والكتابة باستخدام وحدة IO المكانية.

تنسيق البيانات قراءة كتابة
جيوجسون
جيوآر إس إس
جي إم إل
جي بي اكس
كم مل
كمز
CSV المكاني
النص Well-Known

توضح هذه الأقسام التالية جميع الأدوات المختلفة لقراءة وكتابة البيانات المكانية باستخدام وحدة IO المكانية.

قراءة البيانات المكانية

الوظيفة atlas.io.read هي الوظيفة الرئيسية المستخدمة لقراءة تنسيقات البيانات المكانية الشائعة مثل ملفات KML و GPX و GeoRSS و GeoJSON و CSV مع البيانات المكانية. يمكن لهذه الوظيفة أيضا قراءة الإصدارات المضغوطة من هذه التنسيقات ، كملف مضغوط أو ملف KMZ. تنسيق ملف KMZ هو إصدار مضغوط من KML يمكنه أيضا تضمين أصول مثل الصور. بدلا من ذلك، يمكن أن تأخذ وظيفة القراءة عنوان URL يشير إلى ملف بأي من هذه التنسيقات. يجب استضافة عناوين URL على نقطة نهاية ممكنة من CORS ، أو يجب توفير خدمة وكيل في خيارات القراءة. يتم استخدام خدمة الوكيل لتحميل الموارد على المجالات التي لم يتم تمكين CORS لها. ترجع وظيفة القراءة وعدا بإضافة أيقونات الصور إلى الخريطة، وتعالج البيانات بشكل غير متزامن لتقليل التأثير على مؤشر ترابط واجهة المستخدم.

عند قراءة ملف مضغوط ، إما كملف مضغوط أو KMZ ، سيتم فك ضغطه ومسحه ضوئيا لأول ملف صالح. على سبيل المثال، doc.kml أو ملف بامتداد صالح آخر، مثل: .kml أو .xml أو geojson أو .json أو .csv أو .tsv أو .txt. بعد ذلك، يتم تحميل الصور المشار إليها في ملفات KML وGeoRSS مسبقا لضمان إمكانية الوصول إليها. قد تقوم بيانات الصورة التي يتعذر الوصول إليها بتحميل صورة احتياطية بديلة أو ستتم إزالتها من الأنماط. سيتم تحويل الصور المستخرجة من ملفات KMZ إلى عناوين URI للبيانات.

النتيجة من دالة القراءة هي كائن SpatialDataSet . يقوم هذا الكائن بتوسيع فئة GeoJSON FeatureCollection. يمكن تمريره بسهولة إلى DataSource كما هو لعرض معالمه على الخريطة. لا يحتوي SpatialDataSet هذا القالب على معلومات المعالم فحسب، بل قد يتضمن أيضا تراكبات أرضية KML ومقاييس معالجة وتفاصيل أخرى كما هو موضح في الجدول التالي.

اسم الخاصية النوع الوصف
bbox BoundingBox المربع المحيط بجميع البيانات الموجودة في مجموعة البيانات.
features Feature[] ميزات GeoJSON داخل مجموعة البيانات.
groundOverlays (atlas.layer.ImageLayer | atlas.layers.OgcMapLayer)[] مجموعة من تراكبات KML الأرضية.
icons سلسلة السجلات<، السلسلة> مجموعة من عناوين URL للأيقونات. المفتاح = اسم الرمز، القيمة = عنوان URL.
‏‏خصائص any معلومات الملكية المقدمة على مستوى الوثائق لمجموعة البيانات المكانية.
stats SpatialDataSetStats إحصائيات حول المحتوى ووقت المعالجة لمجموعة البيانات المكانية.
type 'FeatureCollection' قيمة نوع GeoJSON للقراءة فقط.

أمثلة على قراءة البيانات المكانية

توضح التعليمة البرمجية التالية كيفية قراءة مجموعة بيانات مكانية، وعرضها على الخريطة باستخدام الفئة SimpleDataLayer . يستخدم الرمز ملف GPX مشار إليه بواسطة عنوان URL.


يوضح العرض التوضيحي التالي للرمز كيفية قراءة KML أو KMZ وتحميله على الخريطة. يمكن أن يحتوي KML على تراكبات أرضية ، والتي ستكون في شكل ImageLyaer أو OgcMapLayer. يجب إضافة هذه التراكبات على الخريطة بشكل منفصل عن المعالم. بالإضافة إلى ذلك، إذا كانت مجموعة البيانات تحتوي على أيقونات مخصصة، فيجب تحميل هذه الرموز إلى موارد الخرائط قبل تحميل المعالم.


يمكنك اختياريا توفير خدمة وكيل للوصول إلى الأصول عبر المجالات التي قد لا يتم تمكين CORS عليها. ستحاول وظيفة القراءة الوصول إلى الملفات الموجودة على نطاق آخر باستخدام CORS أولا. بعد المرة الأولى التي يفشل فيها في الوصول إلى أي مورد على نطاق آخر باستخدام CORS ، لن يطلب سوى ملفات إضافية إذا تم توفير خدمة وكيل. تقوم وظيفة القراءة بإلحاق عنوان URL للملف بنهاية عنوان URL الوكيل المقدم. يوضح هذا المقتطف من التعليمات البرمجية كيفية تمرير خدمة وكيل إلى وظيفة القراءة:

//Read a file from a URL or pass in a raw data as a string.
atlas.io.read('https://nonCorsDomain.example.com/mySuperCoolData.xml', {
    //Provide a proxy service
    proxyService: window.location.origin + '/YourCorsEnabledProxyService.ashx?url='
}).then(async r => {
    if (r) {
        // Some code goes here . . .
    }
});

يوضح العرض التوضيحي أدناه كيفية قراءة ملف محدد وعرضه على الخريطة. في هذه الحالة، تستخدم التعليمة البرمجية ملف CSV يحتوي على أعمدة بيانات مكانية.


كتابة البيانات المكانية

هناك وظيفتان رئيسيتان للكتابة في وحدة IO المكانية. تقوم الدالة بإنشاء سلسلة، بينما تقوم atlas.io.write الدالة atlas.io.writeCompressed بإنشاء ملف مضغوط مضغوط. سيحتوي الملف المضغوط على ملف مستند إلى نص يحتوي على البيانات المكانية فيه. ترجع كلتا الوظيفتين وعدا بإضافة البيانات إلى الملف. وكلاهما يمكنه كتابة أي من البيانات التالية: SpatialDataSet، ، ImageLayerOgcMapLayer، جمع المعالم ، الميزة ، الهندسة ، DataSourceأو صفيف من أي مجموعة من أنواع البيانات هذه. عند الكتابة باستخدام أي من الوظيفتين، يمكنك تحديد تنسيق الملف المطلوب. إذا لم يتم تحديد تنسيق الملف ، كتابة البيانات ك KML.

توضح الأداة أدناه غالبية خيارات الكتابة التي يمكن استخدامها مع الدالة atlas.io.write .


مثال على كتابة البيانات المكانية

يسمح لك النموذج التالي بالسحب والإفلات ثم تحميل الملفات المكانية على الخريطة. يمكنك تصدير بيانات GeoJSON من الخريطة وكتابتها بأحد تنسيقات البيانات المكانية المدعومة كسلسلة أو كملف مضغوط.


يمكنك اختياريا توفير خدمة وكيل للوصول إلى الأصول عبر المجالات التي قد لا يتم تمكين CORS عليها. يوضح مقتطف التعليمات البرمجية هذا أنه يمكنك دمج خدمة وكيل:

atlas.io.read(data, {
    //Provide a proxy service
    proxyService: window.location.origin + '/YourCorsEnabledProxyService.ashx?url='
}).then(
    //Success
    function(r) {
        //some code goes here ...
    }
);

قراءة وكتابة النص Well-Known (WKT)

Well-Known Text (WKT) هو معيار اتحاد جغرافي مكاني مفتوح (OGC) لتمثيل الهندسة المكانية كنص. تدعم العديد من الأنظمة الجغرافية المكانية WKT، مثل Azure SQL وAzure PostgreSQL باستخدام المكون الإضافي PostGIS. مثل معظم معايير OGC ، يتم تنسيق الإحداثيات ك "خط عرض خط الطول" لتتماشى مع اتفاقية "x y". على سبيل المثال ، يمكن كتابة POINT(-110 45) نقطة عند خط الطول -110 وخط العرض 45 باستخدام تنسيق WKT.

يمكن قراءة النص المعروف باستخدام الوظيفة atlas.io.ogc.WKT.read ، وكتابته باستخدام الدالة atlas.io.ogc.WKT.write .

أمثلة على قراءة وكتابة النص Well-Known (WKT)

توضح التعليمة البرمجية التالية كيفية قراءة السلسلة POINT(-122.34009 47.60995) النصية المعروفة وعرضها على الخريطة باستخدام طبقة فقاعة.


يوضح الرمز التالي قراءة وكتابة نص معروف ذهابا وإيابا.


قراءة وكتابة GML

GML هي مواصفات ملف XML مكاني غالبا ما تستخدم كامتداد لمواصفات XML الأخرى. يمكن كتابة بيانات GeoJSON بتنسيق XML باستخدام علامات GML باستخدام الوظيفة atlas.io.core.GmlWriter.write . يمكن قراءة XML الذي يحتوي على GML باستخدام الدالة atlas.io.core.GmlReader.read . تحتوي وظيفة القراءة على خيارين:

  • isAxisOrderLonLat الخيار - يمكن أن يختلف ترتيب محور الإحداثيات "خط العرض وخط الطول" أو "خط الطول وخط العرض" بين مجموعات البيانات ، ولا يتم تعريفه جيدا دائما. بشكل افتراضي ، يقرأ قارئ GML بيانات الإحداثيات على أنها "خط عرض ، خط طول" ، ولكن تعيين هذا الخيار إلى true سيقرأه على أنه "خط طول ، خط عرض".
  • propertyTypes الخيار - هذا الخيار هو جدول بحث عن قيمة المفتاح حيث يكون المفتاح هو اسم خاصية في مجموعة البيانات. القيمة هي نوع الكائن المراد إرسال القيمة إليه عند التحليل. قيم النوع المعتمدة هي: string، ، number، booleanو date. إذا لم تكن الخاصية موجودة في جدول البحث أو لم يتم تعريف النوع، تحليل الخاصية كسلسلة.

ستكون الدالة atlas.io.read افتراضية للدالة atlas.io.core.GmlReader.read عندما تكتشف أن بيانات الإدخال هي XML ، ولكن البيانات ليست واحدة من تنسيقات XML المكانية الأخرى التي تدعمها.

GmlReader سيقوم بتحليل الإحداثيات التي تحتوي على أحد معرفات SRID التالية:

  • EPSG:4326 (مفضل)
  • EPSG:4269, EPSG:4283, EPSG:4258, EPSG:4308, EPSG:4230, EPSG:4272, EPSG:4271, EPSG:4267, EPSG:4608, EPSG:4674 ربما مع هامش خطأ صغير.
  • EPSG:3857, EPSG:102100, EPSG:3785, EPSG:900913, EPSG:102113, EPSG:41001, EPSG:54004

المزيد من الموارد

تعرف على المزيد حول الفئات والأساليب المستخدمة في هذه المقالة:

atlas.io وظائف ثابتة

مجموعة البيانات المكانية

SpatialDataSetStats

GmlReader

GmlWriter

وظائف atlas.io.ogc.WKT

الاتصال بخدمة WFS

الاستفادة من العمليات الأساسية

تفاصيل تنسيق البيانات المدعومة

الخطوات التالية

راجع المقالات التالية للحصول على مزيد من نماذج التعليمات البرمجية لإضافتها إلى خرائطك:

إضافة طبقة خريطة OGC