使用小册子放大单击标记以获取更多操作

时间:2018-06-01 04:15:21

标签: javascript leaflet bounds fitbounds

当我尝试在标记上进行缩放时遇到问题,我收到错误:

未捕获的TypeError:e.target.getBounds不是函数

var rotas = L.geoJSON(paradas, {
    onEachFeature: onEachFeature
}).addTo(map);

function onEachFeature(feature, layer){
    layer.on('click', function(e){
        $('.orange').html(feature.properties.nome);
        $('.city').html(feature.properties.imagem);
        $('.event').html(feature.properties.descricao);

        console.log(e.target);
        zoomToFeature(e)
    });

}

function zoomToFeature(e) {
    console.log("pass here")
    map.fitBounds(e.target.getBounds());
}

但是当我执行console.log时它会正确返回。我错了什么?我的源代码在这里:

http://github.com/eltonsantos/analise_integrada

map.fitBounds出现是好的,但仍然无法正常工作:( 谁来帮帮我?谢谢!

1 个答案:

答案 0 :(得分:2)

您必须为单个标记执行其他操作

function zoomToFeature(e)
{
  var latLngs = [e.target.getLatLng()];
  var markerBounds = L.latLngBounds(latLngs);
  map.fitBounds(markerBounds);
}

首先获取标记latlng数组并使用它创建latLngBounds。然后你可以适应这个界限。

工作示例:https://jsfiddle.net/8282emwn/175/