You are not logged in.

Dear visitor, welcome to krpano.com Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Tuesday, January 12th 2010, 3:39pm

per URL auf Szenen zugreifen

Hallo,
habe eine virtuelle Panoramatour erstellt, die mit scenes aufgebaut ist.
Ist es möglich per URL in der Adressleiste auch direkt eine bestimmte Szene aufzurufen?

Grüße,
Marc

2

Tuesday, January 12th 2010, 7:49pm

Hi,

eine Möglichkeit wäre per Parameter z.B. onstart auf einen loadscene() Befehl zu setzen,
oder eine eigene Variable zu setzen, welche dann im XML per if() ausgewertet und eine dazu entsprechende Szene geladen wird...

z.B.

Source code

1
krpano.swf?xml=scenes.xml&onstart=loadscene(scene1)


oder:

Source code

1
krpano.swf?xml=scenes.xml&startscene=1

scenes.xml:

Source code

1
2
3
4
5
6
7
8
<krpano onstart="checksceneparameter();">

<action name="checksceneparameter">
  if(startscene == 1, loadscene(scene1));
  if(startscene == 2, loadscene(scene2));
  ...
  if(startscene === null, loadscene(defaultscene));
</action>


Schöne Grüße,
Klaus

3

Wednesday, January 13th 2010, 7:09am

Das ist sehr nützlich wusste nicht dass das geht. Kann ich auch noch hlookat und Vlookat per URL setzen?

Gruss Daniel
mein Blog VRpix.ch / VRpix.de

4

Wednesday, January 13th 2010, 1:28pm

Hi,
Das ist sehr nützlich wusste nicht dass das geht. Kann ich auch noch hlookat und Vlookat per URL setzen?
ja, alle Parameter lassen auch so setzen,
die angegeben Parameter überschreiben die aus der XML,

z.B. - für hlookat/vlookat - view.hlookat und view.vlookat - verwenden,

siehe z.B. auch hier:

http://krpano.com/examples/littleplanets/

hier werden bei allen Links die Parameter für die Little Planet Ansicht auf diese Weise gesetzt,

Schöne Grüße,
Klaus

5

Friday, January 15th 2010, 11:17am

Toll Danke, das ist genau das was ich beim nächsten Projekt brauche, hier für alle das Beispiel:

Source code

1
http://krpano.com/krpano.html?pano=panos/kirche/kirche.xml&view.stereographic=true&view.fisheye=1.0&view.fov=150&view.fovmax=150&view.hlookat=-7&view.vlookat=81
mein Blog VRpix.ch / VRpix.de

6

Monday, February 15th 2010, 12:10pm

super danke - funktioniert genau so, wie ich es mir vorgestellt hatte ;-)

Gruß Marc

7

Wednesday, February 17th 2010, 3:19pm

was ich mich noch frage - wahrscheinlich wird es nicht gehen.
Wenn ich die krpano.swf und die xml direkt in eine html Seite fix eingebaut habe - dan kann ich wohl nicht die Szene aufrufen, oder?

also www.url.de/panorama.html?&startscene=1

8

Monday, February 22nd 2010, 3:46pm

was ich mich noch frage - wahrscheinlich wird es nicht gehen.
Wenn ich die krpano.swf und die xml direkt in eine html Seite fix eingebaut habe - dan kann ich wohl nicht die Szene aufrufen, oder?

also www.url.de/panorama.html?&startscene=1


Hi,

doch, das geht,
du kannst per Javascript den HTML "startscene" Parameter auswerten,
und dann einen entsprechenden Parameter an krpano mitgeben,

als Beispiel zum HTML Parameter auswerten einen Blick z.B. hier in die krpano.html werfen:
http://krpano.com/krpano.html

Schöne Grüße,
Klaus

9

Monday, February 22nd 2010, 4:48pm

Hallo Klaus,
ich komm leider noch nicht dahinter...
Gibts dazu in der Doku noch nützliches?

Gruß Marc

10

Monday, February 22nd 2010, 5:02pm

Hi,

hier der <script> Part in der HTML: (basiered auf der swfkrpano.js)

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<script type="text/javascript" src="swfkrpano.js"></script>

<script type="text/javascript">
// <![CDATA[

    var swf = createswf("krpano.swf", "krpanoSWFObject", "100%", "100%");
    
    swf.addVariable("xml", "scenes.xml");
    
    // alle HTML Parameter an das SWF weiterreichen
    var q = document.location.search || document.location.hash;
    if(q)
    {
        var params = q.substring(1).split("&");
        for(var i=0; i<params.length; i++)
        {
            var param = params[i];
            var istgl = param.indexOf("=");
            var pname = param.substring(0,istgl);
            var pval  = param.substring(istgl+1);
            
            swf.addVariable(pname, pval);
        }
    }
    
    swf.embed("krpanoDIV");

// ]]>
</script>



und in der XML dann den Code von weiter oben im Thread verwenden:
scenes.xml:

Source code

1
2
3
4
5
6
7
8
<krpano onstart="checksceneparameter();">

<action name="checksceneparameter">
  if(startscene == 1, loadscene(scene1));
  if(startscene == 2, loadscene(scene2));
  ...
  if(startscene === null, loadscene(defaultscene));
</action>


der Aufruf der HTML:

Source code

1
krpano.html?startscene=1


Schöne Grüße,
Klaus

11

Tuesday, February 23rd 2010, 1:10pm

das ist ein Service.
allerbesten Dank von meiner Seite - genau so habe ich mir es vorgestellt.

Schöne Grüße
Marc

12

Tuesday, March 9th 2010, 6:27pm

was ich mich grad frage, ist "startscene" so als Wort irgendwo definiert?
weil wenn ich in der URL "pano=1" haben möchte, hab ich gedacht ich könne das hier ändern:

Source code

1
2
3
4
5
  if(startscene == 1, loadscene(scene1));

zu

  if(panorama == 1, loadscene(scene1));


und hier:

Source code

1
2
3
4
5
krpano.html?startscene=1

zu

krpano.html?pano=1



Nur dann klappts nicht mehr.
Auch in der swfkrpano.js hab ich diese Variable nicht gefunden.
Kannst du mir hierzu bitte noch einen Tipp geben.

danke!

13

Wednesday, March 10th 2010, 6:58pm

und noch eine Kleinigkeit, es steht zwar im Code drinnen:

Source code

1
  if(startscene === null, loadscene(defaultscene));


was bewirkt das genau?
Denn ich hätte gerne, dass wenn man nur die ../index.html (ohne ?startscene=1) aufruft, dass dann die defaultscene geladen wird.

Und das ganze funktioniert dann wohl nicht mehr, wenn ich die panoramatour mit krprotect zu einem einzigen SWF gemacht habe? (nur die kubischen Bilder werden extern geladen).
Oder schafft man es trotz krprotect die Szenen noch anzusteuern?

Gruß Marc

This post has been edited 1 times, last edit by "MarcW." (Mar 10th 2010, 7:11pm)


14

Tuesday, August 3rd 2010, 9:56am

Hallo,
da diese Frage gerade wieder aktuell geworden ist (wenn ich lediglich die index.html aufrufe, wird bei mir keine Szene geladen), möchte ich sie gerne nochmal stellen.

Lg Marc

15

Wednesday, August 4th 2010, 1:05pm

Hi,

welchen Code verwendet du jetzt genau? (html und xml)

bei obigen Code müsste eigentlich ohne "startscene" Parameter dann diese Zeile greifen:

Source code

1
  if(startscene === null, loadscene(defaultscene));


Schöne Grüße,
Klaus

16

Wednesday, August 4th 2010, 1:33pm

Hallo Klaus,
danke, mein fehler, hatte mich bei den scenen verschrieben und jetzt beim neulichen draufblicken ists mir sofort aufgefallen.

Funktioniert fein, dankeschön!

Gruß Marc

17

Tuesday, May 3rd 2011, 1:59pm

wenn das jetzt auch noch fürs iPhone/ipad funktionieren würde, wär spitze :)
also die Methode panorama.html?startscene=10

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<script>

	var viewer = createPanoViewer({swf:"krpano.swf", id:"krpanoSWFObject", target:"krpanoDIV"});

	//viewer.useHTML5("whenpossible");		// incomment to use the HTML5 krpanoJS viewer always when possible (Safari5)

	if( viewer.isDevice("iPhone|iPod|Android") )
		viewer.addVariable("xml", "mobile.xml");
		
		
	else
		viewer.addVariable("xml", "tour.xml");
		

	var q = document.location.search || document.location.hash;
    if(q)
    {
        var params = q.substring(1).split("&");
        for(var i=0; i<params.length; i++)
        {
            var param = params[i];
            var istgl = param.indexOf("=");
            var pname = param.substring(0,istgl);
            var pval  = param.substring(istgl+1);
            
            viewer.addVariable(pname, pval);
        }
    }

	viewer.embed();

</script>


Gruß Marc

18

Tuesday, May 3rd 2011, 2:42pm

funktioniert ganz normal :) *thumbsup*

19

Wednesday, July 13th 2011, 7:56pm

Per Url auf xml zugreifen

Ich komme mit der aufgeführten Lösung nicht klar. Allerdings ist meine Tour anders aufgebaut. stopallsounds();
loadpano(%1.xml,null,MERGE,BLEND(4));
plugin[googlemap].activatespot(%1);
plugin[googlemap].pantospot(%1);
</action> Das geht soweit wunderbar.
Nun soll es doch möglich werden, dass man per URL direkt auf ein Pano innerhalb der Tour kommt. Also etwa so www.rundgang.weinsberg.org/pano1 ..pano2 usw.
Irgendiwe ist es blöd jemand zu schreiben "Laden sie die URl [url]www.rundgang.weinsberg.org
und klicken sich dann durch bis zum Marktplatz".
Ich möchte gerne einen Link in der Art www.rundgang.weinsberg.org?marktplatz oder so.
Mir ist klar, dass mir beim direkten Zugriff auf eine XML dann die per include eingebunden Dateien fehlen, wenn ich direkt auf eine andere XML springen will.
Mir fällt nur keine richtige Lösung ein, wie ich das regeln kann.

Sollte ich für jedes pano eine eigene html-Datei machen und die benötigten xml mit den Styles usw. in jedem pano extra laden oder geht das einfacher?
kann ich z.B. eine start.xml anlegen, die alles enthält und dann per parameter so ähnlich wie oben beschrieben eine xml laden?

Oder muss ich doch alles neu aufbauen. Es sind jetzt fast 30 Panos mit jeweils mehreren Hotspots. Das würde ich ungern komplett neu machen.
Vielleicht sollte ich noch dazu schreiben, dass ich ziemlich am Anfang stehe und nicht so der große Programmierer bin.

Für hilfreiche Tipps wäre ich echt dankbar.

Carsten

elexx

Beginner

Posts: 24

Location: Werdau / Westsachsen

  • Send private message

20

Friday, July 15th 2011, 3:32pm

Nun soll es doch möglich werden, dass man per URL direkt auf ein Pano innerhalb der Tour kommt.
kann ich z.B. eine start.xml anlegen, die alles enthält und dann per parameter so ähnlich wie oben beschrieben eine xml laden?

Oder muss ich doch alles neu aufbauen. Es sind jetzt fast 30 Panos mit jeweils mehreren Hotspots. Das würde ich ungern komplett neu machen.


Hallo Carsten,
nein - ich denke, das was Du machen möchtest, geht ohne größeren Aufwand.

Ich mache es prinzipiell so: Für ein Projekt gibt es nur eine html und eine XML, weil ich die Verwendung von Szenen irgendwie programmiertechnisch eleganter finde.

Beispieltour: http://www.moccabar.net/vtour/mocc.html
bestehend aus 11 Panoramen, die in 11 Szenen definiert sind.

Die zugehörige XML: http://www.moccabar.net/vtour/mocc.xml

Weiß man nun die Namen der Szenen, kann man auch per URL auf eine bestimmte zugreifen: http://www.moccabar.net/vtour/mocc.html?sc=sc7065

Dazu wird in der XML die Variable sc ausgewertet:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
<krpano version="1.0.8" onstart="action(losgehts)">

	<action name="losgehts">
	  create_navigation();
	<!-- load 1. scene on start -->
	<!-- wenn per HTML in der URL die Variable /sc/ gesetzt ist, wird diese geladen, falls nicht, dann die nachfolgend definierte Szene -->
	  if(sc === null, loadscene(sc6855,null,MERGE) , loadscene(get(sc),null,MERGE));
	</action>

	<scene name="sc6855">
	...
	</scene>
</krpano>


in der HTML-Datei muß dazu noch die Zeile swf.passQueryParameters(); ergänzt werden:

Source code

1
2
3
4
5
6
<script type="text/javascript">
	var swf = createswf("krpano.swf");
	swf.addVariable("xml","mocc.xml");
	swf.passQueryParameters();
	swf.embed("krpanoDIV");
</script>


Wenn Du nun die einzelnen Panoramen in unterschiedlichen XMLs hast, sollte das genauso gehen, nur lädst Du in abhängigkeit von der gesetzten Variable eben keine Szene (wie ich) sondern eine bestimmte XML (ungetestet!):

Source code

1
2
3
4
5
6
<krpano version="1.0.8" onstart="action(losgehts)">
	<action name="losgehts">
	<!-- wenn per HTML in der URL die Variable /sc/ gesetzt ist, wird diese XML geladen, falls nicht, dann die nachfolgend definierte XML -->
	  if(sc === null, loadpano(weinbergstart.xml,null,MERGE) , loadpano(get(sc).XML,null,MERGE));
	</action>
</krpano>



HTH