3 <title>NASA World Wind Java Applet Test Page - Javascript saved locations with a cookie
</title>
5 <script language=
"javascript">
7 // Author: Patrick Murris
10 // Applet init, start and stop - called from java at the end of applet init() and start()
11 // and at the begining of stop()
13 function appletInit() {
16 function appletStart() {
17 // Fly to first location in the list after a delay
18 var locations
= document
.controlPanel
.locations
;
19 if(locations
.options
.length
> 0)
20 setTimeout("goto(document.controlPanel.locations.options[0].value)", 5000); // 5 seconds
23 function appletStop() {
26 // Locations select options handling
28 function goto(locationString
) {
29 var params
= locationString
.split(';');
30 if(params
.length
== 3) // Lat/lon
31 document
.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params
[1]), parseFloat(params
[2]));
32 else if(params
.length
== 4) // Lat/lon and zoom
33 document
.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params
[1]), parseFloat(params
[2]), parseFloat(params
[3]), 0, 0);
34 else if(params
.length
== 5) // Lat/lon/zoom and heading
35 document
.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params
[1]), parseFloat(params
[2]), parseFloat(params
[3]), parseFloat(params
[4]), 0);
36 else if(params
.length
== 6) // Lat/lon/zoom/heading and pitch
37 document
.getElementById('wwjApplet').getSubApplet().gotoLatLon(parseFloat(params
[1]), parseFloat(params
[2]), parseFloat(params
[3]), parseFloat(params
[4]), parseFloat(params
[5]));
40 function addLocation() {
41 var ww
= document
.getElementById('wwjApplet');
42 // Read view states from ww applet
43 var lat
= ww
.getSubApplet().getOrbitView().getLookAtLatitude().degrees
;
44 var lon
= ww
.getSubApplet().getOrbitView().getLookAtLongitude().degrees
;
45 var zoom
= ww
.getSubApplet().getOrbitView().getZoom();
46 var head
= ww
.getSubApplet().getOrbitView().getHeading().degrees
;
47 var pitch
= ww
.getSubApplet().getOrbitView().getPitch().degrees
;
48 var name
= prompt("Location name :", "New location");
50 var locationString
= name
+ ';' + lat
+ ';' + lon
+ ';' + zoom
+ ';' + head
+ ';' + pitch
;
51 document
.controlPanel
.locations
.options
[document
.controlPanel
.locations
.options
.length
] = new Option(name
,locationString
);
56 function removeLocation(i
) {
57 if(i
>= 0 && i
< document
.controlPanel
.locations
.options
.length
) {
58 document
.controlPanel
.locations
.options
[i
] = null;
63 function moveLocation(i
, delta
) {
65 if( i
+ delta
>= 0 && i
+ delta
< document
.controlPanel
.locations
.options
.length
) {
66 var locations
= document
.controlPanel
.locations
;
67 var temp
= new Option(locations
.options
[i
].text
, locations
.options
[i
].value
);
68 locations
.options
[i
] = new Option(locations
.options
[i
+ delta
].text
, locations
.options
[i
+ delta
].value
);
69 locations
.options
[i
+ delta
] = temp
;
70 locations
.selectedIndex
= i
+ delta
;
75 function saveLocations() {
77 var locations
= document
.controlPanel
.locations
;
78 for(var i
= 0; i
< locations
.options
.length
; i
++) {
79 value
+= locations
.options
[i
].value
+ '|';
81 if(value
.length
> 0) value
= value
.substring(0, value
.length
- 1);
82 setCookie('NASA_WWJ_Locations', value
, 999);
85 function loadLocations() {
86 var value
= getCookie('NASA_WWJ_Locations');
88 var locationList
= value
.split('|');
89 var locations
= document
.controlPanel
.locations
;
90 locations
.options
.length
= 0;
91 for(var i
= 0; i
< locationList
.length
; i
++) {
92 var name
= locationList
[i
].split(';')[0];
93 locations
.options
[i
] = new Option(name
, locationList
[i
]);
100 function setCookie(name
, value
, days
) {
102 var date1
= new Date();
103 var date2
= new Date();
104 date2
.setTime(date1
.getTime() + 1000*60*60*24*days
);
105 document
.cookie
= name
+ '=' + escape(value
) + '; expires=' + date2
.toGMTString();
109 function getCookie(name
) {
110 var gato
= document
.cookie
;
111 i1
= gato
.indexOf(name
+'=');
112 if(i1
== -1) return "";
113 i2
= gato
.indexOf(';', i1
);
114 if(i2
== -1) i2
= gato
.length
;
115 return unescape(gato
.substring(i1
+ name
.length
+ 1, i2
))
123 <body onLoad=
"loadLocations()">
125 <applet id=
"wwjApplet" name=
"wwjApplet" mayscript
code=
"org.jdesktop.applet.util.JNLPAppletLauncher" width=
100% height=
70%
126 archive=
"applet-launcher.jar,http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jar, http://download.java.net/media/gluegen/webstart/gluegen-rt.jar, worldwind.jar">
127 <param name=
"codebase_lookup" value=
"false">
128 <param name=
"subapplet.classname" value=
"applet.WWJApplet">
129 <param name=
"subapplet.displayname" value=
"WWJ Applet">
130 <param name=
"noddraw.check" value=
"true">
131 <param name=
"progressbar" value=
"true">
132 <param name=
"jnlpNumExtensions" value=
"1">
133 <param name=
"jnlpExtension1" value=
"http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp">
136 <form name=
"controlPanel" id=
"controlPanel">
138 <table cellspacing=
"20"><tr>
140 <select name=
"locations" id=
"locations" size=
"8" style=
"width: 250px" onDblClick=
"goto(this.options[this.selectedIndex].value);return false;">
141 <option value=
"Mount St-Helens, USA;46.1956;-122.1911;30000;140;80" selected
>Mount St-Helens, USA
</option>
142 <option value=
"Grand Canyon, USA;36.1;-112.1;100000;30;45">Grand Canyon, USA - Overview
</option>
143 <option value=
"Grand Canyon, USA;36.1;-112.0;50000;270;60">Grand Canyon, USA - Close up
1</option>
144 <option value=
"Grand Canyon, USA;36.2;-112.2;30000;100;75">Grand Canyon, USA - Close up
2</option>
145 <option value=
"Nice, France;43.705;7.28;25000;30;80">Nice, France
</option>
146 <option value=
"Sydney, Australia;-33.8579;151.2135;30000;0;60">Sidney, Australia
</option>
150 <input type=
"BUTTON" value=
"> Fly to location" onClick=
"goto(this.form.locations.options[this.form.locations.selectedIndex].value);"><br />
152 <input type=
"BUTTON" value=
"< Save current location" onClick=
"addLocation();"><br />
154 <input type=
"BUTTON" value=
"Move up" onClick=
"moveLocation(this.form.locations.selectedIndex, -1);">
155 <input type=
"BUTTON" value=
"Move down" onClick=
"moveLocation(this.form.locations.selectedIndex, 1);"><br />
156 <input type=
"BUTTON" value=
"x Remove location" onClick=
"removeLocation(this.form.locations.selectedIndex);"><br />
157 <!-- <input type="BUTTON" value="Save" onClick="saveLocations();"> -->
158 <!-- <input type="BUTTON" value="Load" onClick="loadLocations();"> -->
162 <!-- This change the eye distance or zoom -->
163 <input type=
"BUTTON" value=
"10km" onClick=
"wwjApplet.getSubApplet().setZoom(10000);"><br />
164 <input type=
"BUTTON" value=
"20km" onClick=
"wwjApplet.getSubApplet().setZoom(20000);"><br />
165 <input type=
"BUTTON" value=
"100km" onClick=
"wwjApplet.getSubApplet().setZoom(100000);"><br />
166 <input type=
"BUTTON" value=
"500km" onClick=
"wwjApplet.getSubApplet().setZoom(500000);"><br />
167 <input type=
"BUTTON" value=
"2000km" onClick=
"wwjApplet.getSubApplet().setZoom(2000000);"><br />
170 <!-- This change the heading and pitch-->
172 <input type=
"BUTTON" value=
"North" onClick=
"wwjApplet.getSubApplet().setHeadingAndPitch(0, 60);"><br />
173 <input type=
"BUTTON" value=
"East" onClick=
"wwjApplet.getSubApplet().setHeadingAndPitch(90, 60);"><br />
174 <input type=
"BUTTON" value=
"South" onClick=
"wwjApplet.getSubApplet().setHeadingAndPitch(180, 60);"><br />
175 <input type=
"BUTTON" value=
"West" onClick=
"wwjApplet.getSubApplet().setHeadingAndPitch(-90, 60);"><br />
176 <input type=
"BUTTON" value=
"Reset" onClick=
"wwjApplet.getSubApplet().setHeadingAndPitch(0, 0);"><br />