Çoxbucaqlar, təxminən bir torpaq sahəsini xəritədə təmsil etmək üçün əla bir yoldur və müəyyən etdiyiniz çoxbucağın sahəsini bilmək çox vaxt faydalıdır. OpenLayers 3 -də bu mümkündür; güclü JavaScript Xəritəçəkmə vasitəsidir.
Bu məqalə bir çoxbucaqlı əlavə etməkdə sizə kömək edəcək, sonra bir sahədən istifadə edərək hesablanmış sahəni əldə edəcəksiniz.
Nəzərə alın ki, bu məqaləni izləmək üçün veb səhifədə işləyən OpenLayers xəritəsinin olması lazımdır. Biriniz yoxdursa, OpenLayers 3 -dən istifadə edərək Xəritəni Necə Yaratmaq olar.
Addımlar
Addım 1. Çoxbucaqlı bir xüsusiyyət yaradın
Polygon konstruktor funksiyası bir sıra koordinat dizilərinə ehtiyac duyur; əvvəl bu dizini dəyişən olaraq təyin edin ki, sonra istifadə edə biləsiniz. Aşağıdakı kod satırını özünüzə kopyalayın
element:
var koordinatları =
Addım 2. Xüsusiyyəti vektor qatına əlavə edin
Çoxbucağı xəritəyə əlavə etmək üçün onu vektor qatına əlavə etdiyiniz mənbəyə əlavə etməlisiniz, sonra xəritəyə əlavə edə bilərsiniz:
var vector_layer = yeni ol.layer. Vector ({mənbə: yeni ol.source. Vector ({xüsusiyyətlər: [polygon_feature]})}) map.addLayer (vektor_layer);
Addım 3. Xüsusiyyətin həndəsəsini koordinatları istifadə etmək üçün dəyişdirin
var current_projection = yeni ol.proj. Projection ({kod: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (cari_projeksiyon, yeni_projeksiyon);
Addım 4. Hesablamanı yerinə yetirmək üçün bir sahə yaradın
Kürə Yerin böyüklüyündə olmalıdır (radiusu 6,3 metr olmalıdır). Texniki olaraq, kürə WGS84 ellipsoidinin yarı böyük oxuna bərabər olan bir radiusa malikdir.
var kürə = yeni ol. Sphere (6378137);
Addım 5. GeodesicArea () metodundan istifadə edərək sahəni hesablamaq üçün kürədən istifadə edin
Metod kvadrat metrdə bir dəyər təmin etdiyi üçün kvadrat kilometrə çatmaq üçün bir milyona bölün.
var alan_m = küre.geodezArea (koordinatlar); var alan_km = sahə_m / 1000/1000; console.log ('sahə:', sahə_km, 'km²'); // KONSOL: sahə: 2317133.7166773956 km²
Addım 6. Sahə cavabının məntiqli olduğunu yoxlayın
Doğru olduğunu bilirik, çünki sahəsi 2, 381, 741 km² olan Əlcəzairlə eyni ölçüdə görünür (Vikipediyadan).