كيفية إضافة ميزات المتجهات إلى خريطة OpenLayers 3 (بالصور)

جدول المحتويات:

كيفية إضافة ميزات المتجهات إلى خريطة OpenLayers 3 (بالصور)
كيفية إضافة ميزات المتجهات إلى خريطة OpenLayers 3 (بالصور)

فيديو: كيفية إضافة ميزات المتجهات إلى خريطة OpenLayers 3 (بالصور)

فيديو: كيفية إضافة ميزات المتجهات إلى خريطة OpenLayers 3 (بالصور)
فيديو: كيفية التحكم بجهاز كمبيوتر بدون موافقة الطرف الآخر عبر برنامج أني ديسك 2024, أبريل
Anonim

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

يرجى ملاحظة أنك بحاجة إلى تثبيت خريطة OpenLayers عاملة في صفحة ويب لمتابعة هذه المقالة. إذا لم يكن لديك واحدة ، فراجع كيفية إنشاء خريطة باستخدام OpenLayers 3.

خطوات

جزء 1 من 3: إضافة ميزات النقطة وسلسلة الخط

الخطوة 1. إنشاء ميزة النقطة

ما عليك سوى نسخ السطر التالي من التعليمات البرمجية إلى ملف

عنصر:

var point_feature = new ol. Feature ({}) ،

الخطوة 2. تعيين هندسة النقطة

لإخبار OpenLayers بمكان وضع النقطة ، تحتاج إلى إنشاء شكل هندسي وإعطائه مجموعة من الإحداثيات ، وهي عبارة عن مصفوفة على شكل [خط الطول (E-W) ، خط العرض (N-S)]. يقوم الكود التالي بإنشاء هذا وتحديد هندسة النقطة:

var point_geom = new ol.geom. Point ([20، 20]) ، point_feature.setGeometry (point_geom) ؛

الخطوة 3. إنشاء ميزة سلسلة الخط

السلاسل الخطية هي خطوط مستقيمة مقسمة إلى مقاطع. نقوم بإنشائها مثل النقاط تمامًا ، لكننا نقدم زوجًا من الإحداثيات لكل نقطة من سلسلة الخط:

var linestring_feature = new ol. Feature ({geometry: new ol.geom. LineString (

الخطوة 4. أضف الميزات إلى طبقة متجه

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

var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [point_feature، linestring_feature]})}) map.addLayer (vector_layer)؛

جزء 2 من 3: تحويل الأشكال الهندسية للمعالم لاستخدام الإحداثيات

كما هو الحال مع أي برنامج رسم خرائط قوي ، يمكن أن تحتوي خرائط OpenLayers على طبقات مختلفة بطرق مختلفة لعرض المعلومات. نظرًا لأن الأرض عبارة عن كرة أرضية وليست مسطحة ، فعندما نحاول عرضها على خرائطنا المسطحة ، يتعين على البرنامج ضبط المواقع لتتناسب مع الخريطة المسطحة. تسمى هذه الطرق المختلفة لعرض معلومات الخريطة التوقعات. لاستخدام طبقة متجه وطبقة تجانب معًا على نفس الخريطة ، يجب علينا تحويل الطبقات من إسقاط إلى آخر.

الخطوة 1. ضع الميزات في مصفوفة

نبدأ بوضع الميزات التي نريد تحويلها معًا إلى مصفوفة يمكننا التكرار من خلالها.

var features = [point_feature، linestring_feature]؛

الخطوة 2. اكتب وظيفة التحويل

في OpenLayers ، يمكننا استخدام وظيفة التحويل () على الكائن الهندسي لكل ميزة. ضع كود التحويل هذا في وظيفة يمكننا استدعاؤها لاحقًا:

دالة transform_geometry (عنصر) {var current_project = new ol.proj. Project ({code: "EPSG: 4326"}) ؛ var new_project = tile_layer.getSource (). getProject () ؛ element.getGeometry (). transform (current_project، new_project) ؛) ؛ }

الخطوة 3. استدعاء وظيفة التحويل على الميزات

الآن ببساطة كرر خلال المصفوفة.

features.forEach (تحويل_ الهندسة) ؛

جزء 3 من 3: تعيين نمط طبقة المتجه

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

الخطوة 1. قم بإنشاء التعبئة والتعبئة

قم بإنشاء كائن نمط تعبئة ولون أحمر شبه شفاف ، ونمط حد (خط) يكون خطًا أحمر خالصًا:

var fill = new ol.style. Fill ({color: [180، 0، 0، 0.3]}) ؛ var stroke = new ol.style. Stroke ({color: [180، 0، 0، 1]، width: 1})؛

الخطوة 2. قم بإنشاء النمط وتطبيقه على الطبقة

كائن نمط OpenLayers قوي جدًا ، لكننا سنقوم فقط بتعيين التعبئة والحد في الوقت الحالي:

var style = new ol.style. Style ({image: new ol.style. Circle ({fill: fill، stroke: stroke، radius: 8})، fill: fill، stroke: stroke}) ؛ vector_layer.setStyle (نمط) ؛

موصى به: