chart = {
const renderer = new THREE.WebGLRenderer({ antialias: true });
const controls = new THREE.OrbitControls(camera, renderer.domElement);
renderer.setSize(width, height);
renderer.setPixelRatio(devicePixelRatio);
invalidation.then(
() => (controls.dispose(), renderer.dispose(), clearScene())
);
scene.scale.set(1, 1, vscale);
const render = () => {
renderer.render(scene, camera);
};
controls.addEventListener("change", render);
render();
const tgeo = new ThreeGeo({
tokenMapbox: tgeoParams.token
});
tgeo.getTerrain(latlng, tgeoParams.radius, tgeoParams.zoom, {
onRgbDem: meshes => {
meshes.forEach(mesh => {
scene.add(mesh);
});
render();
}
});
return renderer.domElement;
}