Skip to main content

Tinkering with Nasa's WorldWind on Fedora 14


I've been wanting to drop the Nasa WorldWind SDK on my notebook so I can explore it a bit more on my own time. My notebook is a bit more unconventional than the lab systems. I keep the lab systems as close to standard as possible to minimize any installation or runtime issues. My notebook is more of a personal sandbox, a personal spot to tinker.

Up to this point everything's been run on Windows and 32-bit Linux. But this installation of Fedora 14 is 64-bit, and it introduced a few little quirks that had to be settled. Nothing major, but they need to be documented in one spot.

First is an SDK ant build quirk. I want to be able to run ant in the SDK folder if necessary from the command line and have the SDK re-build. When I tried a build right after unpacking the SDK I got a log of  "unmappable character for encoding UTF8" error message because somebody decided to include the degree symbol as part of a comment, and Java 6u29's javac decided it didn't like it. That tickled an old memory about some obscure javac command line arguments, so after looking up javac's documentation (again) I modified the stock build.xml's javac section and added the highlighted line:
        <javac 
            encoding="ISO-8859-1"
            srcdir="${worldwind.src.dir}"
            destdir="${worldwind.classes.dir}"
            source="${worldwind.jdk.version}"
            target="${worldwind.jdk.version}"
            fork="true"
            includeantruntime="false"
            memoryMaximumSize="512m">
            <classpath>
              <pathelement location="jogl.jar"/>
              <pathelement location="gluegen-rt.jar"/>
              <pathelement location="gdal.jar"/>
              <pathelement location="${java.home}/lib/plugin.jar"/>
            </classpath>
        </javac>
Once you add the encoding argument the Java classes will build. One other little gotcha. There is no simple clean. The target "clean.all" will clean everything. You should read the build.xml file for all the individual clean targets.

The next little quirk concerns the native libraries required by Jogl. The shared libraries under Linux are libgluegen-rt.so, libjogl_awt.so, libjogl_cg.so and libjogl.so, and they're located in the root folder where you unpack the SDK. They're compiled for a 32-bit Intel class processor, and you need the 64-bit versions. There's a page that explains what the problem is and the solution but it's a little obtuse, so I'm going to spell it out. To replace these libraries you need to go to http://download.java.net/media/jogl/builds/archive/jsr-231-1.x-webstart-current/ and download gluegen-rt-natives-linux-amd64.jar and jogl-natives-linux-amd64.jar. Un-jar them and move the resultant shared object files to the SDK folder to replace the 32-bit versions.

You need to make one more minor modification, this time to the script run_demo.bash. On the line executing java, add the following additional argument: -Djava.library.path=.
This will tell java to look for the library files in the location where it's executed from, which in this case is the SDK's base folder. You can make this more elaborate if you wish, but the bash script assumes you're going to run it out of the SDK folder. The classpath is already set up to look for the jar files in the same base folder the script is executed in.

And that's about it. All the java files build and the demo executes. Now I'm to the point where I can begin a bit of experimentation. The next task I want to perform is to install the Android library version of WorldWind and see if I can get something up and running on the Asus Transformer, and then begin to create the ability to share between the notebook version and the table version. I have some ideas...

Comments

Popular posts from this blog

A Decade Long Religious Con Job

I rarely write inflammatory (what some might call trolling) titles to a post, but this building you see before you deserves it. I've been seeing this building next to I-4 just east of Altamonte/436 and Crane's Roost for nearly 12 years, and never knew who owned it. Today on a trip up to Lake Mary with my wife I saw it yet again. That's when I told her I wanted to stop by on the way back and poke around the property, and photograph any parts of it if I could.

What I discovered was this still unfinished eighteen story (I counted) white elephant, overgrown with weeds and yet still under slow-motion construction. It looks impressive with its exterior glass curtain walls, but that impression is quickly lost when you see the unfinished lower stories and look inside to the unfinished interior spaces.

A quick check via Google leads to an article written in 2010 by the Orlando Sentinel about the Majesty Tower. Based on what I read in the article it's owned by SuperChannel 55 WA…

first night for the gingersnaps

The first night has passed and the two have managed to survive, in spite of what their tiny hearts might have thought when first arriving. Greebo, the larger of the two, has been in hiding the entire time so far. Ponder has spent the time zipping in and out of hiding spots, checking things out, and learning just how comfortable pillows are for resting your head.

During the night I felt the tiny body of Ponder hitting the bed as he leaped up on the side, and then climbed to the top to run around on top of me. At least once he play-attacked my fingers. He might be small but his claws are still quite sharp.

When I got up in the morning the bowl of cat kitten food was fairly well depleted. It's been refilled and fresh water put in the big dish on the floor. I'm assuming that both Greebo and Ponder are feeding and drinking. I have seen Greebo under the furniture peeking out at me when I went looking for him. I'm leaving him alone while he continues to adjust.

So far the guys h…

cat-in-a-box channels greta garbo

So I'm sitting at my computer, when I start to notice a racket in back. I ignore it for a while until I hear a load "thump!", as if something had been dropped on the floor, followed by a lot of loud rattling. I turn around and see Lucy in the box just having a grand old time, rolling around and rattling that box a good one. I grab the GX1 and snap a few shots before she notices me and the camera, then leaps out and back into her chair (which used to be my chair before she decided it was her chair).

Just like caring for Katie my black Lab taught me about dogs, caring for Lucy is teaching me about cats. She finds me fascinating, as I do her. And she expresses great affection and love toward me without coaxing. I try to return the affection and love, but she is a cat, and she takes a bat at me on occasion, although I think that's just her being playful. She always has her claws in when she does that.

She sits next to me during the evening in her chair while I sit in mi…