Monikulmiot ovat loistava tapa esittää kartalla arvioitu maa -alue, ja usein on hyödyllistä tietää määrittämäsi monikulmion alue. Tämä on mahdollista OpenLayers 3: ssa; tehokas JavaScript -karttatyökalu.
Tämä artikkeli opastaa monikulmion lisäämisessä ja sitten alueen laskemisessa pallon avulla.
Huomaa, että sinun on asennettava toimiva OpenLayers -kartta verkkosivulle, jotta voit seurata tätä artikkelia. Jos sinulla ei ole sitä, Kuinka tehdä kartta OpenLayersin avulla 3.
Askeleet
Vaihe 1. Luo monikulmio -ominaisuus
Monikulmiorakentajatoiminto tarvitsee koordinaattitaulukon; määritä tämä taulukko ensin muuttujassa, jotta voit käyttää sitä myöhemmin. Kopioi vain seuraava koodirivi omaan
elementti:
var -koordinaatit =
Vaihe 2. Lisää ominaisuus vektorikerrokseen
Jos haluat lisätä monikulmion kartalle, sinun on lisättävä se lähteeseen, jonka lisäät vektorikerrokseen, jonka voit sitten lisätä karttaan:
var vector_layer = new ol.layer. Vector ({lähde: new ol.source. Vector ({ominaisuudet: [polygon_feature]})}}) map.addLayer (vector_layer);
Vaihe 3. Muuta ominaisuuden geometriaa koordinaattien käyttämiseksi
var current_projection = uusi ol.proj. Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection);
Vaihe 4. Luo pallo laskennan suorittamiseksi
Pallon tulisi olla Maan kokoinen (sen säteen tulisi olla 6,3 metriä). Teknisesti pallon säde on yhtä suuri kuin WGS84-ellipsoidin puolisuuri akseli.
var sphere = uusi ol. pallo (6378137);
Vaihe 5. Laske alue pallon avulla geodesicArea () -menetelmällä
Koska menetelmä antaa arvon neliömetreinä, jaa miljoonalla saadaksesi neliökilometrit.
var area_m = pallo.geodesicArea (koordinaatit); var alue_km = alue_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // KONSOLI: alue: 2317133.7166773956 km²
Vaihe 6. Tarkista, että aluevastaus on järkevä
Tiedämme, että se on oikein, koska se näyttää suunnilleen samankokoiselta kuin Algeria, jonka pinta -ala on 2, 381, 741 km² (Wikipediasta).