Finden Sie das Zentrum des Leaflet-Polygons?

Ich habe ein paar Flugblattpolygone auf einer Karte, die ich erstellt habe. Jedes Polygon repräsentiert etwas anderes. Abhängig von der Seite, auf der sich der Benutzer befindet, werden in einem Popup bestimmte Informationen angezeigt. Ich muss eine Möglichkeit finden, die "Popup" -Blase in der Mitte des Polygons zu öffnen, das sie darstellt.

Jedes Polygon wird mit folgendem Code gezeichnet:

var L20 = [
    [74.0995, -99.92615],
    [74.14008, -99.4043],
    [74.07691, -99.33838],
    [74.03617, -99.86023]
];



var L19 = [
    [74.02559, -99.84924],
    [74.06636, -99.32739],
    [74.0029, -99.26147],
    [73.96197, -99.77783]
];

var L18 = [
    [73.95142, -99.76684],
    [73.99235, -99.25048],
    [73.92889, -99.18456],
    [73.8878, -99.69543]
];

var set1 = L.polygon([L20, L19, L18], {
    color: "#fff",
    weight: 1,
    stroke: true,
    opacity: 0.05,
    fillColor: "#346B1F",

}).addTo(map);

Das Popup wird mit folgendem Code gezeichnet:

var popup = L.popup({})
    .setLatLng([73.64017, -100.32715])
    .setContent(content).openOn(map);
    var popup = L.popup();

Also muss ich einen Weg finden für.setLatLang den Mittelpunkt des Polygons bestimmen oder erhalten.

Ich habe 3 Lösungen gefunden, die möglicherweise funktionieren und nicht sicher sind, wie ich vorgehen soll.

Finden Sie eine Möglichkeit, die Koordinaten eines Polygons zu verwenden, um den Mittelpunkt des Polygons zu bestimmen, in dem das Popup geöffnet wird.

Rufen Sie einen Punkt des Polygons auf und verschieben Sie dann die Position des Popups.

Verwenden Sie für jedes Polygon eine ID, damit jedes Popup den Box-Bereich (Polygon) kennt, in dem es geöffnet werden kann.

Kann mir bitte jemand helfen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage