Welcome to jGISTools

Welcome to jGISTools

jGISTools is library written in the Java programming language providing reusable GUI components for rendering GIS data.
Currently two components are provided:

A "low" level map component (IMapComponent) that handles the user interactions and provides the rendering of the GIS data

A composite component (IMapPane), that uses the map component and also contains some predefined tools and actions like zoom in, zoom out, pan, etc

JGISTools currently provides implementations for the before mentioned components only for the Swing
platform. After the exposed APIs will be frozen, implementations for other windowing systems like
SWT or QT Jambi will also be considered.

The map component - IMapComponent

The most important caractheristic of the map component is configurability. It has no predefined
behaviour for handling user actions, it only dispatches them to the currently selected tool. Various predefined tools
are available for usage.

The map component is also data agnostic, meaning that it can render any GIS data contained in a propper IMapModel implementation.

At the moment the library offers support only for shapefiles, however writing IMapModel implementations for other
GIS formats is relatively easy, so expect support for more formats in the near future.

Another major characteristic of the map component is the separate drawing thread architecture. The drawing
of the GIS data takes place in a separate thread, so this drawing does not block the Event Dispatch
Thread (EDT), that handles the user actions. Every new action cancels the previous drawing operation
and creates a new one. This feature makes the navigation in huge amounts of GIS data extremely easy, see
the youtube video Threaded drawing demo

The map pane - IMapPane

The map pane can be considered a simple map viewer that provides out of the box the following
tools and actions:

Select tool

Drag tool

Zoom tool (left click for zoom in, right for zoom out)

Zoom in action (center)

Zoom out action (center)

Zoom 1:1

The actions and tools mentioned above are displayed by default by the map pane, however the application
developer can specify which actions and tools should be displayed to meet the needs of his application.