scene = {
const scene = new THREE.Scene();
scene.background = new THREE.Color("#fff");
const box = new THREE.BoxGeometry(c, c, c);
var geo = new THREE.EdgesGeometry(box);
var mat = new THREE.LineBasicMaterial({ color: 0xdddddd, linewidth: 1 });
var wireframe = new THREE.LineSegments(geo, mat);
scene.add(wireframe);
var texture = new THREE.TextureLoader().load(tileURL);
var material = new THREE.MeshBasicMaterial({ map: texture });
var geometry = new THREE.PlaneGeometry(c, c);
var mesh = new THREE.Mesh(geometry, material);
mesh.position.x = 0;
mesh.position.y = -c / 2;
mesh.position.z = 0;
mesh.rotation.x = -Math.PI / 2;
mesh.rotation.z = Math.PI / 2;
scene.add(mesh);
var coord = data.map(d => project3D([d.lon, d.lat], d.date));
coord.forEach(function(d) {
var geo = new THREE.SphereGeometry(0.07, 4, 4);
var mat = new THREE.MeshBasicMaterial({ color: "steelblue" });
var cube = new THREE.Mesh(geo, mat);
cube.position.x = d.x;
cube.position.y = d.y;
cube.position.z = d.z;
scene.add(cube);
});
var geometry = new THREE.BufferGeometry().setFromPoints(coord);
var material = new THREE.LineBasicMaterial({ color: "#777" });
var curve = new THREE.Line(geometry, material);
scene.add(curve);
return scene;
}