我试图理解世界地图的D3 SVG转换,它允许缩放到一个点击的国家。
我目前的实现是能够绘制一个世界地图和缩放它到任何分辨率全屏.此外,它还可以计算特定国家或国家集合的相同值。
例如,我的实现计算了在2560x1440屏幕上绘制整个世界地图的下列投影:
d3.geo.mercator()
.center(22.266249946553817,41.93985624315233)
.scale(265.88042450605)
.translate(1336.2192475286854,576.7978959424244)
例如,如果应该绘制适合屏幕的德国,则实现将计算以下投影:
d3.geo.mercator()
.center(10.36090255016238,51.05100408657832)
.scale(5575.925124835363)
.translate(1279.7901899016058,608.1878627921983)
现在,我想以动画的方式在这两个视图之间进行转换,但不知怎么地,我无法理解我需要附加到path组的svg " transform“属性。
我如何在这两种预测之间进行转换?我想我能做的就是:
translate(1336.2192475286854,576.7978959424244) //projection.translate() worldmap view
scale(5575.925124835363) //scale computed for Germany
translate(1279.7901899016058,608.1878627921983) //offset computed for Germany
但是当检查"g“DOM-元素及其转换属性时,它包含了完全不同的值。
我在这里错过了什么?
很高兴收到任何反馈!
最好,塞巴斯蒂安
https://stackoverflow.com/questions/22790569
复制相似问题