Kako odrediti površinu poligona u OpenLayersima 3

Sadržaj:

Kako odrediti površinu poligona u OpenLayersima 3
Kako odrediti površinu poligona u OpenLayersima 3

Video: Kako odrediti površinu poligona u OpenLayersima 3

Video: Kako odrediti površinu poligona u OpenLayersima 3
Video: Создаём бесплатную онлайн систему сбора данных в Excel! 2024, Svibanj
Anonim

Poligoni su izvrstan način za predstavljanje približne površine zemlje na karti, a često je korisno znati i područje poligona koji ste definirali. To je moguće u OpenLayersu 3; snažan JavaScript alat za mapiranje.

Ovaj članak će vas uputiti u dodavanje poligona, a zatim izračunavanje površine pomoću sfere.

Imajte na umu da za praćenje ovog članka trebate imati radnu OpenLayers kartu instaliranu na web stranici. Ako ga nemate, Kako napraviti kartu pomoću OpenLayersa 3.

Koraci

7151572 1
7151572 1

Korak 1. Izradite značajku poligona

Konstruktorska funkcija poligona treba niz koordinatnih nizova; prvo definirajte ovaj niz u varijabli kako biste ga kasnije mogli koristiti. Jednostavno kopirajte sljedeći redak koda u svoj

element:

var koordinate =

7151572 2
7151572 2

Korak 2. Dodajte značajku vektorskom sloju

Da biste poligon dodali na kartu, morate ga dodati izvoru, koji dodate vektorskom sloju, koji zatim možete dodati na kartu:

var vector_layer = novi ol.layer. Vector ({izvor: novi ol.source. Vector ({mogućnosti: [značajka poligona]})}}) map.addLayer (vektorski sloj);

7151572 3
7151572 3

Korak 3. Pretvorite geometriju značajke u koordinate

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

7151572 4
7151572 4

Korak 4. Izradite sferu za izračun

Kugla bi trebala biti veličine Zemlje (trebala bi imati radijus od 6,3 m metara). Tehnički gledano, polumjer je jednak polu-velikoj osi elipsoida WGS84.

var sfera = nova ol. Sfera (6378137);

7151572 5
7151572 5

Korak 5. Pomoću sfere izračunajte površinu pomoću metode geodesicArea ()

Budući da metoda daje vrijednost u četvornim metrima, podijelite s milijun da biste dobili kvadratne kilometre.

var area_m = sphere.geodesicArea (koordinate); var area_km = area_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // KONZOLA: površina: 2317133.7166773956 km²

7151572 6
7151572 6

Korak 6. Provjerite ima li smisla odgovor na područje

Znamo da je točan jer se čini da je približno iste veličine kao Alžir, koji ima površinu od 2, 381, 741 km² (iz Wikipedije).

Preporučeni: