Polygone sind eine großartige Möglichkeit, die ungefähre Landfläche auf einer Karte darzustellen, und es ist oft hilfreich, die Fläche des von Ihnen definierten Polygons zu kennen. Dies ist in OpenLayers 3 möglich; ein leistungsstarkes JavaScript-Mapping-Tool.
In diesem Artikel erfahren Sie, wie Sie ein Polygon hinzufügen und dann die Fläche mithilfe einer Kugel berechnen.
Bitte beachten Sie, dass Sie eine funktionierende OpenLayers-Map auf einer Webseite installiert haben müssen, um diesem Artikel folgen zu können. Wenn Sie keine haben, erstellen Sie eine Karte mit OpenLayers 3.
Schritte
Schritt 1. Erstellen Sie ein Polygon-Feature
Die Polygon-Konstruktorfunktion benötigt ein Array von Koordinaten-Arrays; Definieren Sie dieses Array zuerst in einer Variablen, damit Sie es später verwenden können. Kopieren Sie einfach die folgende Codezeile in Ihr
Element:
var-Koordinaten =
Schritt 2. Fügen Sie das Feature zu einer Vektorebene hinzu
Um das Polygon zur Karte hinzuzufügen, müssen Sie es einer Quelle hinzufügen, die Sie einer Vektorebene hinzufügen, die Sie dann zur Karte hinzufügen können:
var vector_layer = new ol.layer. Vector({ source: new ol.source. Vector({ features: [polygon_feature] }) }) map.addLayer(vector_layer);
Schritt 3. Transformieren Sie die Geometrie des Features, um Koordinaten zu verwenden
var current_projection = new ol.proj. Projection({code: "EPSG:4326"}); var new_projection = tile_layer.getSource().getProjection(); polygon_feature.getGeometry().transform(current_projection, new_projection);
Schritt 4. Erstellen Sie eine Kugel, um die Berechnung durchzuführen
Die Kugel sollte die Größe der Erde haben (sollte einen Radius von 6,3 m haben). Technisch gesehen hat die Kugel einen Radius, der gleich der großen Halbachse des WGS84-Ellipsoids ist.
var sphere = new ol. Sphere (6378137);
Schritt 5. Verwenden Sie die Kugel, um die Fläche mit der Methode geodesicArea() zu berechnen
Da die Methode einen Wert in Quadratmetern liefert, teilen Sie ihn durch eine Million, um Quadratkilometer zu erhalten.
var area_m = sphere.geodesicArea(Koordinaten); var Bereich_km = Bereich_m / 1000 / 1000; console.log('area: ', area_km, 'km²'); // KONSOLE: Fläche: 2317133.7166773956 km²
Schritt 6. Prüfen Sie, ob die Bereichsantwort sinnvoll ist
Wir wissen, dass es richtig ist, weil es ungefähr so groß zu sein scheint wie Algerien, das eine Fläche von 2.381,741 km² hat (aus Wikipedia).