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
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 =
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);
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);
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);
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²
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).