GPSylon

The dinopolis gpstool package is an open source (LGPL) Java GPS application. It consists of different modules that may be used as a programmer's framework or as an application. The main application is GPSylon. A smaller command line tool (demonstration of the gpsinput library) is named GPSTool. The library that is used to communicate with the gps device can be used independently and is provided as a separate jar file (since version 0.5).

News

2006/10/23: New Release 0.5.2: Serial communication with gps devices fixed - no installation of java serial libraries needed. Fixed some other bugs and added export of tracks in gpx format.

2006/02/10: Minor bug fix on loading gpx tracks.

2006/02/01: Giving Google Ads a try.

2006/02/01: Finally, separated the gpsinput library from the rest, redesign of homepage (css'ed it). Version 0.5 released. No new features, just a little code cleanup.

2003/05/12: As the name GPSMap is already used by several other projects/products, the main application is renamed to GPSylon.

Short Description of GPSylon

GPSylon is able to show maps downloaded from the expedia map servers. It may connect to a gps device and track your position on the maps. At the moment, it is able to read gpsdata in the NMEA standard from a serial gps device, a file or a gps daemon across a network (available at the gpsd project page).

The main feature is the display of various maps. GPSylon allows the user to navigate around like in a digital atlas. It shows maps of different scales, so missing maps of one scale do not result in a black screen, but show the next larger scale. See the screenshot section for an image.

It allows the download of a single map or for a given location or for multiple maps in a given rectangular area from mapblast or expedia map servers. In the download mouse mode the user may choose a single map or by dragging a rectangle with the mouse, the user may choose to download maps for a larger area. This functionality allows the user to download maps in a given scale for a larger area. Please only download maps you need and be careful not to download thousands of maps, as the map providers will discontinue their service when it is misused!

It uses the open source library openmap for various cartographic things.

Features

The following features are implemented.

Screenshots

Screenshots can be found here.

Supported GPS Devices

In general, all gps devices that support NMEA communication should work. Garmin protocol support is built in.

There were reports of the following devices to work with GPSylon:

Linux users please note: serial ports must be like /dev/ttySXX, as otherwise rxtx does not recognize the port. So for bluetooth or USB devices, a symlink is needed!

For bluetooth connection, I used the following commands under linux to create a serial connection with bluetooth. First, find the id of your bluetooth device. I used hcitool for this:

            hcitool scan
            output:
            Scanning ...
            00:0B:5D:13:91:49       BEGRZ9001001
            00:0D:B5:30:3C:0A       BT-GPS-303C0A
            
The first id is my bluetooth dongle on the pc, the second is the gps device. So, with this id, we can create a virtual serial port using rfcomm:
            rfcomm bind /dev/ttyS50 00:0D:B5:30:3C:0A
            
As rxtx does not allow /dev/rfcomm0 as serial device, I used /dev/ttyS50 (all ttys below 50 were already existent in my installation). A symlink from ttyS50 to rfcomm0 also works!

After this, I set some port parameter (I'm not sure, if this is really needed!):

            stty -F/dev/ttyS50 -raw -onlcr
            
Now, GPSTool or GPSylon can use the serial port /dev/ttyS50 for communication with the nmea bluetooth gps device.

After closing the application, one should release the bluetooth serial port:

            rfcomm release /dev/ttyS50
            
Please note, that all these commands (except for the application start) need to be run as root!

Installation

No installation of GPSylon itself is needed. Nevertheless, some dependencies exist:

Database for Location Markers

GPSylon is able to store and retrieve location markers from relational databases via JDBC. By default it uses the pure java open source Hypersonic DB (hsqldb). It has the advantage that no installation is needed and GPSylon creates a database on demand without any hassle.

As the geonet dataset is quite large (e.g. Austria 50 thousand entries, Germany 170 thousand entries), hsqldb seemed quite slow. So I gave it a try with mysql and it seems to be faster! Especially searching for location markers is faster by a factor 5 to 10! So I added a script that creates the table(s) needed (syntax differs slightly from the hsqldb syntax). The following steps are needed to use a mysql database instead of the built in hsqldb:

For Postgresql support use the following configuration: The rest of the postgresql configuration is similar to the mysql configuration (install database, create a gpsmap database, create user and user rights, ...)

Run GPSylon

To start GPSylon, download the gpstool-archive, unpack it and call
java -jar gpssylon.jar
or if your environment is setup to handle jar-archives correctly, simply double click on the jar-archive (should work under windows). All needed classes are contained in the jar file. If you have the ant environment installed, call ant run.

For commandline arguments (everything may be configured in the application as well!), call
java -jar gpsylon.jar --help

Mouse Modes

GPSylon supports different mouse modes. Mouse modes may be added as plugins. At the moment, two mouse modes are available:

Plugins

GPSylon supports plugins of various kinds. The plugin-jars are used without the need to set the CLASSPATH. All jars in the directories [home]/.gpsylon/plugins and in the plugins directory of the applicaton are used.

Download

Please download the latest distribution of GPSylon at the download page on sourceforge.

Status

GPSylon is in beta-status. It runs quite stable, but many features are not implemented yet.

Articles about GPSylon

Elliotte Rusty Harold, the author of quite a few books about Java, mentioned GPSylon in his Cafe au Lait blog.

Other Projects

Other projects that use parts of the gpsinput/gpsylon code are:

Projects that are somehow related to this project:

To Do List

urgent:

Todo (wishlist):

routes

waypoints

overlays

location database (GNR)

GPS Device

gps tracking

vectorize tracks

communication to other applications

maps

autoroute calculation

speech

distance notification

context menus (right mouse) / one button mouse (touchscreen) support????

Compile Source Distribution

To compile the source distribution, the java make tool Ant from the apache project is needed. When correctly installed, a ant compile should be enough to compile the source.
ant help gives all ant-tasks.

Commandline tool GPSTool

GPSTool is a small command line application that demonstrates the usage of the classes to read data from a gps device. The main class is org.dinopolis.gpstool.GPSTool and it may be started using the provided gpstool-<version>.jar file (execute in a command window java -jar gpsylon-<version>.jar - double click does not make much sense, as it is a commandline application). Use "--help" to see all commandline switches.
The following features are implemented in GPSTool:

License

The source of the gpstool framework basically is licensed unter the Lesser Gnu Public License (LGPL). Some parts in the framework (e.g. the main application GPSylon) uses the Open Source library openmap. The OpenMap code is covered under the OpenMap license, which is a modified version of Sun's artistic license, so take care which modules you use and which license you have to respect.

The module that is responsible for reading gps data from a gps device in completely independent from the openmap library and may therefore be used under the LGPL license.