Building the MIDlet



Configure the following settings in etc/ The Ant-build-file, build.xml, assumes the existence of a package repository in which the above packages reside. The root of this repository is determined from the environment variable, PACKAGES. (It also contains targets for building various Personal Profile programs, which use the code here but are not released under an Open Source license. More information about these programs may be found here.)

Software Organisation

This program evolved over the course of about a year's worth of spare time from almost nothing. The original codebase was non-CLDC, i.e., Personal Java, Personal Profile, J2SE and ran on a Sharp Zaurus. The org.syzygy.gps package contains beans and interfaces common to both platforms while the org.syzygy.gps.midp package contains MIDlet-specific code to display the information on a Limited, Connected Device's screen.

All code is distributed under the terms of the GNU GPL.

NMEA Sentence Parsing

Standard NMEA sentences recognised are:

Fetching and Caching Maps

Two cache implementations for storing map images are provided for CLDC: (Neither of these caches is bounded --- this should be fixed. However I'm not in a hurry to do this because my phone has 1GB of flash memory!)

Plotting Position on a Map

Plotting the correct position on a map requires calculation of the Gudermannian function. As I understand it this describes the Mercator projection of a point on a sphere onto a cylinder. (This projection is referred to as "equal-area", I believe because the surface area of a sphere (radius r) and the area of the vertical part of a cylinder (radius r, height 2r) are equal. This is what is known as "developing" the sphere onto a cylinder in technical-drawing parlance: visualise wrapping the sphere with the cylinder and you get the idea.)

Unfortunately the Gudermannian requires transcendental functions which aren't available in CLDC's java.lang.Math so power-series approximations are provided, which I am amazed I remembered from College.

To Do

Please feel free to help with these! Also suggest more features!


If you've read all of the foregoing, I suppose you'd better download the code
Last Updated: Sun Jul 16 12:33:00 IST 2006 jscrane at