首先,我是一个初学者,我从你身上学到了很多东西。 我定义了 5 个自定义图标:
//Awesome icons
var LeafIcon = L.Icon.extend({
options: {
shadowUrl: "markers-shadow.png",
iconSize: [35, 45],
shadowSize: [36, 16],
iconAnchor: [17, 42],
shadowAnchor: [10, 12],
popupAnchor: [1, -32]
}
});
var blueIcon = new LeafIcon({iconUrl: 'blue.png'});
var greenIcon = new LeafIcon({iconUrl: 'green.png'});
var yellowIcon = new LeafIcon({iconUrl: 'yellow.png'});
var orangeIcon = new LeafIcon({iconUrl: 'orange.png'});
var redIcon = new LeafIcon({iconUrl: 'red.png'});
图标代表施工条件。 当选择overlayMaps时,是否可以计算每个图标出现的次数?对于结果,您需要用结果制作图例并重命名要显示的图标,例如:蓝色 5 次出现、绿色 2 次出现、黄色 12 次出现、橙色 0 次出现和红色 21 次出现。 我很感激您的帮助。
您可以迭代地图上(或其他图层,例如要素组)上的标记,并计算使用哪个图标的次数:
function countMarkers(featureGroup) {
const count = {};
for (const layer of featureGroup.getLayers()) {
const icon = layer.getIcon();
const url = icon.options.iconUrl;
count[url] = (count[url] || 0) + 1;
}
return count;
}
// featureGroup is an instance of L.featureGroup
const result = countMarkers(featureGroup);
// example return: { "blue.png": 3, "orange.png": 1 }
console.log(result);
该示例假设您已将标记添加到
L.featureGroup
实例 (featureGroup
) 并且您的图标 URL 可以用作 ID。