Ako určiť oblasť mnohouholníka v OpenLayers 3

Obsah:

Ako určiť oblasť mnohouholníka v OpenLayers 3
Ako určiť oblasť mnohouholníka v OpenLayers 3

Video: Ako určiť oblasť mnohouholníka v OpenLayers 3

Video: Ako určiť oblasť mnohouholníka v OpenLayers 3
Video: Akon - Smack That (Official Music Video) ft. Eminem 2024, Smieť
Anonim

Polygóny sú skvelým spôsobom, ako znázorniť približnú plochu zeme na mape, a často je užitočné poznať oblasť mnohouholníka, ktorý ste definovali. To je možné v OpenLayers 3; výkonný mapovací nástroj JavaScript.

Tento článok vás prevedie pridaním mnohouholníka a potom vypočítaním plochy pomocou gule.

Podľa tohto článku musíte mať na webovej stránke nainštalovanú funkčnú mapu OpenLayers. Ak ho nemáte, Ako vytvoriť mapu pomocou OpenLayers 3.

Kroky

7151572 1
7151572 1

Krok 1. Vytvorte funkciu mnohouholníka

Funkcia polygónového konštruktora potrebuje rad súradnicových polí; najskôr definujte toto pole v premennej, aby ste ho mohli použiť neskôr. Jednoducho skopírujte nasledujúci riadok kódu do svojho

element:

var súradnice =

7151572 2
7151572 2

Krok 2. Pridajte funkciu do vektorovej vrstvy

Ak chcete pridať polygón na mapu, musíte ho pridať do zdroja, ktorý pridáte do vektorovej vrstvy, ktorú potom môžete pridať na mapu:

var vector_layer = new ol.layer. Vector ({zdroj: new ol.source. Vector ({features: [polygon_feature]}))} map.addLayer (vector_layer);

7151572 3
7151572 3

Krok 3. Transformujte geometriu objektu tak, aby používal súradnice

var current_projection = new ol.proj. Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection);

7151572 4
7151572 4

Krok 4. Vytvorte guľu na výpočet

Guľa by mala mať veľkosť Zeme (mala by mať polomer 6,3 m). Technicky má guľa polomer rovný polovičnej osi elipsoidu WGS84.

var sphere = new ol. Sphere (6378137);

7151572 5
7151572 5

Krok 5. Pomocou gule vypočítajte plochu pomocou metódy geodesicArea ()

Pretože metóda poskytuje hodnotu v metroch štvorcových, vydelením miliónom získate kilometre štvorcové.

var area_m = sphere.geodesicArea (súradnice); var area_km = area_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // KONZOLA: rozloha: 2317133.7166773956 km²

7151572 6
7151572 6

Krok 6. Skontrolujte, či odpoveď v oblasti dáva zmysel

Vieme, že je to správne, pretože sa zdá, že má približne rovnakú veľkosť ako Alžírsko, ktoré má rozlohu 2 381 741 km² (z Wikipédie).

Odporúča: