إضافة طبقة بيانات بسيطة
يوفر خرائط Azure Web SDK وحدة نمطية ل Spatial IO تتضمن 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);
يوضح مقتطف التعليمات البرمجية التالي كيفية استخدام طبقة بيانات بسيطة تشير إلى البيانات من مصدر عبر الإنترنت:
<script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.min.js"></script>
<script>
function InitMap() {
var map = new atlas.Map("myMap", {
center: [-73.967605, 40.780452],
zoom: 12,
view: "Auto",
//Add authentication details to connect 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.
const dataSet = {
type: "FeatureCollection",
bbox: [0, 0, 0, 0],
features: [
{
type: "Feature",
geometry: {
type: "Point",
coordinates: [0, 0]
},
properties: {
color: "red"
}
}
]
};
loadDataSet(dataSet);
function loadDataSet(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
});
}
}
});
}
</script>
عند إضافة ميزات إلى مصدر البيانات، تعرضها طبقة البيانات البسيطة بالطريقة الأنسب. يمكنك تعيين الأنماط كخصائص لكل ميزة فردية.
يظهر نموذج التعليمات البرمجية السابق ميزة نقطة JavaScript Object Notation (GeoJSON) مع color
تعيين خاصية إلى red
.
تعرض عينة التعليمات البرمجية ميزة النقطة باستخدام طبقة البيانات البسيطة، وتظهر النتيجة كما يلي.
ملاحظة
تتجاوز القيمة من مصدر "coordinates": [0, 0]
البيانات الإحداثيات center: [-73.967605, 40.780452]
التي قمت بتعيينها عند تهيئة الخريطة.
طبقة البيانات البسيطة هي أداة قوية في السيناريوهات التالية:
- يتضمن مصدر البيانات عدة أنواع ميزات.
- تحتوي الميزات الموجودة في مجموعة البيانات على العديد من خصائص الأنماط التي تم تعيينها بشكل فردي.
- لست متأكدا مما تحتوي عليه مجموعة البيانات.
على سبيل المثال، عند تحليل موجزات بيانات XML، قد لا تعرف نمط الميزات وأنواع الهندسة.
يوضح نموذج خيارات طبقة البيانات البسيطة كيف تعرض طبقة البيانات البسيطة ميزات ملف Keyhole Markup Language (KML). يمكنك أيضا رؤية الخيارات في SimpleDataLayer
الفئة. للحصول على التعليمات البرمجية المصدر لهذه العينة، راجع options.html طبقة البيانات البسيطة في نماذج التعليمات البرمجية خرائط Azure في GitHub.
ملاحظة
تستخدم طبقة البيانات البسيطة هـذه فئة القالب المنبثق لعرض بالونات KML أو خصائص الميزات كجدول. بشكل افتراضي، يتم وضع جميع المحتويات المعروضة في النافذة المنبثقة في بيئة الاختبار المعزولة داخل iFrame كميزة أمان. مع ذلك، توجد قيود يجب مراعاتها:
- يتم تعطيل جميع وظائف تأمين المؤشر ووظائف التنقل العلوية والبرامج النصية والنماذج. يمكن فتح الارتباطات في علامة تبويب جديدة عند تحديدها.
- يمكن للمستعرضات القديمة التي لا تدعم المعلمة
srcdoc
على iFrames عرض كمية صغيرة فقط من المحتوى.
إذا كنت تثق في البيانات التي تم تحميلها في النوافذ المنبثقة، وتريد أن تكون البرامج النصية المنبثقة قادرة على الوصول إلى التطبيق الخاص بك، يمكنك تعطيل هذه الميزة. ما عليك سوى sandboxContent
تعيين الخيار في القالب المنبثق إلى false
.
التفاف طبقة البيانات البسيطة العديد من طبقات العرض الأساسية: فقاعة ورمز وخط ومضلع ومضلع مثقب. ويستخدم التعبيرات للبحث عن خصائص نمط صالحة على الميزات الفردية.
المجموعتين الرئيسيتين من أسماء الخصائص المدعومة هي خرائط Azure وGitHub. يتم دعم معظم أسماء خصائص خيارات طبقة خرائط Azure في طبقة البيانات البسيطة كخصائص نمط للميزات. تتضمن بعض خيارات الطبقة تعبيرات تدعم أسماء خصائص النمط التي يستخدمها GitHub بشكل شائع.
يحدد دعم خريطة GeoJSON من GitHub أسماء الخصائص هذه، والتي تستخدم لنمط ملفات GeoJSON التي يتم تخزينها وعرضها داخل النظام الأساسي. يتم دعم معظم خصائص تصميم GitHub في طبقة البيانات البسيطة marker-symbol
، باستثناء خصائص التصميم.
إذا كان القارئ يأتي عبر خاصية نمط أقل شيوعا، فإنه يحولها إلى خاصية نمط خرائط Azure الأكثر تشابها. بالإضافة إلى ذلك، يمكنك تجاوز تعبيرات النمط الافتراضية باستخدام دالة getLayers
طبقة البيانات البسيطة وتحديث الخيارات على أي من الطبقات.
توفر الأقسام التالية تفاصيل حول خصائص النمط الافتراضية التي تدعمها طبقة البيانات البسيطة. ترتيب أسماء الخصائص المدعومة هو أيضا الأولوية. إذا تم تعريف خاصيتين للنمط لنفس خيار الطبقة، فإن أول خاصية في القائمة لها الأسبقية. يمكن أن تكون الألوان أي قيمة لون CSS3 (HEX أو RGB أو RGBA أو HSL أو HSLA) أو قيمة لون مسماة.
إذا كانت الميزة هي Point
أو MultiPoint
، ولا تحتوي على خاصية صورة لاستخدامها كأيقونة مخصصة لعرض النقطة كرمز، يتم عرضها باستخدام BubbleLayer
.
خيـار الطبقة | أسماء الخصائص المدعومة | القيمة الافتراضية |
---|---|---|
color |
color , marker-color |
'#1A73AA' |
radius |
size
1, marker-size 2, scale 1 |
8 |
strokeColor |
strokeColor , stroke |
'#FFFFFF' |
1 تعتبر قيم الحجم والمقياس قيما عددية، ويتم ضربها في 8.
2 إذا تم تحديد خيار GitHub marker-size
، يستخدم نصف القطر القيم التالية:
حَجم العلامة | نصف القُطر |
---|---|
small |
6 |
medium |
8 |
large |
12 |
يتم أيضا عرض المجموعات في طبقة الفقاعة. بشكل افتراضي، يتم تعيين نصف قطر نظام المجموعة إلى 16. يختلف لون نظام المجموعة استنادا إلى عدد النقاط في نظام المجموعة، كما هو محدد في الجدول التالي:
عدد النقاط | Color |
---|---|
>= 100 | red |
>= 10 | yellow |
< 10 | green |
إذا كانت الميزة هي Point
أو MultiPoint
، مع خاصية صورة تستخدم كأيقونة مخصصة لعرض النقطة كرمز، عرضها باستخدام 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 |
إذا كانت الميزة هي Polygon
أو MultiPolygon
، ولا تحتوي على خاصية ارتفاع، أو إذا كانت خاصية الارتفاع صفرا، يتم عرضها باستخدام PolygonLayer
.
خيـار الطبقة | أسماء الخصائص المدعومة | القيمة الافتراضية |
---|---|---|
fillColor |
fillColor , fill |
'#1E90FF' |
fillOpacity |
fillOpacity , 'fill-opacity |
0.5 |
إذا كانت الميزة هي Polygon
أو MultiPolygon
، ولها خاصية ارتفاع بقيمة أكبر من الصفر، يتم عرضها باستخدام PolygonExtrusionLayer
.
خيـار الطبقة | أسماء الخصائص المدعومة | القيمة الافتراضية |
---|---|---|
base |
base |
0 |
fillColor |
fillColor , fill |
'#1E90FF' |
height |
height |
0 |
تعرف على المزيد حول الفئات والأساليب في هذه المقالة:
راجع المقالات التالية للحصول على المزيد من نماذج التعليمات البرمجية لإضافتها إلى الخرائط الخاصة بك: