Leaflet 放大和显示/隐藏传单中的标签
我遇到了一个在任何地方都找不到解决方案的问题。在我的地图中,由于要素的数量,我在显示标签之前等待地图放大到一定程度,我找到了一个建议有效的解决方案,但是在旧版本中 下面是代码示例。当放大到指定级别并超过该级别以及缩小到指定级别并超过该级别时,会显示两个console.log。但是标签根本就没有出现Leaflet 放大和显示/隐藏传单中的标签,leaflet,Leaflet,我遇到了一个在任何地方都找不到解决方案的问题。在我的地图中,由于要素的数量,我在显示标签之前等待地图放大到一定程度,我找到了一个建议有效的解决方案,但是在旧版本中 下面是代码示例。当放大到指定级别并超过该级别以及缩小到指定级别并超过该级别时,会显示两个console.log。但是标签根本就没有出现 mymap.on('zoomend', function() { var zoom = mymap.getZoom(); if( mymap.hasLayer(lots
mymap.on('zoomend', function() {
var zoom = mymap.getZoom();
if( mymap.hasLayer(lots) ) {
lots.eachLayer( function (layer){
//console.log(layer);
if ( zoom >= 21 && (!layer.getTooltip()) ) {
layer.bindTooltip(layer.feature.properties.lot_number, { sticky: true ,permanent: true, interactive: false , direction: 'center',className: 'countryLabel'});
console.log('zoomedin');
} else if ( zoom < 21 && (layer.getTooltip()) ) {
//console.log('remove tooltip');
layer.unbindTooltip();
console.log('zoomedout');
}
});
}
});
如果有人有任何建议,我将不胜感激。谢谢大家!
我发现这不是缩放级别问题,因为divs
一旦超过所需的缩放级别就会出现。我想在工具提示中输入的数据的格式非常复杂
在代码的另一部分中,我检索如下属性:
var lots = L.geoJSON(myLines, {
onEachFeature: function(feature, layer) {
layer.bindPopup("<b>Lot Record #"+feature.properties.lot_number+"</b><br/>Block "+feature.properties.block_number+"<br>Section "+feature.properties.section_number+"<br><a href='lots/view/"+feature.properties.lot_id+"'>View Details</a>");
layer.setStyle({
fillColor: feature.properties.status_color,
fillOpacity: 0.8,
weight: 0.5
});
}
}).addTo(mymap);
var lots=L.geoJSON(myline{
onEachFeature:功能(功能,图层){
layer.bindPopup(“批次记录#“+特征.属性.批次编号+”
块“+特征.属性.块编号+”
节“+特征.属性.节编号+”
”;
layer.setStyle({
fillColor:feature.properties.status\u颜色,
填充不透明度:0.8,
重量:0.5
});
}
}).addTo(mymap);
但是上面是通过feature.properties…
实现的,而我正在尝试调用的有问题的bindTooltip
方法使用了layer.feature。
但是我不确定该语句的其余部分是否能够正确获取属性
我发现我的问题是,通过“功能”之前的“层”,通过不同的方法访问属性。正确的格式应为
layer.feature.geometry.properties.lot\u number
您的代码适用于我:
我用zoom lvl 10测试它:
if ( zoom >= 10 && (!layer.getTooltip()) ) {
可能是地图的21倍放大,我发现我的问题是通过“特征”之前的“层”,通过不同的方法访问属性。正确的格式应为
图层.特征.几何图形.属性.批号
。这是通过记录功能并跟踪其在对象中返回的数据结构来实现的。好吧,看来我的问题不是实际的缩放级别,而是数据没有正确地归因于弹出窗口。你有什么建议吗?我可以在关于弹出窗口的代码的不同部分中找到数据:layer.bindpoup(“批次记录#“+特征.属性.批次编号+”Block“+特征.属性.块编号+”
Section“+特征.属性.Section_编号+”
”;但是我无法通过图层。功能…,或者至少不知道如何正确地使用。我也会将这些添加到我的问题中。
if ( zoom >= 10 && (!layer.getTooltip()) ) {