我有一个应用程序,它在地图上显示一个突出显示的国家/地区列表,并在侧面板中显示其名称
我想发生以下情况:当您在侧面板中单击某个国家/地区的名称时。你在地图上放大到这个国家。
我不确定如何实现这一目标,如果有人指出我的例子或建议实现这一目标的最佳方法,我将不胜感激
答案 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代码中有一个例子: