OpenLayers -də bir çoxbucağın sahəsini necə təyin etmək olar 3

Mündəricat:

OpenLayers -də bir çoxbucağın sahəsini necə təyin etmək olar 3
OpenLayers -də bir çoxbucağın sahəsini necə təyin etmək olar 3

Video: OpenLayers -də bir çoxbucağın sahəsini necə təyin etmək olar 3

Video: OpenLayers -də bir çoxbucağın sahəsini necə təyin etmək olar 3
Video: ☣️ Kaiju Paradise Update V3.1 Part 1.5: Gotta Catch 'Em All Part 5 2024, Bilər
Anonim

Ç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

7151572 1
7151572 1

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ı =

7151572 2
7151572 2

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);

7151572 3
7151572 3

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);

7151572 4
7151572 4

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);

7151572 5
7151572 5

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²

7151572 6
7151572 6

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).

Tövsiyə: