javascript – 缩放传单地图时,SVG圈子不会重新定位

前端之家收集整理的这篇文章主要介绍了javascript – 缩放传单地图时,SVG圈子不会重新定位前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用d3在传单地图上添加svg圆圈.
我的小提琴在这里 http://jsfiddle.net/nextstopsun/C3U8g/

添加了一个reset()函数来映射viewreset事件,以计算包含所有圆的svg g元素的转换.在map viewreset事件上调用函数.

svg.attr("width",topRight[0] - bottomLeft[0])
    .attr("height",bottomLeft[1] - topRight[1])
    .style("margin-left",bottomLeft[0] + "px")
    .style("margin-top",topRight[1] + "px");
g.attr("transform","translate(" + -bottomLeft[0] + "," + -topRight[1] + ")");

(代码最初来自此示例http://bost.ocks.org/mike/leaflet/)

我可以看到g元素的变换参数正在重新计算,但圆圈没有重新定位(或者它们重新定位错误)并且不与地图tilelayer对齐.
尽管如此,一切都很好.
为缩放进行适当的重新定位需要改变什么?

解决方法

除了转换包含圆圈的g元素之外,您还需要重置圆圈本身的坐标:
circles.attr("cx",function (d) { return project([d.m4312,d.m4311])[0]; })
       .attr("cy",d.m4311])[1]; });

更新了jsfiddle here.

猜你在找的JavaScript相关文章