The toolkit features are split into four main categories:
Visualizer - visualization of objects
Utilities - low level utilities common to the toolkit and geo-spatial applications
Database - interfaces to the source datasets
Operations - terrain based calculations
The visualization features of the toolkit are extensive providing the means to render various
Map - display of map datasets, formats
Grid - display of reference grids
Symbol - display of symbology
Terrain - display results of terrain calculations
Each class of visualization contains a collection of widgets for the specific forms of rendering
that are used to build a display. Multiple instances of each widget are possible allowing for a
display to be built up in layers. For example a typical display may include a raster map, various
vector maps, an MGRS reference grid and multiple instances of Mil2525 symbols.
Session - is the component that binds all the widgets together and manages the view
The session component is the interface to control the view. An application can maintain
multiple instances of the session component allowing for multiple map views of the same or
different datasets. The session provides the ability to modify the scale of the view (zooming),
re-center the view (panning), rotating the view and conversions between screen pixel coordinates
and the views geographic coordinates. Applications can feed dynamic information into the session
such as a vehicle location from a GPS unit and have the map view move/rotate as the vehicle moves
Visualization of map data is one of the primary features of the toolkit. There are
four generic styles of map visualization:
Raster - An image
Matrix - Matrix of values, generally values are elevation
Vector - Points, Lines and Polygons
Metadata - Non graphical data associated with geographic locations such as text
Each of these styles has its primary visualization widget but there are other visualizations of
maps that display alternative views of the source datasets. For example a 'matrix' map can
display color shades representing each value in the matrix while a 'slope' map uses the
matrix value as an elevation and renders a color representing the slope between values.
Supported Map Formats
Raster - CADRG, CIB, GeoTIFF, BMP+WIF, TIFF+WIF, JPG+WIF
Matrix - DTEDx (0-5), GeoTIFF (DEM), ADEM (ASCII DEM), BDEM (Binary DEM)
Vector - VMAPx (0-5), DTOPx (0-5), DNC, Shape Files, Tiger Line, DAFIF (Shape Files), RADDWAM
Metadata - Shape Files, Tiger Line, DAFIF (Shape Files), RADDWAM
WSMS.Widget.Map.Raster is the most general purpose map as the map can be any style of raster
image with some form of geo-referencing to position it on the world. These examples show various
raster images sources including Terra-server Images, CADRG, GeoTIFF and BMP images.
WSMS.Widget.Map.Matrix provides the means to display matrices of values. The most common
form of matrix data is digital elevation models. This widget provides a few variations on
how this data is visualized ranging from colors representing the values through a 3D mesh
showing the shape to a 3D mesh textured with other map components such as raster maps and or
grid and symbols.
WSMS.Widget.Map.Vector is used to display geo-positioned vector information such as
points, lines and polygons. This is a very useful form of map data as it can be viewed at any
scale without degradation of image quality. Another benefit is that most vector datasets come
in layers where one layer may represent highways, paved roads or streams. This allows a display
to be very tailored to show just the datasets of interest.
WSMS.Widget.Map.Metadata displays textual information associated with geographic locations.
Each dataset can have various fields of information and this widget provides the means to extract
information from the fields and render it onto the display in its geograhic location. This example
shows the 'No Go' value associated with various polygons.
WSMS.Widget.Map.Coverage is used to show where the application has coverage for
datasets. This widget renders a rectangle around each tile of data that exists in an
associated database, thus the display can be viewed at very large scales without loss of
performance to see where various datasets are located. By using multiple instances of this
map and different colors to represent each of the different map layers a complete picture
of dataset coverage is formed.
WSMS.Widget.Map.Sight displays line of sight from a geographic location in a ring
for a specified radius. Non-Visible areas are blanked out or as in this example blended with
a color leaving the visible areas as normal. This widget can be associated with a moving location
giving a very dynamic display of visibility.
WSMS.Widget.Map.Banding primarily a use for aviation as it shows very quickly the
elevation bands above, below and at the same elevation as self. This map is normally
linked to a vehicle and updates as the vehicle moves, providing a very dynamic display
of safe and unsafe elevation bands.
WSMS.Widget.Map.Slope displays color values for the slope values between elevations.
Grids are any object that can be utilized as a reference system, this includes such things as
a standard Latitude/Longitude grid to less obvious things such as a north indicator. Grids
are generally overlayed onto other objects such as maps to provide a means to orient the viewer.
WSMS.Widget.Grid.Geodetic is a latitude/longitude grid and very useful for reference
on large scale views, such as the country or continent scale. This example shows the same
grid but using two different projections, a Cartesian projection which maps to the CADRG projection
scheme and an Azimuthal projection.
WSMS.Widget.Grid.UTM displays a meters reference system that is split into zones.
WSMS.Widget.Grid.MGRS displays the Military Grid Reference System which is related to
the UTM grid but is further broken down into 100K squares which are given letter prefixes.
WSMS.Widget.Grid.Meters displays a constant meters offset grid from the center of the
display. So as the view is re-centered the grid remains the same allowing distances to be
estimated from the center to anywhere on the display.
WSMS.Widget.Grid.Rings is similar to the meters grid but renders meters distance
rings from a specified location, providing a means to estimate distances.
WSMS.Widget.Grid.North is a reference indicator showing where magnetic north is
in relation to the current view orientation.
WSMS.Widget.Grid.Scale is a reference indicator for the scale at which the map is
being viewed. Digital maps can be viewed at potentially any scale so this widget dynamically
changes as the view scale changes to show the approximate unit scale for the view.
WSMS.Widget.Grid.Distance is used to display a single distance measure between two
locations showing major and minor distance gradations.
Symbology is what makes a map display come alive. Symbols come in all sorts of shapes, sizes and
forms and also tend to be dynamic in that they move around. So there are many symbol widgets that
range from very simple icon style symbols to the very complex Mil-Std-2525x style symbols.
WSMS.Widget.Symbol.Icon is the simplest of all the symbols in that they have a geographic
center location, shape, color and size. This example shows various icon shape symbols that can be
used to represent anything.
WSMS.Widget.Symbol.Raster is also a very simple symbol form that provides the means to
associate a user created image with a geographic location and have it be rendered by the toolkit.
These symbols can be rendered as is or stretched to fit a quadrilateral, both forms are shown in
WSMS.Widget.Symbol.Mil2525 is the most complex of the symbols and provides a means to
render the symbology described in Mil-Std-2525a and Mil-Std-2525b. This widget includes the
display of single point warfighter symbols through to the highly complex multi-point tactical
symbols. The example screens show a range of Mil2525 symbol forms.
WSMS.Widget.Symbol.Primitive is a very general purpose symbol which that allows an
application to display any sort of line or polygon shape. The example shows lines, polygons and
the yellow squares are an attribute that highlights the primitive vertices which can be useful for
shape editing or simple grab points.
WSMS.Widget.Symbol.Text is a symbol that allows an application to place text information
at geographic locations.
WSMS.Widget.Symbol.Distance is similar to the grid distance widget but displays the distances
between a series of connected locations.
This class of widget is essentially a set of convenience widgets that provide a mechanism to display
the results from various operations calculations. They utilize the WSMS.Widget.Symbol.Primitive
widget to render the output but wrap the primitive widget and the calculation calls in a convenient
form. For applications that perform their own terrain calculations such as a route planner the
application would not use these widgets but instead feed the application route planner result directly
into the WSMS.Widget.Symbol.Primitive for rendering.
WSMS.Widget.Terrain.Ranges performs the WSMS.Terrain.Ranges calculation and renders the result
showing the limit of travel a specified vehicle model can move in a specified amount of time given
the underlying terrain shape in any direction.
WSMS.Widget.Terrain.Sight performs the WSMS.Terrain.Sight calculation between two locations
and renders the result as either the visible style or the non-visible style. In this example the red
lines indicate the visible and green the non-visible.
WSMS.Widget.Terrain.Path performs the WSMS.Terrain.Path calculation for a given set of
way-points and renders the resultant path.
WSMS.Widget.Terrain.Profile performs the WSMS.Terrain.Profile calculation for a given set of
way-points and renders the elevation profile for the route overlayed on the display.
Provides to an application many of the underlying operations upon which the higher level toolkit components
are built. This includes such things as coordinate conversions, projections, intersection tests, area
calculations and the error subsystem.
Database exports all the interfaces to manage and query datasets of Geo-Spatial information.
This is the starting framework upon which can be built the means to query various datasets for information in
a common and consistent manner. Exported is the ability to query datasets for geographically located
matrix data, geographically located vector feature data, geographically located raster images and metadata
associated with geographic elements.
Exports various calculations that require the analysis of terrain information to determine a result. This
includes such things as route planning, inter-visibility, terrain profile determination and vehicle range.