У меня есть пара маркеров, которые имеют класс css с его именами, например: markerOne имеет .markerone как класс css и т. Д. Возможно ли создать функцию для назначения этих маркеров определенным слоям или группам? Что-то вроде var layerone = $(L.marker).hasClass("markerone"));
и назначить все маркеры этим классом внутри слоя? Я хочу сделать это, так что позже я могу включить/выключить этот слой с помощью addLayer и removeLayer.Как добавить маркер с определенным классом в слой или группу слоев?
Функция, которую я использую, чтобы показать маркеры:
function showResourcesByName(name) {
for (var i = 0; i < markers.resources.length; i++) {
var resName = markers.resources[i].name;
if (resName == name) {
var resIcon = icons.resources[i].icon;
var resSize = icons.resources[i].size;
var resPname = icons.resources[i].pname;
var customIcon = L.icon({
iconUrl: resIcon,
iconSize: resSize, // size of the icon
iconAnchor: [resSize[0]/2, resSize[1]/2], // point of the icon which will correspond to marker's location
popupAnchor: [2, -resSize[1]/2] // point from which the popup should open relative to the iconAnchor
});
for (var j = 0; j < markers.resources[i].coords.length; j++) {
var x = markers.resources[i].coords[j].x;
var y = markers.resources[i].coords[j].y;
marker = L.marker([y, x], {icon: customIcon});
marker.addTo(map).bindPopup(resPname);
$(marker._icon).addClass(name)
}
}
}
}
Класс, который я упоминаю это (имя) часть в $ (marker._icon) .addClass (имя), которое захватывает имя из маркеров .js:
var markers = {
"resources": [
{
"name": "AITokarServer",
"coords": [
{
"x": -1210.0,
"y": -1770.0
},
{
"x": -1230.0,
"y": -1810.0
},
таким образом, все маркеры с именем AITokarServer будет иметь класс .AITokarServer и так далее.
Можете ли вы включить простую разметку и код, с которым работаете? –
Конечно, я добавил код с функцией, добавляющей класс в маркеры. У меня есть 29 типов маркеров, так что это тоже 29 классов. – RogerHN