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 forms of:
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 and rotates.


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
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 wsms wsms wsms 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 wsms wsms wsms 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 wsms wsms 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 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 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 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 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 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 wsms 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 WSMS.Widget.Grid.UTM displays a meters reference system that is split into zones.

wsms 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 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 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 WSMS.Widget.Grid.North is a reference indicator showing where magnetic north is in relation to the current view orientation.

wsms 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 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 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 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 the example.

wsms wsms wsms wsms wsms 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 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 WSMS.Widget.Symbol.Text is a symbol that allows an application to place text information at geographic locations.

wsms 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 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 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 WSMS.Widget.Terrain.Path performs the WSMS.Terrain.Path calculation for a given set of way-points and renders the resultant path.

wsms 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.