Hoe om die oppervlakte van 'n veelhoek in OpenLayers te bepaal 3

INHOUDSOPGAWE:

Hoe om die oppervlakte van 'n veelhoek in OpenLayers te bepaal 3
Hoe om die oppervlakte van 'n veelhoek in OpenLayers te bepaal 3

Video: Hoe om die oppervlakte van 'n veelhoek in OpenLayers te bepaal 3

Video: Hoe om die oppervlakte van 'n veelhoek in OpenLayers te bepaal 3
Video: Fedora 36 - Installation Guide for PC 2022 2024, April
Anonim

Veelhoeke is 'n uitstekende manier om die benaderde oppervlakte van die land op 'n kaart voor te stel, en dit is dikwels nuttig om die gebied van die veelhoek wat u gedefinieer het, te ken. Dit is moontlik in OpenLayers 3; 'n kragtige hulpmiddel vir JavaScript -kartering.

Hierdie artikel sal u lei by die toevoeging van 'n veelhoek, en dan die oppervlakte bereken met 'n bol.

Let asseblief daarop dat u 'n werkende OpenLayers -kaart op 'n webblad moet installeer om hierdie artikel te volg. As u nie een het nie, hoe om 'n kaart te maak met behulp van OpenLayers 3.

Stappe

7151572 1
7151572 1

Stap 1. Skep 'n veelhoek funksie

Die veelhoekkonstruktorfunksie benodig 'n verskeidenheid koördinaatskikkings; definieer hierdie skikking eers in 'n veranderlike sodat u dit later kan gebruik. Kopieer eenvoudig die volgende reël kode in u

element:

var -koördinate =

7151572 2
7151572 2

Stap 2. Voeg die funksie by 'n vektoraag

Om die veelhoek op die kaart te voeg, moet u dit by 'n bron voeg wat u by 'n vektorlaag voeg, wat u dan op die kaart kan voeg:

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

7151572 3
7151572 3

Stap 3. Transformeer die meetkunde van die funksie om koördinate te gebruik

var current_projection = nuwe ol.proj. Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); veelhoekfunksie.getGeometry (). transform (huidige_projeksie, nuwe_projeksie);

7151572 4
7151572 4

Stap 4. Skep 'n bol om die berekening uit te voer

Die bol moet die grootte van die aarde hê (moet 'n radius van 6,3m meter hê). Tegnies is die sfeer met 'n radius gelyk aan die semi-hoofas van die WGS84 ellipsoïde.

var sfeer = nuwe ol. Sfeer (6378137);

7151572 5
7151572 5

Stap 5. Gebruik die bol om die oppervlakte te bereken deur die geodesicArea () metode te gebruik

Omdat die metode 'n waarde in vierkante meter bied, deel dit met 'n miljoen om vierkante kilometer te kry.

var area_m = sphere.geodesicArea (koördinate); var area_km = area_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // KONSOLE: oppervlakte: 2317133.7166773956 km²

7151572 6
7151572 6

Stap 6. Kontroleer of die gebiedsantwoord sinvol is

Ons weet dat dit korrek is, want dit lyk ongeveer dieselfde grootte as Algerië, met 'n oppervlakte van 2 381 741 km² (van Wikipedia).

Aanbeveel: