Leaflet Choropleth Map - 切换到 Leaflet 1.2
Leaflet Choropleth Map - switch to Leaflet 1.2
我的地图有问题。我切换到 Leaflet 1.2,其中一个功能无法正常工作。
代码在这里:
http://mapaszlakow.eu/mapa1.2.html
当通过 js 激活 geojson 叠加层并单击自行车路线时,它会放大到一条路线,但它不会突出显示并且信息 window 不会显示。
这是完全相同的例子,但在旧版本的 Leaflet 上(我认为它是 0.7)。
我找不到问题,我唯一做的就是切换到 Leaflet 1.2,我将不胜感激。
编辑:我相信,问题出在这里:
function select(layer) {
info.update(layer.feature.properties);
if (selected !== null) {
var previous = selected;
}
map.fitBounds(layer.getBounds());
selected = layer;
if (previous) {
dehighlight(previous);
}
}
var selected = null;
我已经从 http://mapaszlakow.eu/mapa1.2.html 测试了您的代码,它几乎可以正常工作 - 悬停时它会正确突出显示路线,点击它会缩放到路线范围 - 除了显示弹出信息。要解决此问题,请查看我根据您的代码制作的 fiddle:
http://jsfiddle.net/5z17y5oL/18/ (此 fiddle 必须通过 http 访问,因为您的服务器不使用 https 提供数据)
主要区别在于我将参数传递给 info.update(e.feature.properties);
次。
编辑
我编辑的 fiddle 在这里:http://jsfiddle.net/5z17y5oL/25/
所以我移动了 info.update(e.feature.properties);
以从图层点击侦听器调用。在地图上单击的图层样式已重置,信息正在清除,因为它接收到空值。
.....
onEachFeature: function(feature, layer) {
layer.on({
.....
'click': function(e) {
select(e.target);
info.update(e.feature.properties);
}
});
map.on({
'click': function(e) {
bicyclegeojson.resetStyle(layer);
info.update(null);
selected = null;
}
});
....
//编辑结束
还有一件事 - 你有一个小错误,你应该改变这一行:
map.addControl(layerControl).addTo(map);
到
map.addControl(layerControl);
我的地图有问题。我切换到 Leaflet 1.2,其中一个功能无法正常工作。 代码在这里:
http://mapaszlakow.eu/mapa1.2.html
当通过 js 激活 geojson 叠加层并单击自行车路线时,它会放大到一条路线,但它不会突出显示并且信息 window 不会显示。 这是完全相同的例子,但在旧版本的 Leaflet 上(我认为它是 0.7)。
我找不到问题,我唯一做的就是切换到 Leaflet 1.2,我将不胜感激。
编辑:我相信,问题出在这里:
function select(layer) {
info.update(layer.feature.properties);
if (selected !== null) {
var previous = selected;
}
map.fitBounds(layer.getBounds());
selected = layer;
if (previous) {
dehighlight(previous);
}
}
var selected = null;
我已经从 http://mapaszlakow.eu/mapa1.2.html 测试了您的代码,它几乎可以正常工作 - 悬停时它会正确突出显示路线,点击它会缩放到路线范围 - 除了显示弹出信息。要解决此问题,请查看我根据您的代码制作的 fiddle:
http://jsfiddle.net/5z17y5oL/18/ (此 fiddle 必须通过 http 访问,因为您的服务器不使用 https 提供数据)
主要区别在于我将参数传递给 info.update(e.feature.properties);
次。
编辑
我编辑的 fiddle 在这里:http://jsfiddle.net/5z17y5oL/25/
所以我移动了 info.update(e.feature.properties);
以从图层点击侦听器调用。在地图上单击的图层样式已重置,信息正在清除,因为它接收到空值。
.....
onEachFeature: function(feature, layer) {
layer.on({
.....
'click': function(e) {
select(e.target);
info.update(e.feature.properties);
}
});
map.on({
'click': function(e) {
bicyclegeojson.resetStyle(layer);
info.update(null);
selected = null;
}
});
....
//编辑结束
还有一件事 - 你有一个小错误,你应该改变这一行:
map.addControl(layerControl).addTo(map);
到
map.addControl(layerControl);