我正在尝试将WebGL地球与d3.geo.satellite投影相结合。
我已经成功将两个投影叠加在一起并同步旋转,但是我在同步缩放方面遇到了问题。当我将它们同步匹配大小时,WebGL投影会变形,但d3.geo.satellite保持不变。我尝试了不同的投影比例和距离组合,但没有太多成功。
这里是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;
}