The Map Server
uses ASCII setup files which use simple "TOKEN=
value"
syntax and may be edited using any text editor. All information for one
layer is kept in the layer information file (LIF). The LIF files
for all layers are listed in the server data file (SDF).
The following lists a content of a simple LIF file:
TYPE=IMAGE IMAGE
TYPE=JPEG TRANS
TYPE=OPAQUE FILENAME=earth.jpg #
Image extent in lat/lon: whole earth. Image size in pixels is
auto-detected. MIN
LON=-180 MAX
LON=180 MIN
LAT=-90 MAX
LAT=90
Where can I find sample
setup files?
The Map Server
provides sample datasets with all setup files, allowing to use it out
of the box. The server SDF setup files for the sample datasets are
located in the map_data
directory of the Map
Server installation, and the layer LIF files are located in map_data/layers
directory.
Can I reuse layer setup files (LIFs)
between different datasets?
Yes. The map
server setup files use modular design with all layer information
encapsulated in the layer's LIF file. Once defined, the layer's LIF
file may be
used in multiple datasets. For example, the sample datasets provided
with the map server reuse the earth
and grid layers.
The Map Server
setup files also support "INCLUDE=filename" directive that allows
to share portions of the setup information between different layer LIF
files.
Can I use the Map
Server to generate map images from a command line?
Yes, the Map
Server executable provides a command-line interface, which can be used
for testing, as well as generating images without web server setup.
Refer to the
Command
Line Options chapter of the GLG Map Server
Reference Manual for more information. Click here for
examples of command-line options.
Can I test the Map Server
output without setting it up on a web server?
Yes, the command
line options may be used as described in the previous answer. Click here for examples of
command-line options.
How do I setup the GLG
Map Server on a web server?
The GLG Map
Server
is setup using either the CGI
or FastCGI methods. The
run-time
environment
is very compact, with no dependencies on external libraries or drivers.
The only things that are required in the cgi-bin directory of the web server
are:
the map
server's
executable, GlmMap
the
setup
script, GlmScript
the map data directory containing GIS datasets
The map data
directory may be moved outside the cgi-bin
directory and pointed to by
the setup script. For complete setup
instructions, refer to the Appendix
A: Web Server Installation Notes of the GLG Map
Server
Reference Manual.
How does a sample http map
request look like?
Sample http map requests
The GLG
Map
Server uses OpenGIS WMS standard for the http map server requests. The
following lists a few sample http requests for the Unix/Linux environment:
// World map in orthographic
projection
with elevation and political boundaries http://www.myserver.com/cgi-bin/GlmScript?VERSION=1.3.0&REQUEST=GetMap&SRS=AUTO2:42003,1,10,40&WIDTH=700&HEIGHT=600&BBOX=-6500000.,-6500000.,6500000.,6500000.&BGCOLOR=0x0&STYLES=default&FORMAT=image/jpeg&LAYERS=earth,shadow,political&STRETCH=0
//
World map in rectangular projection with elevation and political boundaries http://www.myserver.com/cgi-bin/GlmScript?VERSION=1.1.0&REQUEST=GetMap&SRS=EPSG:4326&WIDTH=800&HEIGHT=600&BBOX=-180,-90,180,90&BGCOLOR=0x0&STYLES=default&FORMAT=image/jpeg&LAYERS=earth,shadow,political&STRETCH=1
//
USA map in orthographic projection with elevation, state outlines and
grid http://www.myserver.com/cgi-bin/GlmScript?VERSION=1.3.0&REQUEST=GetMap&SRS=AUTO2:42003,1.,-97,38&WIDTH=700&HEIGHT=700&BBOX=-2500000,-2500000,2500000,2500000&BGCOLOR=0x0&STYLES=default&FORMAT=image/jpeg&LAYERS=earth,shadow,grid,states&STRETCH=0
On Windows, the
script name will have .pl
extension added, and cgi-bin
directory will be named Scripts
if IIS is used instead of apache:
// World map in orthographic
projection with elevation and
political
boundaries http://www.myserver.com/Scripts/GlmScript.pl?VERSION=1.3.0&REQUEST=GetMap&SRS=AUTO2:42003,1,10,40&WIDTH=700&HEIGHT=600&BBOX=-6500000.,-6500000.,6500000.,6500000.&BGCOLOR=0x0&STYLES=default&FORMAT=image/jpeg&LAYERS=earth,shadow,political&STRETCH=0
These examples
use a sample dataset provided with the Map Server.
The GlmScript
may be renamed as required; multiple copies of the script (i.e. MapScript1, MapScript2, etc.) may
be used
to generate map images using different datasets from one web server.
Command-line
examples
The following
are the commands to produce the same map images from the command line,
without the web server setup. The images will be saved in the sample.jpg file. A proper path to
the GlmMap executable and sample.sdf file may be required.
# World map in orthographic
projection
with elevation and political boundaries "GlmMap
-generate -dataset sample.sdf -output sample.jpg -oGISreq
VERSION=1.3.0&REQUEST=GetMap&SRS=AUTO2:42003,1,10,40&WIDTH=700&HEIGHT=600&BBOX=-6500000.,-6500000.,6500000.,6500000.&BGCOLOR=0x0&STYLES=default&FORMAT=image/jpeg&LAYERS=earth,shadow,political&STRETCH=0"
#
World map in rectangular projection with elevation and political boundaries "GlmMap
-generate -dataset sample.sdf -output sample.jpg -oGISreq
VERSION=1.1.0&REQUEST=GetMap&SRS=EPSG:4326&WIDTH=800&HEIGHT=600&BBOX=-180,-90,180,90&BGCOLOR=0x0&STYLES=default&FORMAT=image/jpeg&LAYERS=earth,shadow,political&STRETCH=1"
#
USA map in orthographic projection with elevation, state outlines and
grid "GlmMap
-generate -dataset sample.sdf -output sample.jpg -oGISreq
VERSION=1.3.0&REQUEST=GetMap&SRS=AUTO2:42003,1.,-97,38&WIDTH=700&HEIGHT=700&BBOX=-2500000,-2500000,2500000,2500000&BGCOLOR=0x0&STYLES=default&FORMAT=image/jpeg&LAYERS=earth,shadow,grid,states&STRETCH=0"
Are there any tools for
interactive testing and prototyping?
A sample HTML file located in
the map_server directory, glg_map_display.html,
provides an example of an HTML and JavaScript-based GIS viewer. It allows the user to
zoom and pan the map, change projection, select map layers to be
displayed and change various map parameters. When the user clicks on
the map, the script uses AJAX to query the map server and display the
lat/lon coordinates of the mouse click. The HTML viewer requires
setting up the GLG Map Server on a web server. To use the viewer, edit
the map_server_url and map_script parameters in the
HTML file to point to your web server setup.
The GLG
Graphics Builder may be used to prototype, test and debug
Map Server setup interactively without setting up a web server. The
Graphics Builder enables
you to create a GIS
object to display a map and change all parameters of the map
request interactively. It also allows interactive
zooming and panning to test automatic layer switching, as well as
querying elevation and lat/lon coordinates of a selected point at the
cursor position.
To prototype,
start the Graphics Builder (or Demo Builder) and follow
the following
steps:
Select File/New
Widget
from the main menu.
Create a GIS Object by selecting a map icon
from
the Object
Palette on the left (use tooltips to find GIS Object).
Define the GIS Object's size by selecting
two points in the
drawing (click on the left mouse button to select the first point, move
the mouse, then select the second point).
Press OK to select the default dataset: the GIS
Object will appear
with a map display.
To resize the map, move the control points at the
corners of the
GIS Object with the mouse.
Press the right mouse button and select
Properties, then try
changing the GIS Projection
attribute.
Change the value of the GIS Layers attribute from "default"
to "default,grid" to display
an additional grid layer.
Try changing the values of the GIS Center and GIS Extent attributes.
Try increasing the value of the GISVerbosity attribute. Notice an
increase
in the debugging
information output when you reset the drawing using File/ResetDrawing option from the
main menu.
Save the drawing for future use by selecting File/Save from the main menu.
Refer to the GLG
Map Server Tutorial for more information and details of
interactive
zooming and panning in prototyping mode.
Map Server GIS Data FAQ
What GIS data is
provided with the Map Server?
The GLG Map
Server comes with a few datasets, so that you can start using the map
server right away. The following datasets are provided:
NASA's Visible Earth image (tiled 8192x4096 image
and a smaller fallback image)
The World Political Boundaries layer of the
Digital
Chart of the World (VMAP0) dataset
The US States layer of the US Census Tiger
dataset
US Cities dataset
These datasets
may be used as a background or high-level overview, while more detailed
datasets of particular areas of interest may be overlayed on top,
becoming visible when the map is zoomed in to view these areas.
What kind of data can I
use with the GLG Map Server?
The GLG Map
Server supports both vector and raster data. TIFF, GeoTIFF and JPEG
formats are supported natively. All other raster formats (including
NITF, CADRG, DEM, DTED, etc.) can be converted to one of the native
formats using gdal. The conversion
is done at the setup time, to avoid performance penalties and
dependencies on numerous gdal support drivers at the map generation
run-time. A gdal-based raster conversion utility is provided for the
Linux platform.
For
vector data, the Map
Server's open vector format (GVF) is used
natively. The shape
files are also supported and may be used either directly or
converted to the GVF format using a supplied conversion utility. Other
vector formats are supported using filters. Filters for most common GIS
vector formats, such as shorelines,
CIA World DataBank (WDB), and others, are provided, and the rest of the
vector formats may be imported using gdal
converters.
While the vector data filters can be used by the Map Server at
run-time, the data conversion may be performed at the setup time to
optimize the run-time performance. The
source code for the filters is provided in the map_server/convert directory of the
map server installation.
The Map Server uses unprojected data in lat/lon and projects them to a
requested projection on the fly. Map rotation is performed on the fly
as well, if the ANGLE parameter of the map request is different from
zero.
Where can I find more
GIS data?
There are
numerous sources of free GIS data. One of them is GIS Data Depot
(http://data.geocomm.com), but Google search for "free GIS data" yields
many more. There are also numerous companies that sell various GIS
datasets on commercial terms.
The Digital
Chart of the World and Census
2000 TIGER/Line datasets may be purchased
from Generic Logic. The Digital
Chart of the World contains 2GB of
the world coverage data, such as political, state and provincial
boundaries, major roads, railroads, airports, lakes and rivers,
populated areas, vegetation, elevation contours and other coverage.
The Census
2000 TIGER/Line dataset contains
10GB of data containing the street-level details for the entire United
States, as well as
states, countries, subcounties, highways, water features and populated
areas coverages. The datasets use hierarchical tiling to increase map
generation performance, and come with a complete set of setup files,
ready to be used with the GLG Map Server.
How do I use shape files with the
GLG
Map Server?
The shape files may be used
directly by specifying them as the source of data in the FILENAME
parameter of the LIF file:
The VECTOR FORMAT parameter
is optional. If it is omitted, the map server will try to determine the
data format from the filename's extension.
For maximum performance, shape files may be converted to an easier
to read GVF format at the setup time, to avoid costly shape
file parsing at the map generation run-time. To convert shape files to GVF
format, use the shp2gvf shape
file conversion utility described in the Tools and Utilities chapter of the GLG
Map Server
Reference Manual. The shape file conversion
utility also provides
options for processing large number of shape file located in a
directory tree.
How do I use XYZ
raster format with the GLG Map Server?
The raster
formats that are not supported natively are imported using gdal as
describedin the following section.
How do I use elevation data
(DEM/DTED)?
The provided
gdal-based raster setup utility converts DEM, DTED and other elevation
data files to 16-bit single-channel TIFF file, which is then used in
the layer's LIF file the same way as other TIFF files. The LIF's ELEVATION
MODE
attribute is set to the desired elevation mode: 1 to be used as data
for elevation queries, or 2 to display elevation using a selected color
threshold table. The color threshold table for color display mode is
defined in LIF with the PIXEL
MAP
attribute. Refer to GLG
Map Server
Reference Manual for more information.
For tiled
elevation datasets with large number of data files in a directory tree,
the raster setup utility supports recursive mode for processing all
files at once. The LIF generation utility described in the following section
may be used to
automatically generate setup files for such datasets.
Raster elevation data may also be converted into shaded relief images
which are used to show elevation as a three-dimensional shadow.
How do I use shaded
relief images?
Shaded relief
images are generated from elevation data and used as bump maps textures
overlayed on top of the map image. The LIF setup is the same as for
other image files, with the addition of the TRANS TYPE and ALPHA attribute:
TRANS
TYPE="BUMP MAP" #
With BUMP MAPs, ALPHA >1. is acceptable ALPHA=5.
The TRANS TYPE
attribute defines the blending function for combining the layer with
the background: in this case, the image is used as a bump map applied
to the layers beneath it. The ALPHA
attribute controls
the contrast of the shadows.
Where can I find
documentation for the GVF vector format?
GVF is an open
ASCII vector format described in the GVF Filters and Data Converters
chapter of the GLG
Map Server
Reference Manual. The source code of simple utility
functions to write GLM format is provided in the Gvf.c file as a
resource for writing custom conversion filters.
The ASCII version of the GVF format is cross-platform. The binary
version of the GVF format may also be used for increasing map
generation performance. The Map Server includes utility for converting
between ASCII to BINARY versions of the GVF files. The conversion
utility automatically handles hierarchical trees for tiled vector
datasets. Refer to theTools and Utilities chapter of the GLG
Map Server
Reference Manualfor
more information
on the conversion utility.
How
do I tile large datasets?
Large datasets
may be split into smaller tiles to optimize rendering performance. When
the map is zoomed on a particular area, only the tiles that are
required for rendering the area will be loaded, yielding huge savings
in map generation time and memory consumption. The Map Server maintains
a tile cache, reusing the tiles from one request to another,
eliminating the need to repeatedly read data when the same tile is used
in several map generation requests. The maximum size of the time cache
can be controlled on by-layer basis to limit the Map Server's memory
footprint in order to avoid swapping. The Map Server also supports
hierarchical tiling for datasets that use directory structure to
encapsulate its subsets and increase the speed of the tile search. The
Map Server also provides a fallback layer mechanism for displaying a
less-detailed layer when a maximum number of tiles is exceeded.
The GLG Map Server provides tiling
utilities for both raster and vector
data. Raster imaged may be split into smaller rectangular tiles. For
vector datasets, the data may also be split into subsets based on a
value of a particular attribute. For example, a dataset of cities and
towns may be split into several datasets based on the population, so
that large cities are saved in a one layer and small towns in another.
Another option is splitting large shorelines into smaller segments to
optimize performance when only part of the shoreline is visible.
Refer to theTools and Utilities chapter of the GLG
Map Server
Reference Manualfor more information on the Map
Server's tiling utilities.
How do I setup data
sets with large number of data files?
Many large GIS
datasets contain a big number of data files, located in one directory
or kept in subdirectories of a directory tree. The Digital
Chart of the World and Census 2000 TIGER/Line datasets are good
examples of directory-based datasets.
It would be a quite tedious and time consuming process to generate
setup files for such datasets by hand. GLG Map Server provides
utilities that allow to combine a collection of such data files into
one map server layer and automatically generate setup files.
For vector data, convert the
data files to GVF format as described in the previous sections for shape files or other vector formats first.
For the shape files, the shp2glm
utility provides recursive options for
converting all files in a directory tree that match a specified
pattern. After converting the data files to the GVF format, use the LIF
generation utility described in the Tools and Utilities
chapter of the GLG
Map Server
Reference Manual.
The LIF generation utility traverses a
directory tree and process all files matching a specified filename
pattern, extracting GIS extent information and generating setup file
for each data file. The utility also combines GIS extents of all files
in each subdirectory and generates an aggregate setup file for each
subdirectory. The setup file generated for the top level directory of
the dataset is then listed in the layer's setup file (LIF):
# Include generated top level sub-LIF
(SLF) into layer's LIF
TILES SUBLIF=dataset_name.slf
For raster data, a gdal-based
raster setup utility (described in the Tools and Utilities chapter of the GLG Map Server
Reference Manual) is
provided to
simplify the conversion process
when large number of raster files needs to be converted. It traverses a
directory tree and converts all files matching a specified filename
pattern. It also extracts georeferencing information from the raster
files. After that, the LIF generation utility described above is used
to automatically generate setup files. The top level generated setup
file is then included into the layer's LIF file.
For both vector and raster data, the LIF file contains only layer
attributes that do not depend on the actual GIS data provided in the
data files. If GIS data is changed or updated, the LIF generation
utility may be re-run at any time without a need to change the content
of the LIF file.
What if data may change on the fly,
such as weather maps?
The GLG Map
Server provides redirection and locking features which guarantee data
consistency for volatile data. The Map Server will be using the old
version of the data until the new version is completely updated, after
which the old version may be safely deleted. The locking mechanism
locks the map server for a brief moment while the data link is
switched from old to new data, preventing the read errors.
Does Generic Logic
provide
consulting services for handling custom requests?
Yes, absolutely.
Our consulting services division will be happy to assist you with any
custom requests. Click
here for contact
information.
Map Server
Features HOWTO
Does GLG Map Server comply with
the
OpenGIS WMS standard?
Yes. The GLG Map
Server complies with the following OpenGIS WMS standards:
Yes. The GLG Map
Server engine is designed for 24 bit TrueColor systems and does not
impose any performance penalties for using 24 bit (3 x 8 bit RGB) color.
Does it support TrueType
fonts and Unicode?
The
answer to both questions is yes. TrueType
fonts and Unicode are supported using FreeType font engine. In addition
to TrueType fonts, vector fonts are also supported.
How do I add a new font?
By default, all
fonts are located in the map_data/fonts
directory of the Map
Server installation. To add a new font, copy the font file into the fonts directory and add a
line into
the SDF file. For example:
IMAGE
FONT=moderna
MgOpenModernaRegular.ttf
defines moderna font name
alias for the MgOpenModernaRegular.ttf
font file.
How do I define
semi-transparent layers?
Just set
the ALPHA attribute in the
LIF
file to a value between 0 and 1 to render the layer as
semi-transparent. Place the transparent layer on top of other layers.
Both raster and vector layers may be semi-transparent. However,
detailed vector layers may require lower ALPHA settings due to multiple
vector features rendering at the same image pixels.
Various OpenGL-style blending functions ("TRANS TYPE" LIF attribute) are
provided for blending weather maps, shaded relief images and images
with transparent colors. Refer to the Configuration
File Format: TRANS TYPE chapter of the GLG
Map Server
Reference Manual
for more information.
How do I obtain lat/lon
coordinates of a mouse click?
The GLG Map
Server provides coordinate conversion capabilities that are often used
to convert x/y image coordinates of the mouse click to lat/lon
coordinates on the map.
To convert
screen coordinates of the point to lat/lon, use the GetFeatureInfo request type with INFO_TYPE=lat_lon. The I and J parameters of the
request supply the Y and Y image coordinates of the point of interest,
and an optional INFO_FORMAT
parameter may be set
to
either text/xml or text/plain
to
specify a desired
output format. The map image
parameters (i.e. with and height, projection, extent, etc.) needs to be
supplied as well in order to convert point's X/Y coordinates to lat/lon
location. The map server will
respond with the lat/lon
coordinates of the point.
For example, the
following sample coordinate conversion request:
The
following command will produce the same output from the command line (a
proper path to the GlmMap
executable and sample.sdf
file may be required):
GlmMap
-generate -dataset sample.sdf -oGISreq
"VERSION=1.3.0&REQUEST=GetFeatureInfo&SRS=AUTO:42003,9001,-97.,38.&WIDTH=400&HEIGHT=400&BBOX=-2500000,-2500000,2500000,2500000&STRETCH=0&QUERY_LAYERS=default&INFO_TYPE=lat_lon&INFO_FORMAT=text/xml&I=200&J=200" Note: A query request
is
used with the CGI/FastCGI
version of the map server. Refer to the Map Server API chapter of the GLG
Map Server
Reference Manual
for information on the Map Server library methods for querying
elevation.
How do I query elevation of a
point?
Elevation Query for a
Lat/Lon location
To obtain elevation
of a point defined by its lat/lon coordinates, the GetLocationInfo request is used
with
INFO_TYPE=elevation. The LON_LAT parameter provides
coordinates of the point of interest. An optional INFO_FORMAT parameter may be set
to
either text/xml or text/plain
to
specify a desired
output format.
For
example, the
following request for a point at the sea level:
Note: This example uses elevation layer which is not
defined in the sample dataset. The
following command will produce the same output from the command line (a
proper path to
the GlmMap executable and sample.sdf file may be required):
GlmMap
-generate -dataset sample.sdf -oGISreq
"VERSION=1.3.0&REQUEST=GetLocationInfo&QUERY_LAYERS=elevation&INFO_TYPE=elevation&INFO_FORMAT=text/xml&LON_LAT=10.,-30." Note: A query request
is
used with the CGI/FastCGI
version of the map server. Refer to the Map Server API chapter of the GLG
Map Server
Reference Manual
for information on the Map Server library methods for querying
elevation.
Elevation
Query for an
X/Y image point
To
obtain
elevation of a point defined by a pair of x/y image coordinates , the GetFeatureInfo request is used
instead of GetLocationInfo.
The point of
interests is defined by its X/Y image coordinates (I and J requests parameters). The map
image parameters (i.e. with and height, projection, extent, etc.) needs
to be supplied as well in order to convert point's X/Y coordinates to
lat/lon location:
or from the command line (a proper path to
the GlmMap executable and sample.sdf file may be required):
GlmMap
-generate -dataset sample.sdf -oGISreq
"VERSION=1.3.0&REQUEST=GetFeatureInfo&SRS=AUTO:42003,9001,-97.,38.&WIDTH=400&HEIGHT=400&BBOX=-2500000,-2500000,2500000,2500000&STRETCH=0&QUERY_LAYERS=default&INFO_TYPE=elevation&INFO_FORMAT=text/xml&I=200&J=200" Note:
A query request
is
used with the CGI/FastCGI
version of the map server. Refer to the Map Server API chapter of the GLG
Map Server
Reference Manual
for information on the Map Server library methods for querying
elevation.
How do I set up layers
to show more details when the map is zoomed in?
The MIN_ZOOM and MAX_ZOOM layer attributes in
the LIF file control if layer is active for the current zoom level. The
layer is switched off if the current zoom is outside of the defined
zoom limits. By setting matching zoom limits, several layers may be
arranged in such a way that less detailed layer is displayed as an
overview, and more detailed layers are turned on as the map is zoomed
in. The MIN_ZOOM and MAX_ZOOM may be set to -1 (default)
to disable the
limit.
For tiled
layers, the MAX_TILES
attribute can be used to switch to a
FALLBACK_LAYER when the number
of used tiles exceeds MAX_TILES.
This
may be use to set up a chain of fallback layers and provides an
alternative that does not require figuring out appropriate zoom factor
values.
The -verbosity command line
option
helps in figuring out zoom limits and the maximum number of used tiles.
To display a current zoom factor, change GlmScript to add "-verbosity
1"
command line option. To displaythe
number of used
tiles, use "-verbosity
2".
How do I define a default
set of layers to display?
The LAYERS
parameter of the query string is set to LAYERS=default to display a
default set of layers. To include a layer into the default set, the "DEFAULT
ON" parameter may be set to 1 in the layer's LIF file.
To display layers
in addition to the default layers, add them to LAYERS using comma as a
separator. To exclude a layer, use the "-" prefix. For example, LAYERS="default,states,-grid" adds
a states layer and disables
the grid layer if it was
enabled by default.
In addition to the default set of layers, aliases may be used to define
a set of layers to be displayed. For example, the following alias:
ALIAS=default2 "political_filled,states,grid"
defines "default2" as an
alias for a set of the
political_filled, states, and grid50 layers. When an alias is used in the LAYERS parameter or a map request,
all layers listed in the alias will be displayed. The alias value may also
contain attribute conditions.
How do I control grid
spacing and labeling?
The attributes
of a grid layer are defined in its LIF file. The value of ADAPTIVE attribute (default
is 5) defines an approximate number of grid lines to display. The
actual number of grid lines may slightly differ to accommodate rounded
grid interval. Alternatively, "GRID
LAT INTERVAL" and "GRID
LON INTERVAL" may be set to
define the exact grid interval.
Grid labels may
be switched on and off by setting "GRID
LABELS"
attribute to 1 or 0. If the attribute is set to 2, the labels will be
displayed on both sides of the image.
The "DECIMAL
LABELS"
may be set to 0 or 1 to display labels using minutes and seconds or
decimal fractions. The rest of the grid label attributes are controlled
using standard text label attributes.
How do I alter display of
vector features depending on their attribute values?
The attribute
threshold tables may be use to alter attribute of a vector feature
depending on some other attribute. For example, attribute threshold
tables may be used to change the size of the city marker depending on
its population, or change the line width and color of the road
depending on its FCC code: interstate highway, state highway, etc.
The threshold
table may be controlled by a value of the feature attribute as well as
the value of the zoom factor. The threshold table may define an
absolute value; for numerical attributes it may also define a relative
adjustment factor.
The us_cities.lif LIF
file in the
map_data/layers directory of
the GLG Map Server Installation provides an example of using attribute
threshold tables. Refer
to the Configuration
Variables: ATTR MAP chapter of the GLG
Map Server
Reference Manual
for more information.
How do I show only
some vector features based on some criteria?
There are two
ways of selecting features to be displayed. At
setup time,
an attribute table can be attached to the layer's visibility attribute
in the LIF file to display only some features based on the value of
their attributes. This may be used to setup several layers that use the
save data file but display different subsets of features. However, for
large data files it is more efficient to use Map Server's split utility
to split the data file into several smaller files, one for each layer.
To dynamically
define a subset of the features to display at
run time,
a list of attribute conditions may be added to a layer name in the LAYERS list of the map query to
display only the
features that match. For example, "LAYERS=cities@1>=300000"
will display only
cities whose population (attribute index 1) is greater or equal 300K.
To
disable selected feature, add the "-" prefix before the layer name.
Refer
to to the description of the LAYERS
parameter in the Map Query String
chapter of the GLG
Map Server
Reference Manual
for more information.
How do I
define custom icons for point features?
The "ICON
FILE"
attribute of the LIF file may be used to define a custom icon for a
point feature. An attribute threshold may be attached to the IconFile
attribute to use different images depending on value of some attribute
of the feature. Refer
to the Configuration
Variables: ATTR MAP chapter of the of the GLG
Map Server
Reference Manual
for more information.
How do I
disable display of vector features which are too small for the selected
zoom level?
Set the "MIN
PIXEL SIZE"
LIF
file attribute to the desired size to activate decluttering based on
the pixel size. This is often used to eliminate a large number of small
lakes in the water coverage layer.
The default
value of the attribute is 1. If a layer (such as shorelines
or political boundaries) has lines that are split into small segments,
the segments may not be drawn if they are smaller then the defined
minimum pixel size. If that results in gap in the layer's lines, set
the minimum pixel size to 0 to disable small segments elimination.
How do I make labels visible
on top of a background of the same color?
Set the "LABEL STYLE" attribute to OUTLINE and define "LABEL OUTLINE COLOR" that provides
a good contrast with the "LABEL
COLOR". For example, set label outline color to white if label
color is black. The outline will be drawn around each character of the
text to improve the label's visibility without obscuring the map behind
the label. The outline works best with the TrueType fonts (defined by
the "IMAGE FONT" attribute).
If obscuring the map behind the label is not a concern, the label style
may be set to "BG_FILL,BG_EDGE"
to draw a box around the label. The "BOX
FILL COLOR" and "BOX EDGE
COLOR" attributes define the fill and edge colors of the text
box.
How do I prevent layer's
labels obscuring each other and labels in other layers?
Set the "LAYOUT TYPE" attribute of the LIF
file to GLOBAL to enable
layout negotiation, which makes sure the labels do not obscure each
other. The global layout negotiation is performed for labels in all
layers that have "LAYOUT TYPE"
set to GLOBAL.
The LAYER layout type
performs layout only for labels within the layer, and may be used for
less important labels, such as grid labels. The labels will not obscure
each other, but may be obscured by labels in other layers.
The "LABEL PRIORITY"
attribute of the LIF file may be used to define priority for the
layer's labels: 0, 1, 2 and so on. The labels with the priority value
of 0 have the highest priority and will never be obscured by labels
with
lower priority.
If one layer contains labels with different priority values, an
attribute threshold may be attached to the layer's priority resource to
vary it depending on the label's type. For example, the us_cities.lif LIF file in the
sample dataset uses an attribute threshold to assign priority to city
labels depending on the city's population.