إضافة طبقة بيانات بسيطة
توفر وحدة الإدخال والإخراج المَكانية فئة 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
.
يعرض نموذج التعليمات البرمجية هذا ميزة النقطة باستخدام طبقة البيانات البسيطة، ويظهر على النحو التالي:
ملاحظة
لاحظ أن الإحداثيات التي تم تعيينها عند تهيئة الخريطة:
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 |
size 1, marker-size 2, scale 1 |
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-size 1 |
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
أو MultiLineString
Polygon
أو أو MultiPolygon
، فسيتم عرض الميزة باستخدام LineLayer
.
خيـار الطبقة | اسم (أسماء) الخاصية المَدعومة | القيمة الافتراضية |
---|---|---|
strokeColor |
strokeColor , stroke |
'#1E90FF' |
strokeWidth |
strokeWidth , stroke-width , stroke-thickness |
3 |
strokeOpacity |
strokeOpacity , stroke-opacity |
1 |
خصائص نمط المُضلع
إذا كانت الميزة عبارة عن أو MultiPolygon
Polygon
، ولم يكن للميزة height
خاصية أو height
كانت الخاصية صفرا، فسيتم عرض الميزة باستخدام PolygonLayer
.
خيـار الطبقة | اسم (أسماء) الخاصية المَدعومة | القيمة الافتراضية |
---|---|---|
fillColor |
fillColor , fill |
'#1E90FF' |
fillOpacity |
fillOpacity , 'fill-opacity |
0.5 |
خصائص نمط المُضلع المثقب
إذا كانت الميزة عبارة عن Polygon
أو ، ولها height
خاصية بقيمة أكبر من الصفر، يتم عرض الميزة ب PolygonExtrusionLayer
MultiPolygon
.
خيـار الطبقة | اسم (أسماء) الخاصية المَدعومة | القيمة الافتراضية |
---|---|---|
base |
base |
0 |
fillColor |
fillColor , fill |
'#1E90FF' |
height |
height |
0 |
الخطوات التالية
تعرّف على المزيد حـول الفئات والأساليب المُستخدمة في هذه المقالة:
راجع المقالات التالية للاطلاع على المزيد مـن عينات التعليمات البرمجية لإضافتها إلى مخططاتك:
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ