Polygoner är ett bra sätt att representera det ungefärliga landområdet på en karta, och det är ofta bra att känna till området för polygonen du har definierat. Detta är möjligt i OpenLayers 3; ett kraftfullt JavaScript -kartläggningsverktyg.
Den här artikeln hjälper dig att lägga till en polygon och beräknar sedan ytan med en sfär.
Observera att du måste ha en fungerande OpenLayers -karta installerad på en webbsida för att följa den här artikeln. Om du inte har en, Hur man gör en karta med OpenLayers 3.
Steg
Steg 1. Skapa en polygonfunktion
Polygonkonstruktorfunktionen behöver en rad koordinatarrayer; definiera den här matrisen i en variabel först så att du kan använda den senare. Kopiera bara följande kodrad till din
element:
var -koordinater =
Steg 2. Lägg till funktionen i ett vektorgikt
För att lägga till polygonen på kartan måste du lägga till den i en källa, som du lägger till i ett vektorgikt, som du sedan kan lägga till på kartan:
var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [polygon_feature]})})) map.addLayer (vector_layer);
Steg 3. Transformera funktionens geometri för att använda koordinater
var current_projection = ny ol.proj. Projection ({kod: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection);
Steg 4. Skapa en sfär för att utföra beräkningen
Sfären ska vara lika stor som jorden (bör ha en radie på 6,3 m meter). Tekniskt sett har sfären en radie som är lika med den halvstora axeln för WGS84-ellipsoiden.
var sfär = ny ol. Sphere (6378137);
Steg 5. Använd sfären för att beräkna ytan med hjälp av metoden geodesicArea ()
Eftersom metoden ger ett värde i kvadratmeter, dela med en miljon för att få kvadratkilometer.
var area_m = sphere.geodesicArea (koordinater); var area_km = area_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // KONSOL: område: 2317133.7166773956 km²
Steg 6. Kontrollera att områdesvaret är vettigt
Vi vet att det är korrekt eftersom det verkar vara ungefär lika stort som Algeriet, som har en yta på 2, 381, 741 km² (från Wikipedia).