Hoe het gebied van een veelhoek in OpenLayers te bepalen

Inhoudsopgave:

Hoe het gebied van een veelhoek in OpenLayers te bepalen
Hoe het gebied van een veelhoek in OpenLayers te bepalen

Video: Hoe het gebied van een veelhoek in OpenLayers te bepalen

Video: Hoe het gebied van een veelhoek in OpenLayers te bepalen
Video: Fedora 36 - Installation Guide for PC 2022 2024, Mei
Anonim

Veelhoeken zijn een geweldige manier om de geschatte oppervlakte van het land op een kaart weer te geven, en het is vaak handig om de oppervlakte van de veelhoek die u hebt gedefinieerd te kennen. Dit is mogelijk in OpenLayers 3; een krachtige JavaScript-toewijzingstool.

Dit artikel helpt u bij het toevoegen van een veelhoek en het berekenen van de oppervlakte met behulp van een bol.

Houd er rekening mee dat u een werkende OpenLayers-kaart op een webpagina moet hebben geïnstalleerd om dit artikel te kunnen volgen. Als je er geen hebt, Hoe maak je een kaart met OpenLayers 3.

Stappen

7151572 1
7151572 1

Stap 1. Maak een polygoonfunctie

De constructorfunctie Polygon heeft een reeks coördinatenarrays nodig; definieer deze array eerst in een variabele, zodat u deze later kunt gebruiken. Kopieer eenvoudig de volgende regel code naar uw

element:

var-coördinaten =

7151572 2
7151572 2

Stap 2. Voeg het object toe aan een vectorlaag

Om de polygoon aan de kaart toe te voegen, moet u deze toevoegen aan een bron, die u toevoegt aan een vectorlaag, die u vervolgens aan de kaart kunt toevoegen:

var vector_layer = nieuwe ol.layer. Vector({ source: new ol.source. Vector({ features: [polygon_feature] }) }) map.addLayer(vector_layer);

7151572 3
7151572 3

Stap 3. Transformeer de geometrie van het object om coördinaten te gebruiken

var current_projection = nieuwe ol.proj. Projection({code: "EPSG:4326"}); var new_projection = tile_layer.getSource().getProjection(); polygon_feature.getGeometry().transform(huidige_projectie, nieuwe_projectie);

7151572 4
7151572 4

Stap 4. Maak een bol om de berekening uit te voeren

De bol moet de grootte van de aarde hebben (moet een straal van 6,3 meter hebben). Technisch gezien heeft de bol een straal die gelijk is aan de halve lange as van de WGS84-ellipsoïde.

var bol = nieuwe ol. Sphere(6378137);

7151572 5
7151572 5

Stap 5. Gebruik de bol om het gebied te berekenen met behulp van de geodesicArea() methode

Omdat de methode een waarde in vierkante meters geeft, deelt u deze door een miljoen om vierkante kilometers te krijgen.

var area_m = sphere.geodesicArea(coördinaten); var area_km = area_m / 1000 / 1000; console.log('gebied: ', gebied_km, 'km²'); // CONSOLE: oppervlakte: 2317133.7166773956 km²

7151572 6
7151572 6

Stap 6. Controleer of het gebiedsantwoord klopt

We weten dat het klopt omdat het ongeveer even groot lijkt als Algerije, dat een oppervlakte heeft van 2.381.741 km² (van Wikipedia).

Aanbevolen: