Jak określić obszar wielokąta w OpenLayers 3

Spisu treści:

Jak określić obszar wielokąta w OpenLayers 3
Jak określić obszar wielokąta w OpenLayers 3

Wideo: Jak określić obszar wielokąta w OpenLayers 3

Wideo: Jak określić obszar wielokąta w OpenLayers 3
Wideo: Fedora 36 - Installation Guide for PC 2022 2024, Może
Anonim

Wielokąty to świetny sposób na przedstawienie przybliżonego obszaru lądu na mapie, a często warto znać obszar zdefiniowanego wielokąta. Jest to możliwe w OpenLayers 3; potężne narzędzie do mapowania JavaScript.

W tym artykule dowiesz się, jak dodać wielokąt, a następnie obliczyć powierzchnię za pomocą kuli.

Pamiętaj, że aby śledzić ten artykuł, musisz mieć zainstalowaną działającą mapę OpenLayers na stronie internetowej. Jeśli go nie masz, Jak zrobić mapę za pomocą OpenLayers 3.

Kroki

7151572 1
7151572 1

Krok 1. Utwórz wielokąt

Funkcja konstruktora Polygon wymaga tablicy tablic współrzędnych; najpierw zdefiniuj tę tablicę w zmiennej, aby móc jej później użyć. Po prostu skopiuj następujący wiersz kodu do swojego

element:

var współrzędne =

7151572 2
7151572 2

Krok 2. Dodaj obiekt do warstwy wektorowej

Aby dodać wielokąt do mapy, musisz dodać go do źródła, które dodajesz do warstwy wektorowej, którą następnie możesz dodać do mapy:

var vector_layer = new ol.layer. Vector({ source: nowy ol.source. Vector({ features: [wielokąt_feature] }) }) map.addLayer(vector_layer);

7151572 3
7151572 3

Krok 3. Przekształć geometrię obiektu, aby użyć współrzędnych

var current_projection = nowy ol.proj. Projection({kod: "EPSG:4326"}); var nowy_rzut = warstwa_kafelków.getSource().getProjection(); polygon_feature.getGeometry().transform(bieżący_rzut, nowy_rzut);

7151572 4
7151572 4

Krok 4. Utwórz sferę, aby wykonać obliczenia

Kula powinna być wielkości Ziemi (powinna mieć promień 6,3 m). Technicznie rzecz biorąc, kula ma promień równy półosi wielkiej elipsoidy WGS84.

var sphere = new ol. Sphere(6378137);

7151572 5
7151572 5

Krok 5. Użyj sfery, aby obliczyć powierzchnię za pomocą metody geodesicArea()

Ponieważ metoda podaje wartość w metrach kwadratowych, należy podzielić przez milion, aby otrzymać kilometry kwadratowe.

var area_m = sphere.geodesicArea(współrzędne); var powierzchnia_km = powierzchnia_m / 1000 / 1000; console.log('powierzchnia: ', powierzchnia_km, 'km²'); // KONSOLA: powierzchnia: 2317133.7166773956 km²

7151572 6
7151572 6

Krok 6. Sprawdź, czy odpowiedź obszaru ma sens

Wiemy, że jest to poprawne, ponieważ wydaje się, że jest mniej więcej tej samej wielkości co Algieria, która ma powierzchnię 2 381 741 km² (z Wikipedii).

Zalecana: