我使用插件Leaflet.Control.Search搜索图层组中的标记,效果很好。找到标记后,地图已自动平移到相应位置的中心,并且标记弹出窗口正在打开。
现在,在搜索时,我想将地图的缩放级别设置为固定值。 我的地图的初始缩放级别为12 - 但是一旦有人使用搜索,我想将其设置为16.如何实现?我尝试实施setZoom,但我不确定正确的语法应该如何..
目前代码看起来像这样:
var searchControl = new L.Control.Search({layer: markers2, propertyName: 'Name', circleLocation:true});
searchControl.on('search_locationfound', function(e) {
e.layer.openPopup().openOn(map);
map.setZoom(16);
});
map.addControl( searchControl );
非常感谢任何提示!
ps:当我在map.setZoom(16);
之前放置e.layer.openPopup().openOn(map);
时,缩放工作正常,但弹出窗口不会像应该的那样打开 - 它只会在我再次点击搜索时打开...
答案 0 :(得分:4)
您是否在{34}找到了map.setZoom(16);
而未找到this
已找到的位置"听众?
或者,您可能想尝试map.setView()
。它需要一个lat / lng和缩放级别。你可以接受标记的lat / lng或弹出式的lat / lng
答案 1 :(得分:0)
尝试编辑插件,评论缩放选项(第26行)
_config: {
country: '',
searchLabel: 'buscar en el mapa...',
notFoundMessage: 'destino no hallado',
messageHideDelay: 3000,
/*zoomLevel: 18*/
},
答案 2 :(得分:0)
我用另一种方式做到了。 之后 propertyName 我放 缩放:16
代码如下:
var searchControl = new L.Control.Search({
layer: allLayers,
propertyName: 'myKey',
zoom: 16
}).addTo(map);