A client-server, component-based navigation system.

We present a new type of mobile navigation system. The core of this system consists of an extremely generic client-server architecture. It consists of a framework of standard hardware and software technologies such as a Personal Digital Assistant (PDA), Java and SVG.

The server has an abstract class called receiver from which it reads data and response to a client via HTTP or UDP. The receiver itself can read a input-stream from a serial port or from a file. To encode the input it uses the protocol of the signal. The encoded input is called message. The message consist of coordinates. These coordinates can be transformed in any map projection system. The server sends the message as an XML string to the clients.

The client we developed consists of an interface-window (programmed in Java) and a SVG Viewer. In the interface one can select different maps, coordinate systems or representations. This information is sent to the server. The response is always an XML-string. This string is used to select a tile of a map. Then the string and the tile are transformed to the viewers coordinate system and displayed.

The SVG Viewer is rather basic. It is able to interpret basic shapes, styles and raster-images. This makes it possible to run it on PDAs with few memory.

The server and the client are very lightweight. Of course their size depends on how many receivers, projections and maps are provided. The server itself uses less than 20KB, the client uses 2KB. The maps for the client are the most consuming factor.

We made a prototype implementation of this navigation system. The Hardware consists of a GPS receiver, a Sharp Zaurus and/or a PC. The server consists of a GPS receiver class including the NMEA-Protocol. The client consists of a couple of tiles of a map of Zurich in two different scales in the CH03-Projection. We tested this configuration in the area of Zurich.

Because of the abstract base of the client and the server it is very easy to use another receiver than GPS (e.g. IMS or DMC) and to use maps in another projection system (e.g. UTM). Our server component is platform-independent and open-source. It is written in C and Java. HTTP/UDP and XML is used for communication.