إضافة طبقة بيانات بسيطة

توفر وحدة الإدخال والإخراج المَكانية فئة SimpleDataLayer. تسهل هـذه الفئة عرض الميزات ذات النمط على الخريطة. ويمكنها حتى عرض مجموعات البيانات التي تحتوي على خصائص النمط ومجموعات البيانات التي تحتوي على أنواع هندسة مُختلطة. تحقق طبقة البيانات البسيطة هذه الوظيفة من خلال التفاف طبقات عرض مُتعددة واستخدام تعبيرات الأنماط. تبحث تعبيرات الأنماط عن خصائص النمط الشائعة للميزات داخل هـذه الطبقات الملتفة. atlas.io.read تستخدم الدالة والدالة atlas.io.write هذه الخصائص لقراءة الأنماط وكتابتها بتنسيق ملف مُعتمد. بعد إضافة الخصائص إلى تنسيق ملف مُعتمد، يمكن استخدام الملف لأغراض مختلفة. على سبيل المثال، يُمكن استخدام الملف لعرض الميزات ذات النمط على الخريطة.

بالإضافة إلى ميزات التصميم، يوفر SimpleDataLayer ميزة منبثقة مضمنة مـع قالب منبثق. تظهر النافذة المُنبثقة عند النقر فوق ميزة. يمكن تعطيل الميزة المنبثقة الافتراضية، إذا رغبت فـي ذلك. تدعم هذه الطبقة أيضًا البيانات المجمعة. عند النقر فوق نظام مجموعة، تقوم الخريطة بتكبير المجموعة وتوسيعها إلى نقاط فردية ومجموعات فرعية.

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

استخدام طبقة بيانات بسيطة

يتم استخدام الفئة SimpleDataLayer مِثل طبقات العرض الأخرى. توضح التعليمات البرمجية التالية كيفية استخدام طبقة بيانات بسيطة في خريطة:

//Create a data source and add it to the map.
var datasource = new atlas.source.DataSource();
map.sources.add(datasource);

//Add a simple data layer for rendering data.
var layer = new atlas.layer.SimpleDataLayer(datasource);
map.layers.add(layer);

توضح القصاصة البرمجية التالية استخدام طبقة بيانات بسيطة، تشير إلى البيانات من مصدر عبر الإنترنت.

function InitMap()
{
  var map = new atlas.Map('myMap', {
    center: [-73.967605, 40.780452],
    zoom: 12,
    view: "Auto",

    //Add authentication details for connecting to Azure Maps.
    authOptions: {
      // Get an Azure Maps key at https://azuremaps.com/.
      authType: 'subscriptionKey',
      subscriptionKey: '{Your-Azure-Maps-Subscription-key}'
    },
  });    

  //Wait until the map resources are ready.
  map.events.add('ready', function () {

    //Create a data source and add it to the map.
    var datasource = new atlas.source.DataSource();
    map.sources.add(datasource);

    //Add a simple data layer for rendering data.
    var layer = new atlas.layer.SimpleDataLayer(datasource);
    map.layers.add(layer);

    //Load an initial data set.
    loadDataSet('https://s3-us-west-2.amazonaws.com/s.cdpn.io/1717245/use-simple-data-layer.json');

    function loadDataSet(url) {
      //Read the spatial data and add it to the map.
      atlas.io.read(url).then(r => {
      if (r) {
        //Update the features in the data source.
        datasource.setShapes(r);

        //If bounding box information is known for data, set the map view to it.
        if (r.bbox) {
          map.setCamera({
            bounds: r.bbox,
            padding: 50
          });
        }
      }
      });
    }
  });
}

يشير عنوان url الذي تم تمريره إلى الدالة loadDataSet إلى json التالي:

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [0, 0]
    },
    "properties": {
        "color": "red"
    }
}

بمجرد إضافة ميزات إلى مصدر البيانات، تكتشف طبقة البيانات البسيطة أفضل طريقة لعرضها. يُمكن تعيين أنماط الميزات الفردية كخصائص على الميزة.

يظهر نموذج التعليمات البرمجية أعلاه ميزة نقطة GeoJSON مع color تعيين خاصية إلى red.

يعرض نموذج التعليمات البرمجية هذا ميزة النقطة باستخدام طبقة البيانات البسيطة، ويظهر على النحو التالي:

لقطة شاشة لخريطة بإحداثيات 0، 0 تظهر نقطة حمراء فوق الماء الأزرق، تمت إضافة النقطة الحمراء باستخدام طبقة الرمز.

ملاحظة

لاحظ أن الإحداثيات التي تم تعيينها عند تهيئة الخريطة:

  center: [-73.967605, 40.780452]

تتم الكتابة فوقها بالقيمة من مصدر البيانات:

  "الإحداثيات": [0، 0]

تأتي القوة الحقيقية لطبقة البيـانات البسيطة عندما:

  • هناك عدة أنواع مختلفة من الميزات فـي مصدر البيانات؛ أو
  • تحتوي الميزات فـي مجموعة البيانات على العديد من خصائص النمط التي تم تعيينها بشكل فردي عليها؛ أو
  • لست متأكدًا مما تحتوي عليه مَجموعة البيانات بالضبط.

على سبيل المثال عند تحليل موجزات بيانات XML، قـد لا تعرف الأنماط وأنواع الهندسة الدقيقة للميزات. يوضح نموذج خيارات طبقة البيانات البسيطة قوة طبقة البيانات البسيطة عن طريق عرض ميزات ملف KML. كما يوضح الخيارات المُختلفة التي توفرها فئة طبقة البيانات البسيطة. للحصول على التعليمات البرمجية المصدر لهذه العينة، راجع options.htmlطبقة البيانات البسيطة في نماذج التعليمات البرمجية خرائط Azure في GitHub.

لقطة شاشة للخريطة مع لوحة على اليسار تعرض خيارات طبقة البيانات البسيطة المختلفة.

ملاحظة

تستخدم طبقة البيانات البسيطة هـذه فئة القالب المنبثق لعرض بالونات KML أو خصائص الميزات كجدول. بشكل افتراضي، سوف يتم وضع بيئة الاختبار المعزولة لجميع المحتويات المعروضة في النافذة المنبثقة داخل iframe كميزة أمان. مع ذلك، هناك قيود:

  • يتم تعطيل جَميع البرامج النصية والنماذج وقفل المؤشر ووظيفة التنقل العلوية. يُسمح للارتباطات بالفتح في علامة تبويب جديدة عند النقر فوقها.
  • سوف تقتصر المتصفحات القديمة التي لا تدعم المعلمة srcdoc على iframes على عرض كمية صغيرة من المحتوى.

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

خصائص النمط المُعتمدة الافتراضية

كما ذكرنا سابقًا، تلتف طبقة البيانات البَسيطة العديد من طبقات العرض الأساسية: فقاعة ورمز وخط ومضلع مقذوف. ثم تستخدم التعبيرات للبحث عـن خصائص نمط صالحة على الميزات الفردية.

خرائط Azure وخصائص نمط GitHub هما المجموعتين الرئيسيتين مـن أسماء الخصائص المدعومة. يتم دعم معظم أسماء الخصائص لخيارات طبقة خرائط Azure المختلفة كخصائص نمط للميزات فـي طبقة البيانات البسيطة. تمت إضافة التعبيرات إلى بعض خيارات الطبقة لدعم أسماء خصائص النمط التي يَستخدمها GitHub بشكل شائع. يحدد دعم خريطة GeoJSON من GitHub أسماء الخصائص هذه، ويتم استخدامها لنمط ملفات GeoJSON المخزنة والمعرضة داخل النظام الأساسي. يتم دعم جميع خصائص تصميم GitHub في طبقة البيانات البسيطة marker-symbol ، باستثناء خصائص التصميم.

إذا كان القارئ يأتي عبر خاصية نمط أقل شيوعا، فإنه يحولها إلى أقرب خاصية نمط خرائط Azure. بالإضافة إلى ذلك، يُمكن تجاوز تعبيرات النمط الافتراضي باستخدام دالة getLayers طبقة البيانات البسيطة وتحديث الخيارات على أي من الطبقات.

توفر الأقسام التالية تفاصيل حول خصائص النمط الافتراضية التي تدعمها طبقة البيانات البسيطة. ترتيب اسم الخاصية المدعومة هو أيضًا أولوية الخاصية. إذا تم تعريف خاصيتين للنمط لنفس خيار الطبقة، فإن أول خاصية فـي القائمة لها أسبقية أعلى. يُمكن أن تكون الألوان أي قيمة لونية مثل CSS3؛ HEX أو RGB أو RGBA أو HSL أو HSLA أو قيمة اللون المسماة.

خصـائص نمط طبقة الفقاعة

إذا كانت الميزة عبارة عن Point أو MultiPoint، ولم يكن للميزة image خاصية سيتم استخدامها كأيقونة مخصصة لعرض النقطة كرمز، فسيتم عرض الميزة باستخدام BubbleLayer.

خيـار الطبقة اسم (أسماء) الخاصية المَدعومة القيمة الافتراضية
color color, marker-color '#1A73AA'
radius size1, marker-size2, scale1 8
strokeColor strokeColor, stroke '#FFFFFF'

[1] size تعتبر القيم و scale قيما عددية، ويتم ضربها في 8

[2] إذا تم تحديد خيار GitHub marker-size ، فسيتم استخدام القيم التالية لنصف القطر.

حَجم العلامة نصف القُطر
small 6
medium 8
large 12

يتم أيضًا عرض المجموعات باستخدام طبقة الفقاعة. بشكل افتراضي، يتم تعيين نصف قُطر نظام المجموعة إلى 16. يختلف لون نظام المجموعة اعتمادا على عدد النقاط في نظام المجموعة، كما هو محدد في الجدول التالي:

# مـن النقاط اللون
>= 100 red
>= 10 yellow
< 10 green

خصائص نمط الـرمز

إذا كانت الميزة هي Point أو MultiPoint، وكانت الميزة وتحتوي image على خاصية سيتم استخدامها كأيقونة مخصصة لعرض النقطة كرمز، فسيتم عرض الميزة باستخدام SymbolLayer.

خيـار الطبقة اسم (أسماء) الخاصية المَدعومة القيمة الافتراضية
image image none
size size, marker-size1 1
rotation rotation 0
offset offset [0, 0]
anchor anchor 'bottom'

[1] إذا تم تحديد خيار GitHub marker-size ، فسيتم استخدام القيم التالية لخيار حجم الأيقونة.

حَجم العلامة حجم الـرمز
small 0.5
medium 1
large 2

إذا كانت ميزة النقطة عبارة عن نظام مجموعة، يتم عرض الخاصية point_count_abbreviated كتسمية نصية. لا يتم عرض أي صورة.

خصائص نَمط الخط

إذا كانت الميزة هي LineStringأو MultiLineStringPolygonأو أو MultiPolygon، فسيتم عرض الميزة باستخدام LineLayer.

خيـار الطبقة اسم (أسماء) الخاصية المَدعومة القيمة الافتراضية
strokeColor strokeColor, stroke '#1E90FF'
strokeWidth strokeWidth, stroke-width, stroke-thickness 3
strokeOpacity strokeOpacity, stroke-opacity 1

خصائص نمط المُضلع

إذا كانت الميزة عبارة عن أو MultiPolygonPolygon ، ولم يكن للميزة height خاصية أو height كانت الخاصية صفرا، فسيتم عرض الميزة باستخدام PolygonLayer.

خيـار الطبقة اسم (أسماء) الخاصية المَدعومة القيمة الافتراضية
fillColor fillColor, fill '#1E90FF'
fillOpacity fillOpacity, 'fill-opacity 0.5

خصائص نمط المُضلع المثقب

إذا كانت الميزة عبارة عن Polygon أو ، ولها height خاصية بقيمة أكبر من الصفر، يتم عرض الميزة ب PolygonExtrusionLayerMultiPolygon.

خيـار الطبقة اسم (أسماء) الخاصية المَدعومة القيمة الافتراضية
base base 0
fillColor fillColor, fill '#1E90FF'
height height 0

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

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

راجع المقالات التالية للاطلاع على المزيد مـن عينات التعليمات البرمجية لإضافتها إلى مخططاتك: