我的传单地图中有一个搜索栏,我希望从搜索栏中选择时,地图会慢慢缩放并平移到标记.我可以让它变焦和平移,但不是慢.我想要的效果类似于您在Google地球中输入某个位置并且视图从一个位置"飞行"到下一个位置时的效果.这是我的代码,它缩放到我的位置但不慢.
controlSearch = new L.Control.Search({layer:listOfMarkers, propertyName: 'IntersectionName', circleLocation:true, position:'topleft'});
map.addControl(controlSearch)
controlSearch.on('search_locationfound', function(e){
map.setView(e.latlng,15, {animate:true, duration:10.0})
});
Run Code Online (Sandbox Code Playgroud)
我正在使用传单v0.7.7.
谢谢!
不幸的是,没有办法改变任何setView改变Leaflet 0.7.7*中当前缩放级别的持续时间.任何动画缩放的持续时间都被硬编码为0.25秒,并且因为setView接受不包括的缩放/平移选项duration,您duration:10.0将被忽略.
但是,setView确实接受用于平移和缩放的单独选项,并且因为平移选项包括持续时间,您可以使用以下内容在当前缩放级别平滑平移:
map.setView(e.latlng, map.getZoom(), {
"animate": true,
"pan": {
"duration": 10
}
});
Run Code Online (Sandbox Code Playgroud)
我意识到这不是你想要的,但它更接近一步.
*在Leaflet 1.0b中,有一种flyTo方法可以产生你描述的效果,但在0.7.7中没有类似的东西.
其他方式
map.flyTo(e.latlng, map.getZoom(), {
animate: true,
duration: 0.5
});
Run Code Online (Sandbox Code Playgroud)