Un fichier XML dynamique pour une visite virtuelle

Avec une visite virtuelle flash (et c’est quasiment vrai avec tous les formats), le fichier XML configure la visite virtuelle. Ce fichier, chargé par le lecteur flash (par exemple krpano.swf), inclut absolument tous les liens à charger et les options, de l’image à afficher (le plus important) aux boutons de navigation, en passant par la perspective, les points chauds, le son, la vidéo, et plein d’autres choses.

En général, lorsque l’on travaille sur un projet n’ayant pas lieu à évoluer une fois finalisé, le fichier XML est statique. On le programme grâce à un éditeur de texte, genre Notepad++, et une fois l’interface terminée, le client charge la visite virtuelle définitive sur son site. Le fichier XML, lisible avec un simple éditeur de texte, est enregistré en dur sur le serveur.

Avec un fichier XML statique, l’interface va pouvoir être développée de façon très approfondie, avec des sons directionnels, des hotspots, des vidéos incrustées dans les panoramas, etc.

À l’inverse, l’interface d’une visite virtuelle générée de façon dynamique va souvent être « standardisée ». L’interface sera commune à toutes les visites virtuelles sur le site en question.

Voici deux cas typiques où le fichier XML doit être généré dynamiquement :

  • les sites immobiliers intégrant un grand nombre de visite virtuelle
  • les sites de partage de visite virtuelle, comme Gigapan, 360Cities ou ViewAt. Le CMS PanoramaGalerie génère aussi les fichiers XML à la volée.

Pour générer un fichier XML de façon dynamique, on utilisera couramment du PHP, le langage le plus courant pour faire des sites internet dynamiques. Le principe est le suivant : on réalise d’abord l’interface sur un fichier statique (travail graphique), et on dynamise ce fichier XML avec des variables pour tout ce qui est destiné à évoluer (travail plus de développement).

Ci-dessous un exemple d’un ficher PHP avec une image multi-résolution à deux niveaux.

<?php header("Content-type: text/xml"); ?>
 
<krpano version="1.0.8" logkey="false" >
 
	<view hlookat	="<?php echo $view -> hlookat() ?>"
		vlookat	="< ?php echo $view -> vlookat () ?>"
		fov		="< ?php echo $view -> fov () 	?>" 
		fovmin	="< ?php echo $view -> fovmin () ?>" 
		fovmax	="< ?php echo $view -> fovmax () ?>" 
	/>
 
	<preview type="SPHERE" url="../images/<?php echo /$view -> nomimage () ; ?>/preview.jpg" />
 
	<image type="CUBE" multires="true" tilesize="512">
		<level tiledimagewidth="1024" tiledimageheight="1024">
			<left url="../images/<?php echo $view -> nomimage () ; ?>/l2_l_%v_%h.jpg"  />
			<front url="../images/<?php echo $view -> nomimage () ; ?>/l2_f_%v_%h.jpg"  />
			<right url="../images/<?php echo $view -> nomimage () ; ?>/l2_r_%v_%h.jpg"  />
			<back url="../images/<?php echo $view -> nomimage () ; ?>/l2_b_%v_%h.jpg"  />
			<up url="../images/<?php echo $view -> nomimage () ; ?>/l2_u_%v_%h.jpg"  />
			<down url="../images/<?php echo $view -> nomimage () ; ?>/l2_d_%v_%h.jpg"  />
		</level>
		<level tiledimagewidth="512" tiledimageheight="512">
			<left url="../images/<?php echo $view -> nomimage () ; ?>/l1_l_%v_%h.jpg" />
			<front url="../images/<?php echo $view -> nomimage () ; ?>/l1_f_%v_%h.jpg" />
			<right url="../images/<?php echo $view -> nomimage () ; ?>/l1_r_%v_%h.jpg" />
			<back url="../images/<?php echo $view -> nomimage () ; ?>/l1_b_%v_%h.jpg" />
			<up url="../images/<?php echo $view -> nomimage () ; ?>/l1_u_%v_%h.jpg" />
			<down url="../images/<?php echo $view -> nomimage () ; ?>/l1_d_%v_%h.jpg" />
		</level>
	</image>
 
	<?php include 'base.xml' ?>	
 
</krpano>

Il y a une autre façon de créer un fichier XML dynamiquement, c’est d’utiliser une classe PHP comme XMLWriter. Je n’ai en revanche aucune idée sur le temps de traitement mais je doute que ce soit optimal.

Sur le même thème :

Poster un commentaire

Votre email ne sera jamais publié | Champs obligatoires marqués par *

*
*