The NASA WorldWind Web Mapping Service (WMS) is an implementation of the Open GIS Consortium's (OGC) WMS specification, version 1.3. It is currently implemented as a stand-alone java application, and as such, is rather lightweight to deploy and run. It is however architected to look much like a standard J2EE container environment, whereby a servlet object acts upon request/response objects that emulate the J2EE HttpServletRequest and HttpServletResponse classes. The intent of this design is to facilitate a straightforward code migration if the services of a full J2EE container environment become warranted.

The core WMS code provides mechanisms for validating and responding to WMS requests. All policies and capabilities regarding the sources and organization of geospatial data to be served are made by way of plugin classes that are implementations of the {@link gov.nasa.worldwind.servers.wms.MapGenerator} interface. As of this release of the WMS, there are example MapGenerators that serve the NASA Blue Marble next-generation high-resolution imagery, as well as NITF raster data (cadrg and CIB).

Sources of geospatial data are configured into the WMS by adding <MapSource> elements to the WEB-INF/config.xml file. <MapSource> elements must specify a name, a description, a root-directory under which the geospatial data are located (directly or indirectly), and the name of the MapGenerator class that generates the requested maps. Additionally, a set of Java-style properties may be included in the <MapSource> element, which are presumed to be specific to the given MapGenerator.

An example <MapSource> specification for the Blue Marble Generator is shown below. As distributed, the Blue Marble NG high-resolution series have a regular naming scheme that identifies the resolution, the depicted features, and an implicit geo-referencing. The MapGenerator expects properties that specify substrings of this name scheme for the particular data series, in this example, the 21600x21600 imagery with topographical and bathyrithmic features:

        <mapsource name="bmng200401" title="BlueMarbleNG 01/2004">
             <description keywords="NASA; Blue Marble; Global Imagery; 2004">Nasa's BlueMarbleNG, 2004</description>
             <root-dir>/data/bluemarble/bm200401</root-dir>
             <class>gov.nasa.worldwind.servers.wms.generators.BlueMarbleNG500MGenerator</class>
             <property name="BlueMarble500M.defaultTime" value="200401"/>
             <property name="BlueMarble500M.namingscheme.prefix" value="world.topo.bathy" />
             <property name="BlueMarble500M.namingscheme.suffix" value="gtif" />
         </mapsource>
    

NOTE: This Blue Marble MapGenerator implementation uses utility programs from GDAL to extract sub-regions from the source images; see config.xml for how the location of the GDAL installation on the local system can be configured into the WMS. It is further expected that the original Blue Marble images have been pre-processed to convert into GeoTiff format, with explicit georeferencing added to the files. The GDAL utility gdal_translate can be used to perform both steps.