单击列表中国家/地区名称时,缩放到地图上的国家/地区

时间:2015-10-20 02:46:41

标签: leaflet

我有一个应用程序,它在地图上显示一个突出显示的国家/地区列表,并在侧面板中显示其名称

我想发生以下情况:当您在侧面板中单击某个国家/地区的名称时。你在地图上放大到这个国家。

我不确定如何实现这一目标,如果有人指出我的例子或建议实现这一目标的最佳方法,我将不胜感激

1 个答案:

答案 0 :(得分:0)

真的取决于你的设置,我假设你正在使用geoJSON。在我工作的一个项目中,我创建了一个函数,一旦你从一个缩放到相应的geoJSON的列表中单击就可以运行...或者你可以将每个geoJSON图层的传单ID附加到列表的相应元素(如果列表)从geoJSON填充。

标记 - 收集的geoJSON
layer.feature.properties.pin - 与列出的记录与geoJSON匹配的相应键(这需要匹配您的数据)
pin - 列表中的相应元素(这需要匹配您的数据)
第一个setStyle - 突出显示geoJSON
map.fitbounds - 缩放到突出显示的信息
第二个setStyle - 将所有其他geoJSON图层更改回原始样式。

function selectedparcel(pin){
   markers.eachLayer(function (layer){
    if (layer.feature.properties.pin === pin){
        layer.setStyle({
            fillColor: '#2262CC',
            fillOpacity: 1,
            weight: 3
        });
//this is where the zoom happens
        map.fitBounds(layer.getBounds());

    } else {
        layer.setStyle({
            color: '#ff7800',
            weight: 1,
            opacity: 1,
            fillOpacity: 0  
        });
    } 
});

我希望这就是你要找的东西。如果你想使用传单id方法,Bryan McBride在他的js代码中有一个例子:

https://github.com/bmcbride/building-damage-reporter