Я пытаюсь совместить Землю WebGL с проекцией d3.geo.satellite.syncing d3.js с землей THREE.js
Мне удалось наложить 2 проекции друг на друга и синхронизировать вращение, но у меня возникли проблемы с синхронизацией масштабирования. Когда я синхронизую их в соответствии с размером, проекция WebGL деформируется, но d3.geo.satellite остается неизменным. Я пробовал разные комбинации projection.scale, projection.distance без особого успеха.
Здесь находится скрипка JS (потребуется некоторое время, чтобы загрузить ресурсы). Вы можете перетащить его для поворота (хорошо работает). Но если вы увеличиваете масштаб (используйте колесико мыши), вы можете увидеть проблему.
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. У вас есть решение? –