我的传单地图中有一个搜索栏,我希望从搜索栏中选择时,地图会慢慢缩放并平移到标记。我可以让它变焦和平移,但不是慢。我想要的效果类似于您在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})
});
我正在使用传单v0.7.7。
谢谢!
答案 0 :(得分:5)
不幸的是,没有办法改变任何setView
的持续时间,它会改变Leaflet 0.7.7 *中的当前缩放级别。任何动画缩放的持续时间都会被硬编码为0.25秒,并且由于setView
接受zoom/pan options(不包括duration
),您的duration:10.0
将被忽略。< / p>
但是,setView
确实接受了平移和缩放的单独选项,并且由于pan options确实包含持续时间,因此您可以使用以下内容平滑地平移当前缩放级别 :
map.setView(e.latlng, map.getZoom(), {
"animate": true,
"pan": {
"duration": 10
}
});
我意识到这不是你想要的,但它更接近一步。
*在Leaflet 1.0b中,有一个flyTo
method,它产生你描述的效果,但在0.7.7中没有类似的东西。
答案 1 :(得分:1)
另一种方式
map.flyTo(e.latlng, map.getZoom(), {
animate: true,
duration: 0.5
});