我在创建的地图上有一堆leaflet多边形。每个多边形代表着不同的东西。根据用户所在页面显示特定集合的信息在弹出窗口中。我需要找到一种方法,使得"弹出"气泡可以在其所表示的多边形的中心位置打开。
每个多边形使用以下代码绘制:
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);
以下代码用于绘制弹出窗口:
var popup = L.popup({})
.setLatLng([73.64017, -100.32715])
.setContent(content).openOn(map);
var popup = L.popup();
所以我需要找到一种方法,让.setLatLng
能够确定或者给定多边形的中心。
我想出了3种可能管用的解决方案,但是不确定该如何实现。
找到一种使用多边形坐标来确定多边形中心的方法,弹出框将在此处打开。
调用多边形中的一个点,然后偏移弹出框的位置。
为每个多边形使用一个ID,这样每个弹出框都知道它可以打开的盒子区域(即多边形)。
有人能帮我吗?