我想要转换:将SVG组转换为latLng像素位置,并在缩放后保持该位置。
我试过了:
map.on('zoomend', function(e) {...});
http://jsfiddle.net/L8dnsrnk/15/
但显然只会在变焦后触发,因此SVG不会像标记那样流畅地移动。
我已经尝试查看源代码以了解如何重新定位Leaflet标记,因为这实际上是我试图模仿的行为,但无济于事。如果有人有另一个建议来达到这个效果,我会感兴趣! :)
答案 0 :(得分:1)
您需要通过执行以下操作来聆听“zoomanim”事件并获取圈子的新中心:
var coord = map._latLngToNewLayerPoint(new L.LatLng(51.5, -0.087), e.zoom, e.center);
标记的动画由CSS执行,特别是选择“.leaflet-zoom-anim .leaflet-zoom-animated”的类(在leaflet.css中查看)。您需要为SVG执行类似的操作。不要在SVG上设置“transform”属性,而是设置“transform”样式,然后在CSS中为该样式定义过渡动画。