Kako odrediti površinu poligona u OpenLayersu 3

Sadržaj:

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

Video: Kako odrediti površinu poligona u OpenLayersu 3

Video: Kako odrediti površinu poligona u OpenLayersu 3
Video: linux users be like 2024, Maj
Anonim

Poligoni su odličan način za predstavljanje približne površine zemljišta na karti, a često je korisno znati i područje poligona koji ste definirali. To je moguće u OpenLayers 3; moć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 koristeći OpenLayers 3.

Koraci

7151572 1
7151572 1

Korak 1. Kreirajte poligonsko obilježje

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

element:

var koordinate =

7151572 2
7151572 2

Korak 2. Dodajte značajku vektorskom sloju

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

var vector_layer = novi ol.layer. Vector ({izvor: novi ol.source. Vector ({karakteristike: [poligon_karakteristika]})}}) map.addLayer (vektorski sloj);

7151572 3
7151572 3

Korak 3. Pretvorite geometriju obilježja da biste koristili 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. Kreirajte sferu za izvođenje proračuna

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

var sfera = nova ol. Sphere (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 kvadratnim metrima, podijelite s milijunom 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 točno jer se čini da je otprilike iste veličine kao Alžir, koji ima površinu od 2, 381, 741 km² (iz Wikipedije).

Preporučuje se: