Ich kenne keine Leaflet Plugins, die dies für Sie erreichen können. Der Algorithmus dafür ist jedoch nicht besonders komplex. Überprüfen Sie diese Website: http://www.mathopenref.com/coordpolygonarea2.html enthält den Algorithmus und viele visuelle Beispiele, wie der Algorithmus tatsächlich funktioniert.
function polygonArea(X, Y, numPoints)
{
area = 0; // Accumulates area in the loop
j = numPoints-1; // The last vertex is the 'previous' one to the first
for (i=0; i<numPoints; i++)
{ area = area + (X[j]+X[i]) * (Y[j]-Y[i]);
j = i; //j is previous vertex to i
}
return area/2;
}
Um diesen Algorithmus mit Leaflet Polygone zu verwenden, würden Sie durch das Polygon polygon.getLatLngs()
um laufen alle lat/lon-Paare zu erhalten. Legen Sie sie in zwei separate Arrays - eins für X-Koordinaten, eins für Y-Koordinaten. Verwenden Sie diese als Parameter für die obige Funktion und für numPoints
Hand es die polygon.getLatLngs().length
Wie die Webseite sagt, ist es egal, wo auf dem Polygon-Pfad dies beginnt. Wenn Sie jedoch gegen den Uhrzeigersinn beginnen, wird Ihr Ergebnis negativ sein. Sie können alle Fälle behandeln, indem Sie einfach den absoluten Wert dessen abrufen, was diese Funktion zurückgibt.
Die geodesicArea war für mich mit einer einfachen CRS-Karte fehlgeschlagen, diese Methode funktionierte jedoch perfekt, also danke! – Ecksters