0

WorldWind in ZK

asked 2012-04-20 18:01:34 +0800

mhj gravatar image mhj flag of Brazil
806 1 7

anyone ever had any contact with WorldWind?
-is free to commercial use (NOSA License), google earth is not, and is very expensive
-next monday maybe i will start try embed into zk
-the link below has an example
http://worldwind.arc.nasa.gov/java/1.2.0/demos/index_applet_cookie.html
if anyone has any experience, can post your experience ...

delete flag offensive retag edit

3 Replies

Sort by ยป oldest newest

answered 2012-04-20 21:00:01 +0800

terrytornado gravatar image terrytornado flag of Germany
9393 3 7 16
http://www.oxitec.de/

If ready, please show us the result.

link publish delete flag offensive edit

answered 2012-07-31 16:14:58 +0800

mhj gravatar image mhj flag of Brazil
806 1 7

an example:

ZKFiddle-Link

wwj.js
var theApplet = null;
var cdPonto = 0, cdPontos=0,cdPoligono=0,cdPoligonos=0,cdCirc=0,cdCircs=0;
var isAddPto = false;

function getWWJApplet()
{
if (theApplet == null) {
theApplet = document.getElementById('appletTest');
}
// See if we're using the old Java Plug-In and the JNLPAppletLauncher
try {
theApplet = theApplet.getSubApplet();
} catch (e) {
// Using new-style applet -- ignore
}
return theApplet;
}

// Applet init, start and stop - called from java at the end of applet init() and start()
// and at the begining of stop()

function appletInit() {
}

function appletStart() {
// Fly to first location in the list after a delay
//var locations = document.controlPanel.locations;
//if(locations.options.length > 0)
setTimeout("gotoPlace('Mount St-Helens, USA;46.1956;-122.1911;30000;140;80')", 2000); // 2 seconds
//setTimeout("goto(document.controlPanel.locations.options[0].value)", 5000); // 5 seconds
}

function appletStop() {
}

// Locations select options handling

function gotoPlace(locationString) {
var params = locationString.split(';');
if(params.length == 3) // Lat/lon
getWWJApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]));
else if(params.length == 4) // Lat/lon and zoom
getWWJApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]), parseFloat(params[3]), 0, 0);
else if(params.length == 5) // Lat/lon/zoom and heading
getWWJApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]), parseFloat(params[3]), parseFloat(params[4]), 0);
else if(params.length == 6) // Lat/lon/zoom/heading and pitch
getWWJApplet().gotoLatLon(parseFloat(params[1]), parseFloat(params[2]), parseFloat(params[3]), parseFloat(params[4]), parseFloat(params[5]));
}

function gotoLatLon(lat,lon){
getWWJApplet().gotoLatLon(lat,lon);
}


function addLocation() {
// Read view states from ww applet
var lat = getWWJApplet().getOrbitView().getCenterPosition().getLatitude().degrees;
var lon = getWWJApplet().getOrbitView().getCenterPosition().getLongitude().degrees;
var zoom = getWWJApplet().getOrbitView().getZoom();
var head = getWWJApplet().getOrbitView().getHeading().degrees;
var pitch = getWWJApplet().getOrbitView().getPitch().degrees;
var name = prompt("Location name :", "New location");
if(name != null) {
var locationString = name + ';' + lat + ';' + lon + ';' + zoom + ';' + head + ';' + pitch;
document.controlPanel.locations.options[document.controlPanel.locations.options.length] = new Option(name,locationString);
saveLocations();
}
}

function removeLocation(i) {
if(i >= 0 && i < document.controlPanel.locations.options.length) {
document.controlPanel.locations.options[i] = null;
saveLocations();
}
}

function moveLocation(i, delta) {
if(i == -1) return;
if( i + delta >= 0 && i + delta < document.controlPanel.locations.options.length) {
var locations = document.controlPanel.locations;
var temp = new Option(locations.options[i].text, locations.options[i].value);
locations.options[i] = new Option(locations.options[i + delta].text, locations.options[i + delta].value);
locations.options[i + delta] = temp;
locations.selectedIndex = i + delta;
saveLocations();
}
}

function saveLocations() {
var value = '';
var locations = document.controlPanel.locations;
for(var i = 0; i < locations.options.length; i++) {
value += locations.options[i].value + '|';
}
if(value.length > 0) value = value.substring(0, value.length - 1);
setCookie('NASA_WWJ_Locations', value, 999);
}

function loadLocations() {
var value = getCookie('NASA_WWJ_Locations');
alert("foi: "+value);
if(value != '') {
var locationList = value.split('|');
var locations = document.controlPanel.locations;
locations.options.length = 0;
for(var i = 0; i < locationList.length; i++) {
var name = locationList[i].split(';')[0];
locations.options[i] = new Option(name, locationList[i]);
}
}
}

// Cookies

function setCookie(name, value, days) {
if(value != "") {
var date1 = new Date();
var date2 = new Date();
date2.setTime(date1.getTime() + 1000*60*60*24*days);
document.cookie = name + '=' + escape(value) + '; expires=' + date2.toGMTString();
}
}

function getCookie(name) {
var gato = document.cookie;
i1 = gato.indexOf(name+'=');
if(i1 == -1) return "";
i2 = gato.indexOf(';', i1);
if(i2 == -1) i2 = gato.length;
return unescape(gato.substring(i1 + name.length + 1, i2))
}


TestComposer.java
package jr5ii5k$v1;

import org.zkoss.zk.ui.*;
import org.zkoss.zk.ui.event.*;
import org.zkoss.zk.ui.util.*;
import org.zkoss.zk.ui.ext.*;
import org.zkoss.zk.au.*;
import org.zkoss.zk.au.out.*;
import org.zkoss.zul.*;

public class TestComposer extends GenericForwardComposer{

public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);

}

public void onClick$btn(Event e) throws InterruptedException{
Messagebox.show("Hi btn");
}
}


index.zul
<zk xmlns="http://www.zkoss.org/2005/zul" 
xmlns:n="http://www.zkoss.org/2005/zk/native"
xmlns:w="http://www.zkoss.org/2005/zk/client">
<window border="normal" title="hello World Wind Java" apply="jr5ii5k$v1.TestComposer" height="99%">
<div id="divHtml" height="100%">
<n:head>
<n:script id="scriptTest" language="javascript" src="wwj.js"></n:script>
</n:head>
<n:body style="margin: 0px; overflow: hidden;">
<n:applet id="appletTest" mayscript="" code="org.jdesktop.applet.util.JNLPAppletLauncher" width="100%" height="100%" archive="lib/worldwind/applet-launcher.jar, lib/worldwind/worldwind.jar, lib/worldwind/WWJApplet.jar, lib/worldwind/start/jogl.jar, lib/worldwind/gluegen-rt.jar"><!--http://worldwind.arc.nasa.gov/java/jogl/webstart/jogl.jar, http://worldwind.arc.nasa.gov/java/jogl/webstart/gluegen-rt.jar-->
<n:param name="jnlp_href" value="http://worldwind.arc.nasa.gov/java/1.2.0/demos/WWJApplet.jnlp"></n:param>
<n:param name="codebase_lookup" value="false"></n:param>
<n:param name="subapplet.classname" value="gov.nasa.worldwindx.examples.applet.WWJApplet"></n:param>
<n:param name="subapplet.displayname" value="Hello World"></n:param>
<n:param name="noddraw.check" value="true"></n:param>
<n:param name="progressbar" value="true"></n:param>
<n:param name="jnlpNumExtensions" value="1"></n:param>
<n:param name="jnlpExtension1" value="http://worldwind.arc.nasa.gov/java/jogl/webstart/jogl.jnlp"></n:param>
<n:param name="system" value="java"></n:param>
</n:applet>
</n:body>
</div>
</window>
</zk>

link publish delete flag offensive edit

answered 2012-07-31 16:15:53 +0800

mhj gravatar image mhj flag of Brazil
806 1 7

this code is in zkfiddle:
http://zkfiddle.org/sample/r5ii5k/1-Hello-World-Wind-Java

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2012-04-20 18:01:34 +0800

Seen: 179 times

Last updated: Jul 31 '12

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More