Poligoni so odličen način za predstavitev približne površine zemlje na zemljevidu, zato je pogosto koristno poznati območje poligona, ki ste ga določili. To je mogoče v OpenLayers 3; zmogljivo orodje za preslikavo JavaScript.
Ta članek vas bo vodil pri dodajanju poligona in nato izračunali površino s pomočjo krogle.
Upoštevajte, da morate za spremljanje tega članka imeti delujoč zemljevid OpenLayers na spletni strani. Če ga nimate, Kako narediti zemljevid z uporabo OpenLayers 3.
Koraki
Korak 1. Ustvarite funkcijo poligona
Konstruktorska funkcija Polygon potrebuje niz koordinatnih nizov; najprej določite to matriko v spremenljivki, da jo boste lahko kasneje uporabili. Preprosto kopirajte naslednjo vrstico kode v svojo
element:
var koordinate =
Korak 2. Dodajte funkcijo v vektorsko plast
Če želite poligon dodati na zemljevid, ga morate dodati viru, ki ga dodate vektorski plasti, ki jo lahko nato dodate na zemljevid:
var vector_layer = nov ol.layer. Vector ({vir: nov ol.source. Vector ({funkcije: [značilnost_ poligona]})}}}) map.addLayer (vektorski_sloj);
Korak 3. Preoblikujte geometrijo funkcije, da uporabite koordinate
var current_projection = nov ol.proj. Projection ({koda: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection);
Korak 4. Ustvarite kroglo za izvedbo izračuna
Krogla naj bo velikosti Zemlje (mora imeti polmer 6,3 m metrov). Tehnično je polmer krogle enak pol glavni osi elipsoida WGS84.
var sfera = nova ol. Sphere (6378137);
Korak 5. S kroglo izračunajte površino z metodo geodesicArea ()
Ker metoda daje vrednost v kvadratnih metrih, delite z milijonom, da dobite 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²
Korak 6. Preverite, ali je odgovor na področje smiseln
Vemo, da je pravilen, ker se zdi približno enake velikosti kot Alžirija, ki ima površino 2, 381, 741 km² (iz Wikipedije).