The
GLG Map Server is a sophisticated GIS Map Server that provides the
ability to generate highly detailed real-time map images. These images
serve as a background which provides contextual information; either
static
or dynamic icons may be placed on top of the
images to visualize
positions of moving objects, such as airplanes, delivery vehicles,
patrol cars and other objects of interest.
The GLG Map Server can scale to any level of detail -- from images of
the entire globe to street-level detail of a large metropolitan area,
or a map of an airfield.
Since
the Map Server can handle both image and vector data, elaborately
colored
satellite
earth images can be shown overlaid with crisp vector details on top.
The map
server automatically switches layers
based on the selected zoom thresholds and the current zoom factor,
displaying more detailed images as the user zooms in. A tile cache is used for faster
rendering, reusing the tiles which have already been displayed.

The map server supports orthographic and
rectangular projections. The orthographic
projection may be used to render map image in the
shape
of the globe, while the rectangular
projection renders latitude and longitude grid as straight
lines. The map server also supports map rotation for displaying the map
the way it is visible to a pilot or driver.
The map server provides numerous features to efficiently handle the
ever-changing needs of a modern application. It includes such features
as layering,
alpha-blending and transparency, hierarchical tiling, tile caching,
culling and decluttering for optimized
performance, dynamic attribute thresholding, coordinate conversion and
elevation data queries, and many other features.
Data Formats
The
map server supports a
variety of data in both raster image and vector formats. The vector data
appear crisp and precise
regardless of the resolution of the image and is ideal for
representing such elements as cities and towns, roads
and streets,
populated areas and country boundaries.
Examples of
vector data include US
Census/Tiger data, which provides street-level detail for the
entire continental United States, as well as NIMA's Digital Chart of the World (VMap0 /
VPF) that provides country, shoreline,
political boundary, population, transportation and industry, vegetation
and other data for the entire world. Both datasets are available for use with the GLG Map Server.
The
raster image data can greatly
enhance the look and sophistication of a map image by providing vivid
and colorful details to compliment the additional vector data (roads,
etc.) overlaid on top of the image. One example of raster image data is
a NASA Earth Image dataset, which is frequently
used in various Earth images. The map server provides several special
alpha-blending and transparency modes for overlaying semi-transparent
weather maps on top of other raster and vector layers.
Elevation
data is a special case of the raster image data which can be
used to display elevation as color-coded thresholds or shaded
relief
image. It may also be used to query elevation of a particular point
on
the map.
Web-Server
or Stand-Alone
Library API Usage Mode
The GLG Map Server can operate
both as a web-based GIS Map Server
or stand-alone library API. In
the stand-alone mode, the map
server can be used as a C/C++ library
linked with a program: this mode may be used for applications installed
on local machines that want to avoid using an Internet connection to
receive map images. When linked with an application as a library, the
map server does not require any connections to the outside world,
providing a small and
self-contained
map generation module for real-time
and embedded applications.
In
the web-based server mode, one
map
server set up on a web server can be used
to provide images to multiple Java,
C/C++/C# or ActiveX clients, without a need to
install GIS data locally on each of the client's machines. The
web-based map server complies with the OpenGIS standard.
If the application developer does not want to deal with writing code
for requesting map images from the Map Server when the application
windows gets resized, zoomed or panned, the GLG Toolkit provides an integrated GIS Object that
transparently handles all low-level interaction with the map server.
Integrated Usage
with the
Toolkit
The
Map Server may be used in conjunction with the GLG Toolkit via the
integrated GLG GIS Object, which incorporates maps into a GLG drawing
and
the GLG
Graphics Builder. It can be used in both the C/C++, Java and ActiveX
versions and
is available on various Unix, Linux and Windows platforms.
When the map server is used with the GLG Toolkit, the toolkit's
resource-based interface and simple API provide a convenient way to
interact with the GIS object in the drawing, shielding the user from
the complexity of the Map Server and transparently handling zooming,
panning, resizing, dynamic updates and user interaction.
The
Map Server and the GIS Object provide a revolutionary interface to
create and debug GIS enabled applications, saving weeks of development
time by using the rapid prototyping capabilities of the GLG Graphics
Builder. Instead of painstakingly
editing configuration files and manually testing the Map Server's
output, the output of the Map Server can be tested on the fly
through the point-and-click interface of the Graphics Builder. The Run
mode of the Builder can be used for zooming in and out of the map to
test map appearance and layer switching, as well as selecting the map
area for the application startup.
Using the Builder, the graphical front end of a GIS application can be
designed and prototyped interactively, eliminating the time consuming
edit-and-compile cycles. The layout of such an application can be
completely defined in the Graphics Builder without writing a line of
code, making its customization as easy
as editing simple polygons in the Graphics Builder. The resource
mechanism used in the GLG Toolkit transcends the GIS
Object, allowing resource-based run-time access to its attributes.
Coordinate
Conversion
and Data Query Functions
The map server provides coordinate conversion
functions to facilitate development of interactive GIS applications.
For example, an application might need to display vehicles
or airplanes on top of a map, which requires to convert
latitude/longitude coordinates to the tangible coordinates on screen.
Another example is finding out the latitude/longitude coordinates of
the point on the map defined by the user with the mouse, which requires
the reverse conversion of the screen coordinates to the latitude and
longitude on the map. The map server provides a set of coordinate
conversion functions for both conversions. When the map server is used
inside the toolkit, the integrated GIS Object hides all low-level
interaction with the map server and provides a high-lever conversion
functions which are even easier to use.
The map server also provides functions for querying elevation data at a
particular point on the map, defined in either screen coordinates or
latitude and longitude. The coordinate conversion and elevation data
queries are supported in both the Library API and Web-Server mode. In
the web-server mode, the result of the query is returned in the XML
format as required by the OpenGIS standard.
Map Server Setup and
Usage
One of the many advantages of the GLG Map Server is its
user-friendly
setup. All data to be used with the map server resides in one directory
hierarchy. This data can be stored anywhere and accessed from
anywhere.
Also, there is no need for running a daemon in the background, so use
of
the Map Server is extremely versatile and far-ranging. It can be used
as a Web-based map server, or linked directly into an application
as a C/C++ library. Thus, an application does not require any complex
networking
code to fetch images from an on-line server and can be run in a
stand-alone
and completely self sufficient fashion. Without the
networking
code, the Map Server can be safely used in real-time and embedded environments where
image
generation time must be guaranteed.
When used as a web-based server, the Map Server can serve
images to Java applets in a browser environment. The
online Map Server
AirTraffic Demo demonstrates the web usage.
The use of the Map Server with the GLG Toolkit strikes a balance
between a
small number of heavy-weight yet inherently dynamic GLG objects and
myriads
of light-weight static objects rendered by the map server. The GLG
Toolkit facilitates the
creation of interactive
objects which a user may customize indefinitely, while the Map Server
can
generate map images with millions of points in seconds. The combination
of
the two allows a user to create elaborate and robust GIS applications
with
an unprecedented degree of dynamics.
While many graphics applications are highly dependent on the use of a
windowing system, the GLG Map Server has its own high-performance
rendering
engine. Since it runs independently of the graphical
environment, the
maps
it generates are guaranteed to be identical across all platforms.
Furthermore,
this allows the Map Server to operate on headless servers.