I have started writing a geocaching application that I intend to port to the OpenMoko platform. I understand that Mono (the open source .NET implementation) runs on OpenMoko, so I have begun writing my project in C#. So far I have created a library to query and parse results from geocaching.com. I want the finished application to have the following effect:
A user opens the application and is presented with a list of geocaches, sorted by their proximity to the user's current position. This list will include as many details as can be displayed on the screen, but no actual coordinates.
The user will then select a cache, and all the details will be displayed (including coordinates), but comments and hints will still be hidden. If the user selects to view the comments or hints, they will be displayed to them.
The user will then be able to hit a "Find/Seek" button and the coordinates of the seeking part of the application will begin (this interface has yet to be determined).
One of the key ideas behind this design is minimizing network usage (to speed things up and to save people money on their data plans). The coords are not shown on the first screen because we would have to fetch a separate page for each cache listed in order to do so. The way it works now will only require downloading a single page in order to show all the caches near the user, and requesting any additional information about a cache will require downloading at most 1 more page.
The seeking interface is something I have not even begun to design, but I have a few ideas. For starters, it will list the coordinates it is seeking as well as the coordinates where you are at, and have some sort of indicator of which direction you need to go to. It should also incorporate the acuracy range of the current gps reading to determine if the user is "on top" of the cache or not. It would be nice to have a base map, but writing one from scratch may not be the best way to go. If there was a way to incorporate the use of the Navit map application, that would be ideal. This way, you could use Navit to give you driving directions to the cache site, and then use the maps already there to aid the user in locating the position.
It would also be nice to have an interface for logging a cache on geocaching.com once it has been located, but I have no plans for this yet.
If anyone has any thoughts on any of this, or reasons why my idea is stupid, add to this discussion.
Rage: Currently I am working on a mapping API, but it is for the Qtopia platform. It provides to draw custom data into maps from different map servers.