تعد المضلعات طريقة رائعة لتمثيل المساحة التقريبية للأرض على الخريطة ، وغالبًا ما يكون من المفيد معرفة مساحة المضلع التي حددتها. هذا ممكن في OpenLayers 3 ؛ أداة قوية لرسم خرائط جافا سكريبت.
ستوجهك هذه المقالة في إضافة مضلع ، ثم الحصول على المساحة المحسوبة باستخدام الكرة.
يرجى ملاحظة أنك بحاجة إلى تثبيت خريطة OpenLayers عاملة في صفحة ويب لمتابعة هذه المقالة. إذا لم يكن لديك واحدة ، كيف تصنع خريطة باستخدام OpenLayers 3.
خطوات
الخطوة 1. إنشاء ميزة مضلع
تحتاج وظيفة مُنشئ المضلع إلى مصفوفة من مصفوفات الإحداثيات ؛ حدد هذه المصفوفة في متغير أولاً حتى تتمكن من استخدامها لاحقًا. ما عليك سوى نسخ السطر التالي من التعليمات البرمجية إلى ملف
عنصر:
إحداثيات var =
الخطوة 2. أضف الميزة إلى طبقة متجه
لإضافة المضلع إلى الخريطة ، تحتاج إلى إضافته إلى مصدر ، والذي تقوم بإضافته إلى طبقة متجه ، والتي يمكنك إضافتها بعد ذلك إلى الخريطة:
var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [polygon_feature]})}) map.addLayer (vector_layer)؛
الخطوة 3. تحويل هندسة الميزة لاستخدام الإحداثيات
var current_project = new ol.proj. Project ({code: "EPSG: 4326"}) ؛ var new_project = tile_layer.getSource (). getProject () ؛ polygon_feature.getGeometry (). تحويل (current_project، new_project) ؛
الخطوة 4. إنشاء مجال لإجراء الحساب
يجب أن تكون الكرة بحجم الأرض (يجب أن يكون نصف قطرها 6.3 متر). من الناحية الفنية ، فإن الكرة لها نصف قطر يساوي المحور شبه الرئيسي للشكل الإهليلجي WGS84.
var sphere = new ol. Sphere (6378137) ؛
الخطوة 5. استخدم الكرة لحساب المنطقة باستخدام طريقة GeodesicArea ()
لأن الطريقة توفر قيمة بالمتر المربع ، اقسم على مليون لتحصل على كيلومترات مربعة.
var area_m = sphere.geodesicArea (إحداثيات) ؛ var area_km = area_m / 1000/1000 ؛ console.log ('area:'، area_km، 'km²') ؛ // CONSOLE: المساحة: 2317133.7166773956 كيلومتر مربع
الخطوة السادسة: تحقق من أن إجابة المنطقة منطقية
نحن نعلم أنها صحيحة لأنها تبدو بنفس حجم الجزائر تقريبًا ، التي تبلغ مساحتها 2 ، 381 ، 741 كيلومترًا مربعًا (من ويكيبيديا).