Symbology
Note: This is the print view with all the Reference Manual pages on one page. The paginated version is available here, if you prefer that.
1. Syntax
- ANTIALIAS [true|false]
- Should TrueType fonts be antialiased.
- CHARACTER [char]
- Character used to reference a particular TrueType font character. You'll need to figure out the mapping from the keyboard character to font character.
- FILLED [true|false]
- Sets the symbol to be filled with a user defined color (See the CLASS object). For marker symbols, if OUTLINECOLOR was specified then the symbol is outlined with it.
- FONT [string]
- Name of TrueType font to use as defined in the FONTSET.
- GAP [int]
Given in pixels. This defines a distance between symbols for TrueType lines. As of MapServer 5.0 this also applies to PixMap symbols.
When drawing the symbol along a line segment, a negative GAP will will add 180 degress to the angle. The TrueType and PixMap symbols are always oriented along the line. A GAP of 0 (the default value) will cause MapServer to use the symbol as a brush to draw the line.
- IMAGE [string]
- Image (GIF or PNG) to use as a marker or brush for type PIXMAP symbols.
- NAME [string]
- Alias for this font to be used in CLASS objects
- LINECAP [butt|round|square|triangle]
- Sets the line cap type for the cartoline symbol. Default is butt. Works with the CARTOLINE symbol only!
- LINEJOIN [round|miter|bevel]
- Sets the line join type for the cartoline symbol. Default is "none" - lines will not be joined . Works with the CARTOLINE symbol only!
- LINEJOINMAXSIZE [int]
- Sets the max length of the miter line join type. The value represents a coefficient which multiplies a current symbol size. Default is 3. Works with the CARTOLINE symbol only!
- POINTS [x y] [x y] ... END
Signifies the start of the definition of points that make up a vector symbol or that define the x and y radius of an ellipse symbol. The end of this section is signified with the keyword END. Coordinates are given in pixels and define the default size of the symbol before any scaling. You can create non-contiguous paths by inserting negative coordinates at the appropriate place. For ellipse symbols you provide a single point that defines the x and y radius of an ellipse. Circles are created when x and y are equal.
Note:
If a class using this symbol doesn't contain an explicit size, then the default symbol size will be based on the range of "y" values in the point coordinates. e.g. if the y coordinates of the points in the symbol range from 0 to 5, then the default size for this symbol will be assumed to be 5.
- STYLE [num on] [num off] [num on] ... END
- Defines a dash style or pattern.
- TRANSPARENT [color index]
- Sets a transparent color for the input GIF image for pixmap symbols, or determines whether all shade symbols should have a transparent background. For shade symbols it may be desirable to have background features "show through" a transparent hatching pattern, creating a more complex map. By default a symbol's background is the same as the parent image (i.e. color 0). This is user configurable.
- TYPE [vector|ellipse|pixmap|truetype|simple|cartoline|hatch]
- vector: a simple drawing is used to define the shape of the symbol.
- ellipse: radius values in the x and y directions define an ellipse.
- pixmap: a user supplied GIF image will be used as the symbol.
- truetype: TrueType font to use as defined in the FONTSET.
- cartoline: allows for different designs of line ends (mitered, rounded, beveled). More information can be found in the Cartographic Symbols document.
- hatch: produces hatched lines throughout the shape.
2. Notes
- Symbol definitions can be included within the main MapFile or, more commonly, in a separate file. Symbol definitions in a separate file are designated using the SYMBOLSET keyword, as part of the MAP Object. This recommended setup is ideal for re-using symbol definitions across multiple MapServer applications.
- There are 3 main types of symbols in MapServer: Markers, Shadesets, and Lines.
- Symbol 0 is always the degenerate case for a particular class of symbol. For points, symbol 0 is a single pixel, for shading (i.e. filled polygons) symbol 0 is a solid fill, and for lines, symbol 0 is a single pixel wide line.
- Symbol definitions contain no color information, colors are set within CLASS objects.
- There is a maximum of 64 symbols per file. This can be changed by editing mapsymbol.h and changing the value of MS_MAXSYMBOLS at the top of the file.
- More information can be found in the Construction of Cartographic Symbols document.
3. Examples
The following example creates a dashed line with 10 pixels on, 5 off, 5 on, 10 off ...
Example 1. Dashed Line
SYMBOL NAME 'dashed1' TYPE ELLIPSE POINTS 1 1 END FILLED true STYLE 10 5 5 10 END END
The next example symbol is a star, used to represent the national capital, hence the name. The font name in defined in the FONTSET file. The code number "114" varies, you can use MS Windows' character map to figure it out, or guestimate.
Example 2. TrueType font marker symbol
SYMBOL NAME "natcap" TYPE TRUETYPE FONT geo FILLED true ANTIALIAS true CHARACTER "r" END
The next example is fairly straight forward. Note that to have 3 sides you need 4 points, hence the first and last points are identical.
Example 3. Vector triangle marker symbol
SYMBOL
NAME "triangle"
TYPE vector
POINTS
0 4
2 0
4 4
0 4
END
END
The next example draws a cross, that is 2 lines (vectors) that are not connected end-to-end (Like the triangle in the previous example). The negative values separate the two.
Example 4. Non-contiguous vector marker symbol (Cross)
SYMBOL
NAME "cross"
TYPE vector
POINTS
2 0
2 4
-99 -99
0 2
4 2
END
END
The next example creates a simple filled circle. Using non-equal values for the point will give you an actual ellipse.
Example 5. Circle vector symbol
SYMBOL
NAME "circle"
TYPE ellipse
FILLED true
POINTS
1 1
END
END
Example 6. Downward diagonal fill
SYMBOL
NAME "downwarddiagonalfill"
TYPE vector
TRANSPARENT 0
POINTS
0 1
1 0
END
END
The next example creates a dashed line with 10 pixels on, 5 off,... The line will have butt caps and short miter joins. For layers with a scaled symbol (SYMBOLSCALE, MINSIZE, MAXSIZE, ...) the STYLE will be resized to maintain symbol ratios.
Example 7. Dashed Cartoline symbol
SYMBOL NAME "cartoline" TYPE cartoline LINECAP butt LINEJOIN miter LINEJOINMAXSIZE 1 STYLE 10 5 END END
Example 8. Using the Symbol Type HATCH (new in 4.6)
As of MapServer 4.6, you can now use the symbol type HATCH to produce hatched lines. The following will display hatched lines at a 45 degree angle, 10 pixels apart, and 3 pixels wide.
Symbol definition:
SYMBOL NAME 'hatch-test' TYPE HATCH END
Layer definition:
LAYER
...
CLASS
...
STYLE
SYMBOL 'hatch-test'
COLOR 255 0 0
ANGLE 45
SIZE 10
WIDTH 3
END
END
END
Other parameters available for HATCH are: ANGLEITEM, SIZEITEM, MINWIDTH, and MAXWIDTH.