Jak určit plochu mnohoúhelníku v OpenLayers 3

Obsah:

Jak určit plochu mnohoúhelníku v OpenLayers 3
Jak určit plochu mnohoúhelníku v OpenLayers 3

Video: Jak určit plochu mnohoúhelníku v OpenLayers 3

Video: Jak určit plochu mnohoúhelníku v OpenLayers 3
Video: Fedora 36 - Installation Guide for PC 2022 2024, Smět
Anonim

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

7151572 1
7151572 1

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 =

7151572 2
7151572 2

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);

7151572 3
7151572 3

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);

7151572 4
7151572 4

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);

7151572 5
7151572 5

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²

7151572 6
7151572 6

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).

Doporučuje: