【发布时间】:2017-01-18 22:25:54
【问题描述】:
我正在尝试将 WebGL 地球与 d3.geo.satellite 投影相结合。
我已设法将 2 个投影相互叠加并同步旋转,但我无法同步缩放。当我同步它们以匹配大小时,WebGL 投影会变形,但 d3.geo.satellite 保持不变。我尝试了不同的projection.scale、projection.distance组合,但没有取得多大成功。
这里是 JS fiddle(加载资源需要一点时间)。您可以拖动它来旋转(效果很好)。但是如果你放大(使用鼠标滚轮)你可以看到问题。
https://jsfiddle.net/nxtwrld/7x7dLj4n/2/
重要的代码在脚本的底部——缩放函数。
function scale(){
var scale = d3.event.scale;
var ratio = scale/scale0;
// scale projection
projection.scale(scale);
// scale Three.js earth
earth.scale.x = earth.scale.y = earth.scale.z = ratio;
}
【问题讨论】:
-
我也遇到这个问题,但是我没有使用WebGL Earth,而是使用Three.js。你有什么解决办法吗?
标签: javascript d3.js three.js map-projections d3.geo