Kuidas määrata polügooni pindala OpenLayersis 3

Hulknurgad on suurepärane viis maa-ala ligikaudse pindala esitamiseks kaardil ja sageli on kasulik teada, milline on teie määratud hulknurga pindala. See on OpenLayers 3 puhul võimalik; võimas JavaScripti kaardistamise tööriist.See artikkel juhendab teid hulknurga lisamisel ja seejärel sfääri abil pindala arvutamisel.Pange tähele, et selle artikli järgimiseks peab teil olema veebilehele installitud töötav OpenLayersi kaart. Kui teil seda pole, vaadake, kuidas teha kaarti OpenLayers 3 abil.

1
Loo hulknurga funktsioon. Funktsioon Polygon konstruktor vajab koordinaatide massiivi; defineerige see massiiv kõigepealt muutujas, et saaksite seda hiljem kasutada. Kopeerige lihtsalt järgmine koodirida oma elementi :.var koordinaadid = [[10, 20], [20, 30], [30, 20], [20, 10]];var polygon_feature = new ol.Feature({ geomeetria: new ol.geom.Polygon( [koordinaadid] )});

2
Lisage funktsioon vektorkihile. Hulknurga lisamiseks kaardile peate selle lisama allikasse, mille lisate vektorikihile, mille saate seejärel lisada kaardile:var vector_layer = new ol.layer.Vector({ allikas: uus ol. allikas.Vector({ funktsioonid: [polügoni_funktsioon] })})map.addLayer(vektori_kiht);

3
Muutke objekti geomeetria, et kasutada koordinaate.var current_projection = new ol.proj.Projection({kood: “EPSG:4326”});var new_projection = tile_layer.getSource().getProjection();polygon_feature.getGeometry().transform( praegune_projektsioon, uus_projektsioon);

4
Arvutamiseks looge sfäär. Kera peaks olema Maa suurune (raadiusega 6,3 meetrit). Tehniliselt on sfääri raadius võrdne WGS84 ellipsoidi poolsuurteljega.var sfäär = new ol.Sphere(6378137);

5
Kasutage sfääri pindala arvutamiseks geodeesiala() meetodil. Kuna meetod annab väärtuse ruutmeetrites, jagage ruutkilomeetrite saamiseks miljoniga. var area_m = sphere.geodesicArea(coordinates);var area_km = area_m / 1000 / 1000;console.log(‘area: ‘, area_km, ‘km²’);// KONSOOL: pindala: 2317133.716677396 km²²

6
Kontrollige, kas ala vastus on mõistlik. Teame, et see on õige, sest see näib olevat ligikaudu sama suur kui Alžeeria, mille pindala on 2 381 741 km² (Wikipediast).