Issues

Technical

Data Size and Rendering Speed

Maps are big: really big. GLOBE (1km-resolution topographic information for earth) comes in 16 GZipped files, each of which is around 20MB.

The problem here is that we would like to render large maps extremely quickly (read: realtime), and even having all the data in memory is a problem. Tricky.

Also, in order to get good rendering, a multithreaded application is probably required. With good multithreading behavior, so that users won't get too frustrated.

Rendering is Hard

Rendering maps at all is hard. Cartography is a complex and poorly-understood field, and we want pretty maps. We're competing with hand-drawn maps here.

We need to do a good job here if anybody's going to use us.

User Interfaces Suck

Writing user interfaces is a big job in its own right, and most UI frameworks suck. I don't want to spend months writing a UI for the thing: I just want to use somebody else's work. Maybe Eclipse's SWT will work out ok.

Languages

We need all of this (the UI, the data, etc) to be based on top of a language. That language may, in fact, be Java -- Java has the advantage that it's well thought-out, efficiently implemented, and there are interpreter versions of it available free. Try this first, I suppose.

Lack of Good Sources

Mapmaking isn't something that a lot of people do. I'll look at the few projects out there, but it's certainly not a widely-implemented type of program, and the problems are certainly not solved.

Personal

Time

I have relatively little time in my life, and I need to make sure that whatever time I'm dedicating to this project is worthwhile. This means few (or no) false starts, little to no rewriting, and none of this writing stuff for unknown systems.

The lack of time also means that I need to be able to break this project down into smaller interesting chunks that I can use seperately.