Saturday, September 15, 2007

The dilemma

Looking at the WWJ source code, I feel very happy. Honestly, my work in the Balloon's project core API is not as complete as the WWJ API:
  • not use any geode to calculate lat/lon,
  • not use the concept of LevelSet,
  • and more important, I don't implement any elevation model, my world is flat :(
Take in account nothing is perfect. Currently WWJ has a big problem with rendering vector data (polygons and points) in the surface (using elevation model).

The good things
On the other hand. Balloon is a one person project, and I think my work is enough good:
  • Balloon speed is similar to WWJ, inclusive when data are loading (remotely and locally at the same time).
  • Although my core API (my SDK) is simpler than WWJ, Balloon is a desktop application not only a SDK, it has a GUI module.
  • All objects allow change its features like: color, transparency, etc, without any distinction. This is not possible in WWJ with many layers.
  • All renderable objects are, optionally, timestamped and those Balloon can animate information.
  • Recently I was finishing the pick selection process of objects, and I want to improve GUI calculating the lat/lon position of the cursor in the screen.
The sentence that resumes my spirit and is enough for me to continue working is:
I want to improve the core API for the simple reason to learn and develop more and better.

The bad things
The problem is that for one person, develop the core API and GUI is too much job, and then the dilemma comes to me:
Why spend time in the core API if there exists a good API that makes something similar and, in more areas, better? Why doesn't use WWJ as the core API in the Balloon project?

I think I stop my project for a while, start learning more in WWJ API and trying to implement my existent layers and animation time concepts with the WWJ.
I think the real prolem is I don't know how to focus Balloon project Create another virtual globe? Focus it as another GIS application?

Finally I am thinking Why don't make a fork of the project: one using my core API and one using the WWJ API?


Theuns Heydenrych said...

Antonio , I think it s great idea to incorporate your ideas into WWJ
Looking forward to that

Antonio Santiago said...

Thanks Theuns for you comment.
Yes, I though on that but from now the main problem are the differences between WWJ and Balloon architectures, similar in concept but very different in code.
Anyway, recently I was thinking to use the Balloon Core API to make something similar to a 3D GIS and other version of Balloon based on WWJ API more closely to a virtual globe.

Nicolas said...

I read on your blog that you're able to read lat/lon shapefiles as vector layers on your map.
Is it working as a WWJ plugin? If so, could it be possible to make it available for the community?

Antonio Santiago said...

Hi Nicolas, from now the code is only for Balloon. Also I am working on a version based in WWJ. I hope show something soon.
The main problem with shapefiles in WWJ is the elevation. Depending on the camera altitude and cache values, the elevation in a point can be different. Also, there is the problem of points location. Imagine a line from one point to the next in a shapefile and a mountain in the middle. We need to have all discrete points between them to draw a line as segments.