Полигондор - жердин болжолдуу аянтын картада көрсөтүүнүн эң сонун жолу, жана сиз аныктаган полигондун аянтын билүү көп учурда пайдалуу. Бул OpenLayers 3те мүмкүн; күчтүү JavaScript карта куралы.
Бул макала сизге көп бурчтукту кошууга, андан кийин шарды колдонуп эсептелген аянтты алууга жардам берет.
Бул макаланы ээрчүү үчүн веб -баракчада OpenLayers жумушчу картасы орнотулушу керек экенин эске алыңыз. Эгерде сизде жок болсо, OpenLayersти колдонуу менен картаны кантип түзүү керек 3.
Кадамдар
Кадам 1. Көп бурчтукту түзүү
Polygon конструктору функциясы координат массивдеринин массивине муктаж; бул массивди адегенде өзгөрмөлүү кылып аныктаңыз, кийин аны колдоно аласыз. Төмөнкү кодду өзүңүзгө көчүрүңүз
элемент:
var координаттары =
Кадам 2. Функцияны вектордук катмарга кошуңуз
Көп бурчтукту картага кошуу үчүн, аны булакка кошуу керек, аны вектордук катмарга кошуп, анан картка кошо аласыз:
var vector_layer = new ol.layer. Vector ({булак: new ol.source. Vector ({өзгөчөлүктөр: [polygon_feature]})})) map.addLayer (vector_layer);
Кадам 3. Координаттарды колдонуу үчүн өзгөчөлүктүн геометриясын өзгөртүү
var current_projection = new ol.proj. Projection ({код: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection);
Кадам 4. Эсептөөнү аткаруу үчүн сфера түзүңүз
Сфера Жердин чоңдугунда болушу керек (радиусу 6,3м метр болушу керек). Техникалык жактан шардын радиусу WGS84 эллипсоидинин жарым чоң огуна барабар.
var сфера = жаңы ol. Sphere (6378137);
Кадам 5. GeodesicArea () методун колдонуу менен аянтты эсептөө үчүн шарды колдонуңуз
Бул ыкма чарчы метрдин маанисин бергендиктен, чарчы километрди алуу үчүн миллионго бөлүңүз.
var area_m = kür.geodesicArea (координаттар); var area_km = area_m / 1000/1000; console.log ('аймак:', аймак_км, 'км²'); // КОНСОЛ: аянты: 2317133.7166773956 км²
Кадам 6. Аймактык жооптун мааниси бар экенин текшериңиз
Биз бул туура экенин билебиз, анткени ал болжол менен 2, 381, 741 км² аянты бар Алжирге окшош (Википедиядан).