Polygony jsou skvělý způsob, jak znázornit přibližnou oblast země na mapě, a často je užitečné znát oblast polygonu, kterou jste definovali. To je možné v OpenLayers 3; výkonný nástroj pro mapování JavaScriptu.
Tento článek vás provede přidáním mnohoúhelníku a vypočítáním plochy pomocí koule.
Chcete -li postupovat podle tohoto článku, musíte mít na webové stránce nainstalovanou funkční mapu OpenLayers. Pokud ji nemáte, Jak vytvořit mapu pomocí OpenLayers 3.
Kroky
Krok 1. Vytvořte prvek mnohoúhelníku
Funkce konstruktoru Polygon potřebuje řadu souřadnicových polí; nejprve definujte toto pole v proměnné, abyste jej mohli použít později. Jednoduše zkopírujte následující řádek kódu do souboru
živel:
var souřadnice =
Krok 2. Přidejte funkci do vektorové vrstvy
Chcete -li přidat mnohoúhelník na mapu, musíte jej přidat do zdroje, který přidáte do vektorové vrstvy, kterou pak můžete přidat do mapy:
var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [polygon_feature]})}) map.addLayer (vector_layer);
Krok 3. Transformujte geometrii prvku tak, aby používal souřadnice
var aktuální_projekce = nový ol.proj. Projection ({kód: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection);
Krok 4. Vytvořte kouli pro výpočet
Koule by měla mít velikost Země (měla by mít poloměr 6,3 m). Technicky má koule poloměr rovný polovině hlavní osy elipsoidu WGS84.
var sphere = new ol. Sphere (6378137);
Krok 5. Pomocí koule vypočítejte plochu pomocí metody geodesicArea ()
Protože metoda poskytuje hodnotu v metrech čtverečních, vydělte milionem a dostanete kilometry čtvereční.
var area_m = sphere.geodesicArea (souřadnice); var area_km = area_m / 1000 /1000; console.log ('area:', area_km, 'km²'); // CONSOLE: oblast: 2317133.7166773956 km²
Krok 6. Zkontrolujte, zda oblastní odpověď dává smysl
Víme, že je to správné, protože se zdá, že má přibližně stejnou velikost jako Alžírsko, které má rozlohu 2 381 741 km² (z Wikipedie).