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
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 =
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);
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);
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);
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²
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).