The aimax.osm
package together with its sub-packages contain a
tool for reading, maintaining, and viewing Open Street Map (OSM) data. The viewer is
designed as an efficient general purpose viewer which is highly configurable and
extendible. The internal map representation is chosen as close as possible to the
original OSM XML file format. A kd-tree is used to improve rendering efficiency.
Classification and abstraction of map entities as well as their
visual appearance within the drawn map are controlled by declarative
rendering rules. They can be replaced or configured at runtime.
New personal map styles can be created quite easily. See classes
aimax.osm.viewer.MapStyleFactory
and
aimax.osm.application.OsmViewerPlusApp
for ideas how that can be
achieved.
Routing functionality is based on the AIMA-JAVA core library. All dependencies to the core library are encapsulated in the routing sub-package and the applications using functionality from that package. So the viewer classes can also be used as stand-alone library for building general OSM applications.
In the current version, relation entities are ignored and the size of the map should be limited to about a million nodes to avoid long loading times. The tool Osmosis can be used to generate maps complying to this requirement.
Getting started: Compile the project and run one of the applications
in the aimax.osm.applications
package. If no map is displayed
by default, make sure that the main/resource folder is included in
the build path of your project, recompile and start again.
Then place the mouse inside the map viewer pane. Try mouse-left, mouse-right,
mouse-drag, ctrl-mouse-left, plus button, minus button, ctrl-plus, ctrl-minus,
space, ctrl-space, arrow buttons, and also the mouse-wheel for navigation,
mark setting, and track definition. Before routing, at least two marks
must be set!