{
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()));
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();
},
onSatelliteMat: (mesh) => {
render();
},
});
return renderer.domElement;
}