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