Polygoner er en fin måte å representere det omtrentlige landområdet på et kart, og det er ofte nyttig å kjenne området til polygonen du har definert. Dette er mulig i OpenLayers 3; et kraftig JavaScript -kartleggingsverktøy.
Denne artikkelen vil veilede deg i å legge til en polygon, og deretter beregne området ved hjelp av en kule.
Vær oppmerksom på at du må ha et fungerende OpenLayers -kart installert på en webside for å følge denne artikkelen. Hvis du ikke har en, Hvordan lage et kart ved hjelp av OpenLayers 3.
Trinn
Trinn 1. Lag en polygon -funksjon
Polygon -konstruktorfunksjonen trenger en rekke koordinatarrayer; definere denne matrisen i en variabel først slik at du kan bruke den senere. Bare kopier følgende kodelinje til din
element:
var -koordinater =
Trinn 2. Legg funksjonen til et vektorsjikt
For å legge til polygonen på kartet, må du legge den til en kilde, som du legger til i et vektorsjikt, som du deretter kan legge til på kartet:
var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [polygon_feature]})})) map.addLayer (vector_layer);
Trinn 3. Transform funksjonens geometri for å bruke koordinater
var current_projection = ny ol.proj. Projection ({kode: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection);
Trinn 4. Lag en kule for å utføre beregningen
Sfæren skal være på størrelse med jorden (bør ha en radius på 6,3 meter). Teknisk sett har sfæren en radius lik den halvstore aksen til WGS84-ellipsoiden.
var sfære = ny ol. Sphere (6378137);
Trinn 5. Bruk sfæren til å beregne området ved hjelp av metoden geodesicArea ()
Fordi metoden gir en verdi i kvadratmeter, deler du med en million for å få kvadratkilometer.
var area_m = sphere.geodesicArea (koordinater); var arealkm = arealm / 1000 /1000; console.log ('område:', areal_km, 'km²'); // KONSOL: område: 2317133.7166773956 km²
Trinn 6. Kontroller at områdesvaret gir mening
Vi vet at det er riktig fordi det ser ut til å ha omtrent samme størrelse som Algerie, som har et område på 2, 381, 741 km² (fra Wikipedia).