#1 Mon 22 March 2021 17:20
- image95
- Participant assidu
- Date d'inscription: 6 Sep 2014
- Messages: 257
CesiumJS : zoomer sur l'emprise du tileset ?
Bonjour,
Je travaille sous Windows 10 et Cesium 1.79.1. NodeJS fonctionne bien.
J'arrive bien a charger/visualiser un jeu de scene 3D (Meshs+ texture associée) au format Cesium 3D tiles.
Toutefois, je souhaite qu' un zoom automatique se fasse sur l'emprise de mon tileset.
Mon souhait est qu'une fois que le tileset soit prêt à être affiché, la camera se déplace et se positionne au-dessus du tileset. Le petit script fonctionne bien avec mon fichier cesium3D tiles de version 0.0. Mais ne fonctionne pas pour le moment avec mes fichiers tuilés au format 3D tiles de version 1.0.
J'ignore d'où peut venir l'erreur. Je n'ai pas de message d'erreur dans la console. Mon tileset se charge bien mais
la camera quant à elle ne se déplace pas au dessus de mon tileset. Lors de l'execution, La camera ne se déplace pas et reste à une emprise "globe" mondial et aucun zoom ne s'effectue. Je suis donc obligé de me rendre manuellement sur la zone d'intéret.
Ci dessous, un extrait du fichier tileset.json :
Code:
{"asset":{"version":"1.0"}, "geometricError":10000, "properties":{"Height":{"maximum":197.2902062288683,"minimum":158.81894164623267}, "Latitude":{"maximum":0.86549605155357123,"minimum":0.86536928860221218}, "Longitude":{"maximum":0.069327552218852465,"minimum":0.069115786360719259}}, "root":{"boundingVolume":{"sphere":[4133254.630298804,286568.64019880601,4833172.8602689737,596.59912274524095]}, "children":[{"boundingVolume":{"sphere":[4133289.5021612602,286493.75629316899,4833147.6480717165,514.11988103071815]},
Ci dessous mon tout petit script javascript :
Code:
// Création d'un viewer Cesium var viewer = new Cesium.Viewer("cesiumContainer", { }); // Création du tileset var tileset = new Cesium.Cesium3DTileset({ url: 'http://localhost:8080/20210125_5RIAOM_CESIUM 3D Tlies_HQ/tileset.json' }); // Ajout du tileset à la scène viewer.scene.primitives.add(tileset); // Une fois le tileset prêt à être affiché, on bouge la camera pour // qu'elle se positionne au-dessus de ce tileset : tileset.readyPromise.then(function (tileset) { viewer.scene.camera.setView({ // La position finale doit englober la globalité du tileset destination: tileset.root.boundingVolume.rectangle, }); });
Merci par avance.
Dernière modification par image95 (Mon 22 March 2021 17:31)
Hors ligne