【发布时间】:2016-02-15 18:24:05
【问题描述】:
我有几个标记有一个带有其名称的 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(name)中的(name)部分,它从marker.js中获取名称:
var markers = {
"resources": [
{
"name": "AITokarServer",
"coords": [
{
"x": -1210.0,
"y": -1770.0
},
{
"x": -1230.0,
"y": -1810.0
},
所以所有名称为 AITokarServer 的标记都会有一个类 .AITokarServer 等等。
【问题讨论】:
-
您能否包含您正在使用的简单标记和代码?
-
当然,我添加了带有将类添加到标记的函数的代码。我有 29 种标记类型,所以它也是 29 类。
标签: javascript jquery leaflet marker