Hulknurga pindala määramine OpenLayersis 3

Sisukord:

Hulknurga pindala määramine OpenLayersis 3
Hulknurga pindala määramine OpenLayersis 3

Video: Hulknurga pindala määramine OpenLayersis 3

Video: Hulknurga pindala määramine OpenLayersis 3
Video: First Ever SDXL Training With Kohya LoRA - Stable Diffusion XL Training Will Replace Older Models 2024, Mai
Anonim

Hulknurgad on suurepärane võimalus kaardil ligikaudse maa -ala kujutamiseks ja sageli on kasulik teada teie määratud hulknurga pindala. See on võimalik OpenLayers 3 -s; võimas JavaScripti kaardistamise tööriist.

See artikkel juhendab teid hulknurga lisamisel ja seejärel kera abil pindala arvutamisel.

Pange tähele, et selle artikli järgimiseks peab veebisaidile olema installitud töötav OpenLayersi kaart. Kui teil seda pole, siis kuidas teha kaarti OpenLayersi abil 3.

Sammud

7151572 1
7151572 1

Samm 1. Looge hulknurga funktsioon

Funktsioon Polygon konstruktor vajab koordinaatmassiivide massiivi; määratlege see massiiv kõigepealt muutujaga, et saaksite seda hiljem kasutada. Kopeerige lihtsalt järgmine koodirida oma

element:

var koordinaadid =

7151572 2
7151572 2

Samm 2. Lisage funktsioon vektorkihile

Hulknurga lisamiseks kaardile peate selle lisama allikale, mille lisate vektorkihile, mille saate seejärel kaardile lisada:

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

7151572 3
7151572 3

Samm 3. Muutke objekti geomeetria koordinaatide kasutamiseks

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

7151572 4
7151572 4

Samm 4. Loo arvutamiseks sfäär

Kera peaks olema Maa suurune (raadiusega 6,3 meetrit). Tehniliselt on kera raadius võrdne WGS84 ellipsoidi poolpealse teljega.

var sfäär = uus ol. Sfäär (6378137);

7151572 5
7151572 5

Samm 5. Kasutage sfääri pindala arvutamiseks geodesicArea () meetodi abil

Kuna meetod annab väärtuse ruutmeetrites, jagage ruutkilomeetrite saamiseks miljoniga.

var area_m = kera.geodesicArea (koordinaadid); var area_km = pindala_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // KONSOL: ala: 2317133.7166773956 km²

7151572 6
7151572 6

Samm 6. Kontrollige, kas piirkonna vastus on mõttekas

Me teame, et see on õige, sest tundub, et see on umbes sama suur kui Alžeeria, mille pindala on 2, 381, 741 km² (Vikipeediast).

Soovitan: