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.