宣传单:在搜索时设置缩放级别

时间:2014-04-15 12:09:16

标签: search zoom leaflet

我使用插件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);时,缩放工作正常,但弹出窗口不会像应该的那样打开 - 它只会在我再次点击搜索时打开...

3 个答案:

答案 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);