Layers

WMS
worldKit supports WMS. WMS is a protocol for supplying a large amount of map imagery over the web; for instance, worldwide satellite coverage.

To set up WMS in worldKit, take the URL of a WMS request and remove the "width" "height" and "bbox" parameters. Set the value of the <wms> config option to this modified url. A unique "id" attribute is also required. A "category" attribute is optional, and can be used to set the visibility of the WMS layer. "width" and "height" attributes optionally set the size of requested tiles; by default they are the size of the map. "maxtiledeg" sets the degrees of longitude per tile, at the highest level; it's used mainly by OnEarth (below) and by default is 360. "minview" and "maxview" attributes optionally set the scale range where the WMS is visible.

Recommended OnEarth configuration listed in the next section. Many other WMS sources are listed at the World Wind Wiki. Example configuration is below.

<wms id="landsat"> http://onearth.jpl.nasa.gov/wms.cgi?request=GetMap&layers=modis,global_mosaic&styles=&srs=EPSG:4326&format=image/jpeg </wms>
wms can result in many simultaneous image requests. <maximgload> sets the maximum number of images downloading at one time. The default is 10. If exceeded, zoom and pan is frozen until the download count drops below this limit.
OnEarth Optimized WMS
OnEarth is a publicly accessible WMS hosted by NASA, serving high resolution (15m/pixel) imagery produced from the Landsat7 satellite. OnEarth also serves Blue Marble Next Generation, daily snapshots from MODIS satellites, and SRTM topography.

OnEarth is an incredibly valuable resource for open and free web mapping. An optimized tile cache of OnEarth imagery has been assembled, and with proper configuration, worldKit can access this high speed cache. The results are, well, awesome! If global imagery required, the recommendation is to use one of the options below. Do not modify your configuration from the ones seen here -- OnEarth will be overloaded unnecessarily and can potentially result in service disruptions.

First, for Global Landsat Imagery in Pseudocolor..

<wms maxtiledeg="256" width="512" height="512" id="WMSGM"> http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=global_mosaic&srs=EPSG:4326&format=image/jpeg&styles=</wms> <maxscale>8192</maxscale>
For the same in the visual spectrum..
<wms maxtiledeg="256" width="512" height="512" id="WMSGM"> http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=global_mosaic&srs=EPSG:4326&format=image/jpeg&styles=visual</wms> <maxscale>8192</maxscale>
Blue Marble Next Generation is a beautiful, cloud free, 500 meter/pixel imagery set.
<wms maxtiledeg="256" width="480" height="480" id="BMNG"> http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=BMNG&srs=EPSG:4326&format=image/jpeg&styles=
</wms>
<maxscale>256</maxscale>
Blue Marble imagery is available for each month of the year; simply add the month to the styles argument of the WMS url. [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
<wms maxtiledeg="256" width="480" height="480" id="BMNG"> http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=BMNG&srs=EPSG:4326&format=image/jpeg&styles=Jan
</wms>
<maxscale>256</maxscale>
MODIS Rapid Response provides rapid access to daily updates of 250m satellite imagery. This distribution has proved valuable for accessing active fire information, and other natural hazards like hurricanes.

There are two satellites with the MODIS instruments, Aqua and Terra. A number of mapping products are available.

Replace the "layers" argument in the config settings below with the mapping option you prefer.
<wms maxtiledeg="256" width="512" height="512" id="daily_aqua"> http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=daily_aqua&srs=EPSG:4326&format=image/jpeg&styles=
</wms>
<maxscale>512</maxscale>
TileMap
Tiling schemes for map data sources is a hot topic among open source geo developers. Tiling speeds up access to WMS and other sources dramatically. worldKit already supports tiling schemes for OnEarth, as above. Tile Map Service is a specification under active development, and worldKit now supports the global geodetic profile. A demo is posted here.

Configure a TMS with <tilemap>. An "id" attribute, unique to all configured layers & WMS servers, is required. "global_profile" currently must be set to "1". The value of the option is a URL of a TMS server.

<tilemap id="test" global_profile="1">http://mapserver.refractions.net/cgi-bin/tms/1.0.0/global_mosaic/</tilemap>
Layers
To overlay semi-transparent (or any) images on top of the base map, and below annotations, use the swflayer tag in the config.xml file. The value of this tag is a relative or absolute url of a swf, png, gif or jpeg file. Conversion utilities and software such as Adobe Illustrator, and Flash of course, can output swf files.

A swf layer must be assigned "id", "width", and "height" attributes. The "id" must be unique among all the swflayers, and is used to switch a layer's visibility in the Javascript API JLayComm variable. To import multiple layers, use a single swflayer tag for each. The width and height of the swf file must be passed as attributes to the tag (due to limitations in Flash).

Optional attributes control where and how the layer is displayed.

For example...

<swflayer id="road" width="400" height="200">highways.swf</swflayer>
<swflayer id="bikepath" width="750" height="375" extent="-122.45,37.6,-122.42,37.98" minscale="4" maxscale="32" category="sustainable" preload="false">bikepath.jpg</swflayer>
Templates
Templates can be configured, so that under defined regions and scales of the map, an image is requested from a mapping server covering the current viewing area This is basically what supports WMS; Templates allow finer grain control of this feature.

Each swftemplate divides a region into a number of equal sized tiles. As the map is panned and zoomed, each swftemplate is checked to see if a new swflayer should be requested and displayed. The value of <swftemplate> is the url of a WMS cgi, with the values of the bounding box replaced by "WEST,SOUTH,EAST,NORTH", or a center point with "LAT,LON". All attributes are required, except "category".

For example, the following swftemplate uses the OnEarth Landsat WMS. It covers the entire globe, in 2x2 tiles, at zoom levels 1 and greater. In practice, remove linebreaks from the value of this option.
<swftemplate category="landsat" id="landsat" tilewidth="376" tileheight="188" extent="-180,-90,180,90" spanx="2" spany="2" minview="1" maxview="50000" minscale="1" maxscale="2"> http://onearth.jpl.nasa.gov/wms.cgi?request=GetMap&width=376&height=188&layers=modis,global_mosaic &styles=&srs=EPSG:4326&format=image/jpeg&bbox=WEST,SOUTH,EAST,NORTH</swftemplate>
swftemplate can result in many simultaneous image requests. <maximgload> sets the maximum number of images downloading at one time. If exceeded, zoom and pan is frozen until the download count drops below this limit.