Readers of this blog will be familiar with my occasional post on a back burner project I have going by the name DataSphere. As a reminder, here are a couple of screen shots:
Infosthetics points to InfoMagnet's Global-i application - incredibly close to DataSphere in many respects. The interface has two basic functions: an interactive, animated globe which allows zooming and rotation, and data overlays. Here's the interface:
Here is an example of Global-i showing export destinations for Oman:
The application is very well put together, the animation is smooth and the interactions are intuitive. There are some issues with certain views where, perhaps, aesthetics have been chosen over understandability or simplicity, but overall a really nice piece of work.
In terms of implementation, there are two basic challenges that delivering this type of application poses. Firstly, the rendering engine - drawing interactive 3d graphics in Java requires plenty of ingenuity and optimization. Secondly, the streaming of data from the server - this has to be done in a way which doesn't punish the client too much. Part of the solution to this problem is to simplify the data and compress it. The major simplification required is to the GIS data - specifically the country shape files. This is pretty straightforward. As far as I can tell, unlike DataSphere and other geographic data browsers, Global-i doesn't use multiple scales of data - a single data set is used at all zoom levels.
Global-i doesn't provide image overlays (such as satellite images) and uses 3d line drawing. DataSphere uses an image as its basic rendering mechanism and projects it using a custom 3d aliasing mechanism. At the granularity that Global-i uses, 3d line drawing is an appropriate choice and has produced elegant results.
When 3d rendering is limited to a sphere, there are some tricks that lead to greater efficiency. One is to essentially slice the globe with a plane parallel to the plane of view and only render things on top of, or in front of that plane. One of the downsides of this is that graphical data elements that transition from the visible hemisphere to the invisible hemisphere get truncated. This can be seen in Global-i when 3d arcs are used to indicate links between locations. DataSphere, which also uses this partitioning approach, renders arcs on the sphere's surface which essentially avoids this problem.
Comments