Come determinare l'area di un poligono in OpenLayers 3

Sommario:

Come determinare l'area di un poligono in OpenLayers 3
Come determinare l'area di un poligono in OpenLayers 3

Video: Come determinare l'area di un poligono in OpenLayers 3

Video: Come determinare l'area di un poligono in OpenLayers 3
Video: Fedora Linux 36: Informazioni sulla distro, installazione, post installazione 2024, Maggio
Anonim

I poligoni sono un ottimo modo per rappresentare l'area approssimativa del terreno su una mappa, ed è spesso utile conoscere l'area del poligono che hai definito. Questo è possibile in OpenLayers 3; un potente strumento di mappatura JavaScript.

Questo articolo ti guiderà nell'aggiunta di un poligono, quindi nel calcolo dell'area utilizzando una sfera.

Si prega di notare che è necessario disporre di una mappa OpenLayers funzionante installata in una pagina Web per seguire questo articolo. Se non ne hai uno, come creare una mappa utilizzando OpenLayers 3.

Passi

7151572 1
7151572 1

Passaggio 1. Creare una feature poligonale

La funzione di costruzione Polygon necessita di un array di array di coordinate; definire prima questo array in una variabile in modo da poterlo utilizzare in seguito. Copia semplicemente la seguente riga di codice nel tuo

elemento:

coordinate var =

7151572 2
7151572 2

Passaggio 2. Aggiungi la funzione a un livello vettoriale

Per aggiungere il poligono alla mappa, devi aggiungerlo a una sorgente, che aggiungi a un livello vettoriale, che puoi quindi aggiungere alla mappa:

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

7151572 3
7151572 3

Passaggio 3. Trasforma la geometria dell'elemento per utilizzare le coordinate

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

7151572 4
7151572 4

Passaggio 4. Creare una sfera per eseguire il calcolo

La sfera dovrebbe avere le dimensioni della Terra (dovrebbe avere un raggio di 6,3 m metri). Tecnicamente, la sfera ha un raggio uguale al semiasse maggiore dell'ellissoide WGS84.

var sfera = new ol. Sphere(6378137);

7151572 5
7151572 5

Passaggio 5. Utilizzare la sfera per calcolare l'area utilizzando il metodo geodesicArea()

Poiché il metodo fornisce un valore in metri quadrati, dividi per un milione per ottenere chilometri quadrati.

var area_m = sphere.geodesicArea(coordinates); var area_km = area_m / 1000 / 1000; console.log('area: ', area_km, 'km²'); // CONSOLE: area: 2317133.7166773956 km²

7151572 6
7151572 6

Passaggio 6. Verificare che la risposta dell'area abbia senso

Sappiamo che è corretto perché sembra avere all'incirca le stesse dimensioni dell'Algeria, che ha una superficie di 2, 381, 741 km² (da Wikipedia).

Consigliato: