Kaip nustatyti daugiakampio plotą „OpenLayers“3

Turinys:

Kaip nustatyti daugiakampio plotą „OpenLayers“3
Kaip nustatyti daugiakampio plotą „OpenLayers“3

Video: Kaip nustatyti daugiakampio plotą „OpenLayers“3

Video: Kaip nustatyti daugiakampio plotą „OpenLayers“3
Video: Fedora 36 - Installation Guide for PC 2022 2024, Balandis
Anonim

Daugiakampiai yra puikus būdas žemėlapyje pavaizduoti apytikslę žemės plotą ir dažnai naudinga žinoti jūsų apibrėžto daugiakampio plotą. Tai įmanoma naudojant „OpenLayers 3“; galingas „JavaScript“kartografavimo įrankis.

Šis straipsnis padės jums pridėti daugiakampį, tada apskaičiuoti plotą naudojant sferą.

Atminkite, kad norint sekti šį straipsnį tinklalapyje reikia įdiegti veikiantį „OpenLayers“žemėlapį. Jei to neturite, kaip sukurti žemėlapį naudojant „OpenLayers“3.

Žingsniai

7151572 1
7151572 1

Žingsnis 1. Sukurkite daugiakampio funkciją

Daugiakampio konstruktoriaus funkcijai reikia koordinačių masyvų masyvo; pirmiausia apibrėžkite šį masyvą kintamajame, kad vėliau galėtumėte jį naudoti. Tiesiog nukopijuokite šią kodo eilutę į savo

elementas:

var koordinatės =

7151572 2
7151572 2

2 veiksmas. Pridėkite funkciją prie vektorinio sluoksnio

Norėdami pridėti daugiakampį prie žemėlapio, turite jį pridėti prie šaltinio, kurį pridėsite prie vektorinio sluoksnio, kurį galėsite pridėti prie žemėlapio:

var vector_layer = naujas ol.layer. Vector ({šaltinis: new ol.source. Vector ({funkcijos: [daugiakampis_funkcija]})}}) map.addLayer (vektorinis sluoksnis);

7151572 3
7151572 3

Žingsnis 3. Pakeiskite objekto geometriją, kad galėtumėte naudoti koordinates

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

7151572 4
7151572 4

Žingsnis 4. Sukurkite sferą skaičiavimui atlikti

Sfera turėtų būti Žemės dydžio (jos spindulys turėtų būti 6,3 m). Techniškai rutulio spindulys yra lygus WGS84 elipsoido pusiau pagrindinei ašiai.

var sfera = naujas ol. Sfera (6378137);

7151572 5
7151572 5

Žingsnis 5. Naudodami sferą apskaičiuokite plotą naudodami geodesicArea () metodą

Kadangi metodas pateikia kvadratinių metrų vertę, padalinkite iš milijono, kad gautumėte kvadratinius kilometrus.

var area_m = sfera.geodesicArea (koordinatės); var area_km = area_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // KONSOLĖ: plotas: 2317133.7166773956 km²

7151572 6
7151572 6

Žingsnis 6. Patikrinkite, ar srities atsakymas yra prasmingas

Mes žinome, kad tai teisinga, nes atrodo, kad jis yra maždaug tokio paties dydžio kaip Alžyras, kurio plotas yra 2, 381, 741 km² (iš Vikipedijos).

Rekomenduojamas: