Leafet.js 如何使用外部代码突出显示整个图层组
Leafet.js how do I highlight an entire layer group with external code
我正在尝试使用页面其他地方的代码使用 JavaScript 突出显示整个图层组。我的群组是这样设置的:
var annexa_building = new L.Polygon([
[68.23682, -47.46094],[68.3668, -40.07812]...
], {'label': popup_annexa, 'popup': content_annexa}).addTo(map);
var annexb_building = new L.Polygon([
[68.82387, -29.729],[69.24837, -22.41211]...
], {'label': popup_annexb, 'popup': content_annexb}).addTo(map);
var academics_group = new L.LayerGroup([
annexa_building,
annexb_building
]);
我试图找到有关使用引用的组调用效果的文档,但找不到。我需要的是能够同时调用两层的高亮代码,像这样:
setHighlight(academics_group);
我也试过这样做(一次调用一个单独的图层):
<img src="images/1.png" class="img-swap" onclick="setHighlight('annexa_building')" />
还有这个:
jQuery(function(){
$(".img-swap").on('click', function() {
if ($(this).attr("class") == "img-swap") {
this.src = this.src.replace("_off","_on");
setHighlight("annexa_building");
} else {
this.src = this.src.replace("_on","_off");
}
$(this).toggleClass("on");
});
});
但它报告说 layer.setStyle 不是函数。
函数 setHighlight(layer) 在地图中运行良好。
function setHighlight (layer) {
if (highlight) {
unsetHighlight(highlight);
}
layer.setStyle(style.highlight);
highlight = layer;
}
关于解决这个问题的想法?谢谢!
根据文档,LayerGroup hasn't the setStyle()
function. You should use FeatureGroup 是 LayerGroup 的扩展,具有 setStyle()
功能。
此外,您应该在整个组而不是每一层上调用 .addTo(map)
。这样,如果您向组中添加新图层,它们将自动添加到地图中。
我正在尝试使用页面其他地方的代码使用 JavaScript 突出显示整个图层组。我的群组是这样设置的:
var annexa_building = new L.Polygon([
[68.23682, -47.46094],[68.3668, -40.07812]...
], {'label': popup_annexa, 'popup': content_annexa}).addTo(map);
var annexb_building = new L.Polygon([
[68.82387, -29.729],[69.24837, -22.41211]...
], {'label': popup_annexb, 'popup': content_annexb}).addTo(map);
var academics_group = new L.LayerGroup([
annexa_building,
annexb_building
]);
我试图找到有关使用引用的组调用效果的文档,但找不到。我需要的是能够同时调用两层的高亮代码,像这样:
setHighlight(academics_group);
我也试过这样做(一次调用一个单独的图层):
<img src="images/1.png" class="img-swap" onclick="setHighlight('annexa_building')" />
还有这个:
jQuery(function(){
$(".img-swap").on('click', function() {
if ($(this).attr("class") == "img-swap") {
this.src = this.src.replace("_off","_on");
setHighlight("annexa_building");
} else {
this.src = this.src.replace("_on","_off");
}
$(this).toggleClass("on");
});
});
但它报告说 layer.setStyle 不是函数。
函数 setHighlight(layer) 在地图中运行良好。
function setHighlight (layer) {
if (highlight) {
unsetHighlight(highlight);
}
layer.setStyle(style.highlight);
highlight = layer;
}
关于解决这个问题的想法?谢谢!
根据文档,LayerGroup hasn't the setStyle()
function. You should use FeatureGroup 是 LayerGroup 的扩展,具有 setStyle()
功能。
此外,您应该在整个组而不是每一层上调用 .addTo(map)
。这样,如果您向组中添加新图层,它们将自动添加到地图中。