[KRPano] Charger scène en fonction de l'url

Répondre
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

[KRPano] Charger scène en fonction de l'url

Message par gn0o0b »

Résolu, merci bcp à jpdeglet69 :)

Bonjour à tous,

J'ai beau avoir cherché, je n'ai pas trouvé comment faire, pourtant j'imagine que ce que je souhaite faire est possible.

J'ai une visite composé de plusieurs panos, j'ai donc un fichier tour.xml qui regroupe toutes les scènes :
<scene name="pano1">
(...)
</scene>

<scene name="pano2">
(...)
</scene>

<scene name="pano3">
(...)
</scene>

etc
Je souhaiterais pouvoir mettre sur mon site un lien vers chaque scène qui ouvrirait ensuite mon tour.html mais en m'envoyant directement vers la scène sélectionnée. J'imaginais faire ça en incluant un argument dans l'url mais je n'ai pas trouvé de solution qui fonctionne.
L'autre solution que j'envisageais serait de créer un .html différent pour chaque scène, ça ne me dérange pas, par contre il est important qu'ils dirigent tous vers le même tour.xml, ainsi j'imagine qu'il faut je passe un argument dans "viewer.addVariable" de mon .html, mais je n'arrive pas à trouver la manière dont je dois passer cet argument.

Bref, je suis coincé et ça commence à me fatiguer, c'est pourquoi je me suis dit que plutôt que d'y passer encore des heures je ferais mieux de demander ici. Désolé si c'est une question de n00b... mais si quelqu'un pouvait m'aiguiller ce serait vraiment le top.

Merci de m'avoir lu :)
jpdeglet69
Messages : 352
Inscription : 16 févr. 2010, 14:48 04

Re: Charger scène en fonction de l'url ou de viewer.addVariable

Message par jpdeglet69 »

En me basant sur l'exemple de KrPano \examples\virtual-tours\scenes-with-buttons

1) Tu t'assures de bien avoir swfkrpano.js accessible pour ta page HTML

2) Dans ton HTML tu remplaces

<script src="../../../swfkrpano.js"></script>

<div id="krpanoDIV" style="width:100%;height:100%;">
<noscript><table style="width:100%;height:100%;"><tr style="valign:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>
<script> embedpano({swf:"../../../krpano.swf", xml:"scenes.xml", target:"krpanoDIV"}); </script>
</div>

Par

<script src="../../../swfkrpano.js"></script>

<div id="krpanoDIV" style="width:100%;height:100%;">
<noscript><table style="width:100%;height:100%;"><tr style="valign:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>
</div>

<script>
var viewer = createPanoViewer({swf:"../../../krpano.swf", id:"krpanoObject", target:"krpanoDIV"});
// set the default xml files
viewer.addVariable("xml", "scenes.xml");

// set the default scene to load
viewer.addVariable("scl", "scene1");

// pass all parameters from the html file to the viewer
viewer.passQueryParameters();
// embed and start the viewer
viewer.embed();
</script>


3) dans ton XML principal, tu modifies

<!-- start - load first scene -->
<action name="start">
loadscene("scene1", null, MERGE);
</action>

par

<!-- start - load first scene -->
<action name="start">
loadscene( get(scl), null, MERGE);
</action>


et le tour est normalement joué !!!

Par défaut la scène1 sera chargée à l'appel
file:///H:/KrPano/examples/virtual-tours/scenes-with-buttons/scenes.html
ou par
file:///H:/KrPano/examples/virtual-tours/scenes-with-buttons/scenes.html?scl=scene1

Donc
file:///H:/KrPano/examples/virtual-tours/scenes-with-buttons/scenes.html?scl=scene3
Te chargera la scène3.

Au boulot !!!

:)
jpdeglet69
Site web
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

Re: Charger scène en fonction de l'url ou de viewer.addVariable

Message par gn0o0b »

Génial !
Merci bcp pour le temps que tu as passé à rédiger un tel message. C'est très clair et détaillé.
Je reviens vers vous si je rencontre un problème :) Je mettrais en résolu dès que j'aurai eu le temps de faire la manip.
Encore merci à toi !
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

Re: Charger scène en fonction de l'url ou de viewer.addVariable

Message par gn0o0b »

Parfait, ça marche comme sur des roulettes ! Trop fort jpdeglet69 :) Encore merci.

Maintenant je me demande comment faire par ce biais pour updater le point googlemaps correspondant au pano chargé à l'ouverture. En effet, le fonctionnement par défaut fait que le point qui s'affiche est celui qui est indiqué par "active=true" dans mon fichier googlemaps.xml, donc toujours le même.

J'imagine qu'il y a une manière élégante de procéder c'est pourquoi je me permets de vous soumettre la question, en effet ma solution précédente est plutôt risible.

Ne vous moquez pas trop de moi, je vous expose la façon dont je procédais mais qui s'avère bien trop lourde (et on en revient à ma question précédente qui a été résolue) :

J'avais créé un .xml par scene, chacun intégrant à la fin le fichier tour.xml afin qu'il ait bien la totalité des scènes, boutons et menus en stock. Parallèlement j'ai crée un fichier scene1*_googlemaps.xml par scene, et sur chacun j'avais mis le "active=true" sur la bonne scène. Dans chacun des mes .xml j'ai ensuite précisé vers quel fichier googlemaps il devait se tourner. Ça permet que quand j'ouvre n'importe quel scène, le point gmaps soit au bon endroit. Mais maintenant que j'ai une solution bcp plus élégante et surtout bcp moins lourde grâce à jpdeglet69 je ne peux plus me servir de cette solution, ce qui est une bonne chose car je pense qu'il doit forcément y avoir une manière bcp plus simple de le faire sans avoir à créer pleins de .xml différents.

Si quelqu'un pouvait me donner une piste j'en serais ravi. Je pense que je créerais un sujet spécifique à cette question si personne qui connait la solution ne passe sur ce fil.
jpdeglet69
Messages : 352
Inscription : 16 févr. 2010, 14:48 04

Re: [résolu] Charger scène en fonction de l'url

Message par jpdeglet69 »

Parts de l'exemple KrPano\examples\virtual-tours\scenes-with-googlemaps

Adaptes (fais attention au nom du XML principal) le HTML comme expliqué plus haut,
Modifies le XML principal

<!-- start - wait until the map is ready, then load the scene from URL -->
<action name="onstart">
set(plugin[maps].onmapready, loadscene( get(scl), null, MERGE) );
</action>

Cela devrait le faire
:)
jpdeglet69
Site web
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

Re: [résolu] Charger scène en fonction de l'url

Message par gn0o0b »

Héhé ^^ Quelle rapidité dans les réponses, trop fort ce forum !
Tu es mon sauveur du jour, merci bcp à toi. Je dois filer mais je m'occupe de ça dès ce soir.
Un grand merci à toi, tu peux te dire que tu as fait sacrément plaisir à quelqu'un aujourd'hui :)
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

Re: [résolu] Charger scène en fonction de l'url

Message par gn0o0b »

Bon, je viens d'essayer mais ça ne fonctionne pas. J'ai du oublier un truc. J'ai fait la modif de ton 1er post sur le .html, et j'ai modifié le xml principal en mettant :
<!-- start - wait until the map is ready, then load the scene from URL -->
<action name="onstart">
set(plugin[maps].onmapready, loadscene( get(scl), null, MERGE) );
</action>
Comme tu le mentionnes.
Ça ne buggue pas, c-a-d que tout fonctionne bien, mais le point indiqué sur la carte est toujours le même quel que soit la scène chargée.
Si quelqu'un a une idée de ce que j'ai du oublier...
Merci d'avance.
jpdeglet69
Messages : 352
Inscription : 16 févr. 2010, 14:48 04

Re: [KRPano] Charger scène en fonction de l'url

Message par jpdeglet69 »

Re,

Tu me surprends car chez-moi cela fonctionne!!!
Penses à vider le cache de ton navigateur.
jpdeglet69
Site web
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

Re: [KRPano] Charger scène en fonction de l'url

Message par gn0o0b »

Mince alors.
Pourtant j'ai vidé le cache un paquet de fois, je le fais toujours après une modif pour être sûr.
Concernant la modif du .html, je me contente de laisser celle que j'ai faite précédemment et que tu mentionnes à ton 1er post, c'est bien ça ? Je n'ai pas de nouvelle modif à faire ?
Je vais réessayer maintenant en vidant de nouveau le cache et en faisant divers tests pour voir si je n'aurai pas fait une erreur quelque-part.
Merci pour tout.
jpdeglet69
Messages : 352
Inscription : 16 févr. 2010, 14:48 04

Re: [KRPano] Charger scène en fonction de l'url

Message par jpdeglet69 »

Si tu "travailles" sur le même exemple,
il n'y a pas de modifs supplémentaires.

Regardes bien les cartes,
scène1 - hotspot1 sur le quai
scène2 - hotspot2 a droite du petit bassin
scène3 - hotspot3 dans les toits
jpdeglet69
Site web
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

Re: [KRPano] Charger scène en fonction de l'url

Message par gn0o0b »

En fait non, je travaille directement sur ma visite, je vais me replonger dans l'exemple de krpano, je l'ai regardé attentivement tout à l'heure mais quelque-chose a du m'échapper. Merci pour l'info en tous cas.
gn0o0b
Messages : 109
Inscription : 29 avr. 2011, 10:06 12

Re: [KRPano] Charger scène en fonction de l'url

Message par gn0o0b »

Bien vu, tu as bien fait de me renvoyer à l'exemple. J'ai cherché ce qui y était présent et que je ne retrouvais pas dans mon xml.
Il fallait en fait que j'ajoute

onstart="action(startscene);"

<action name="startscene">

plugin[map].pantospot(scene1);

plugin[map].activatespot(scene1);

</action>
Bref, voici un joli double "résolu" en moins de 12h, merci à toi, tu n'imagines pas le temps que tu m'as fait gagner, mais surtout que je vais gagner en production grâce à toi. J'aurai mieux fait de me soucier de ça plus tôt avant de me lancer dans mes solutions à deux balles ^^

Bonne soirée et encore merci :)
olivve
Messages : 6
Inscription : 1 nov. 2014, 19:16 50

Re: [KRPano] Charger scène en fonction de l'url

Message par olivve »

J'étais à la recherche de la solution.
Maintenant, on peut écrire : [URL...]?startscene=[N° de scène ex:3]
Répondre

Revenir à « KRPano »