wiki:SymbologyExchangeVector

The Symbology Exchange: Vector Symbols

Welcome to The Symbology Exchange. This section is for vector symbols. Post your cool symbols here. We hope you find something useful.

Guidelines:

  • Please post a description of your symbols. While "railroad" is useful, it doesn't indicate how your railroad symbol differs from anyone else's. Is it just different? Does it handle antialiasing and transparency at the same time? Does it look good at a wide variety of sizes?
  • If you can post a link to see your symbol in action, that would be great.

Nice roads

Posted by HostGIS 2007-08-08

We use this styling for our roads. It gives them that nice thick effect, a la Google. The far-out roads are beige-yellow in color, giving way to grey-on-grey for the smaller roads.

The classifications used here are oriented around conventions used in the USA's TIGER street data: the CFCC field indicates the street's type, and range from A1 (interstate highway) to A7 (small road). It should be easily adaptable to other road data, though.

First, define a symbol for "solid":

SYMBOL
  NAME "line_solid"
  TYPE ellipse
  POINTS 1 1
  END
  FILLED true
END

Now for the classes and styling:

CLASSITEM "CFCC"
CLASS
  EXPRESSION /^A[67]/
  NAME "Other"
  MAXSCALE 30000
  STYLE
    SYMBOL 'line_solid'
    COLOR 170 170 170
    SIZE 1
  END
  LABEL
    COLOR 0 0 0
    OUTLINECOLOR 200 200 200
    MINFEATURESIZE 10
    FONT "Vera"
    TYPE truetype
    POSITION AUTO
    SIZE 8
   END
END
CLASS
  EXPRESSION /^A[45]/
  NAME "City"
  MAXSCALE 60000
  STYLE
    SYMBOL 'line_solid'
    COLOR 180 180 180
    SIZE 3
  END
  STYLE
    SYMBOL 'line_solid'
    COLOR 255 255 255
    SIZE 1
  END
  LABEL
    COLOR 0 0 0
    OUTLINECOLOR 200 200 200
    MINFEATURESIZE 25
    FONT "Vera"
    TYPE truetype
    POSITION AUTO
    ANGLE AUTO
    MINDISTANCE 200
    BUFFER 10
    OFFSET 0 -4
    SIZE 9
   END
END
CLASS
  EXPRESSION /^A[23]/
  NAME "Highway"
  MAXSCALE 20000000
  STYLE
    SYMBOL 'line_solid'
    COLOR 140 140 140
    SIZE 5
  END
  STYLE
    SYMBOL 'line_solid'
    COLOR 255 250 115
    SIZE 3
  END
  LABEL
    COLOR 0 0 0
    OUTLINECOLOR 235 235 235
    MINFEATURESIZE 10
    FONT "Vera"
    TYPE truetype
    POSITION AUTO
    ANGLE AUTO
    PARTIALS FALSE
    OFFSET 0 -5
    MINDISTANCE 250
    BUFFER 15
    SIZE 10
   END
END

CLASS
  EXPRESSION /^A1/
  NAME "Interstate"
  MAXSCALE 40000000
  TEXT ([FENAME])
  STYLE
    SYMBOL 'line_solid'
    COLOR 120 120 120
    SIZE 6
  END
  STYLE
    SYMBOL 'line_solid'
    COLOR 242 191 36
    SIZE 4
  END
  LABEL
    OUTLINECOLOR 235 235 235
    COLOR 0 0 0
    MINFEATURESIZE 10
    FONT "Vera"
    TYPE truetype
    POSITION AUTO
    ANGLE AUTO
    OFFSET 0 -7
    MINDISTANCE 300
    BUFFER 15
    PARTIALS FALSE
    SIZE 11
   END
END

Dave Fawcett's symbols from the old Mapserver wiki

Posted by HostGIS at 2007-08-09

This defines a pair of symbols which, when overlaid on each other, creates a thick line with a dashed line down the middle. This is appropriate for highways, for example.

SYMBOL
    name "circle"
    Type ELLIPSE 
    Filled true 
    POINTS
        1 1 
    END 
END

SYMBOL
    name "dashed"
    Type ELLIPSE 
    FILLED true 
    POINTS
        1 1 
    END 
    STYLE
        5 3 
    END 
END

CLASS
    NAME "Highway" 
    STYLE 
    SYMBOL circle 
    SIZE 7 
    COLOR
        0 0 0 
    END 
    STYLE
        SYMBOL circle 
        SIZE 5 
        COLOR 255 255 0 
    END 
    STYLE
        SYMBOL dashed 
        SIZE 1 
        COLOR 0 0 0 
    END 
END

From Dave Fawcett's wiki page: railroad tracks

Posted by HostGIS at 2007-08-09

Here's a method for drawing railroad tracks. THis is the usual line with shorter lines ("ties") across it.

SYMBOL
    NAME 'line' 
    TYPE ellipse 
    FILLED true 
    POINTS
        1 1 
    END 
END
SYMBOL
    NAME 'tie' 
    TYPE Ellipse 
    FILLED TRUE 
    POINTS 1 1 END 
    STYLE 1 3 END 

END
SYMBOL 'railroad'
    SIZE 1 
    OVERLAYSYMBOL 'tie' 
    OVERLAYSIZE 3 
END

From Dave Fawcett's wiki page: Some fill patterns for polygons

Posted by HostGIS at 2007-08-09

# A hatch pattern tilted 45 degrees
SYMBOL
    NAME "fill45" 
    TYPE vector 
    POINTS
        0 1 
        1 0 
    END 
END

# Horizontal & vertical hatching
SYMBOL
    NAME "fillrect" 
    TYPE vector 
    POINTS
        0 0 
        1 0 
        1 1 
    END 
END

# Double cross hatching
SYMBOL
    NAME "fillcross" 
    TYPE vector 
    POINTS
        0 0 
        1 1 
        -1 -1 
        1 0 
        0 1 
    END 
END

# wave hatching
SYMBOL
    NAME "fillwave" 
    TYPE vector 
    POINTS
        0 0 
        1 1 
        2 0 
    END 
END

# Horizontal hatching
SYMBOL

    NAME "fill0" 
    TYPE vector 
    POINTS
        0 0 
        1 0 
        -1 -1 
        0 1 
        1 1 
    END 
END

# Vertical hatching
SYMBOL
    NAME "fill90" 
    TYPE vector 
    POINTS
        0 0 
        0 1 
        -1 -1 
        1 0 
        1 1 
    END 
END

Swamp/Marsh? fill pattern and Railroad

Posted by Bill Thoen at 2007-08-10

This is a self contained sampler of two symbol types. The first is a polygon fill pattern for swamp land. The second is a railroad symbol and while not particularly special, it illustrates the method of combining multiple styles to build up a decorated line type. The example consists of two files: a MAP file and its associated HTML file. Copy them both and then simply run the MAP file with mapserv to see the symbology.

sym_sampler.html
================
<html>
  <head>
    <title>Symbology Viewer</title>
  </head>
  <body>
    <h1>Cartographic Symbols</h1>
    <p>
    <img src="[img]" />
    </p>
  </body>
</html>

sym_sampler.map
===============
MAP
  NAME 'Symbology'
  EXTENT 0 0 400 400
  SIZE 400 400
  SYMBOL
    NAME 'swamp'
    TYPE VECTOR
    FILLED FALSE
    POINTS 
      5 6  
      4 5
      -99 -99
      6 6
      5 4
      -99 -99
      7 6
      7 3
      -99 -99
      8 6 
      9 4
      -99 -99
      9 6 
      10 5
      -99 -99
      19 13
      18 12
      -99 -99
      20 13
      19 11
      -99 -99
      21 13
      21 10
      -99 -99
      22 13
      23 11
      -99 -99
      23 13
      24 12
    END
  END

  SYMBOL
    NAME 'track'
    TYPE ELLIPSE
    FILLED TRUE
    POINTS 1 1 END
  END

  SYMBOL
    NAME "tie"
    TYPE cartoline
    LINECAP butt
    LINEJOIN miter
    LINEJOINMAXSIZE 3
    STYLE
      1 10 1 10
    END
  END

  WEB
    TEMPLATE "/var/www/html/blt/sym_sampler.html"
    IMAGEPATH "/var/www/html/tmp/"
    IMAGEURL "/tmp/"
  END

  LAYER
    NAME "Wetlands"
    TYPE POLYGON
    STATUS DEFAULT
    FEATURE
      POINTS
        5 345
        105 345
        105 395
        5 395
        5 345
      END
    END
    CLASS
      COLOR 240 255 240
      OUTLINECOLOR 128 255 128
      STYLE
        SYMBOL "swamp"
        SIZE 22
        COLOR 96 128 64
      END
    END
  END

  LAYER
    TYPE LINE
    STATUS DEFAULT
    NAME "Railroad"
    FEATURE
      POINTS
        115 345
        148 395
        182 345
        215 395
      END
    END
    CLASS
      STYLE
        SYMBOL 'track'
        SIZE 1
        COLOR 0 0 0
        ANTIALIAS TRUE
      END
      STYLE
        SYMBOL 'tie'
        SIZE 5
        COLOR 0 0 0
        ANTIALIAS TRUE
      END
    END
  END

  LAYER
    NAME "label2"
    TYPE ANNOTATION
    STATUS OFF
    FEATURE 
      POINTS 165 345 END
      TEXT "Railroad"
    END
    CLASS
      LABEL
        TYPE BITMAP
        SIZE MEDIUM
        COLOR 0 0 0
        POSITION lc
      END
    END
  END

  LAYER
    NAME "Labels"
    TYPE ANNOTATION
    STATUS DEFAULT
    FEATURE 
      POINTS 53 345 END
      TEXT "Swamp or Marsh"
    END
    FEATURE 
      POINTS 165 345 END
      TEXT "Railroad"
    END
    CLASS
      LABEL
        TYPE BITMAP
        SIZE MEDIUM
        COLOR 0 0 128
        POSITION lc
      END
    END
  END
END

Symbol for Orchard and Scrub

Posted by Anton Sizo at 2008-03-17

CLASS
  NAME 'Orchard'
  STYLE
    COLOR 231 255 170
  END
  STYLE
    SYMBOL "octahedron"
    SIZE 10
    COLOR 100 100 100
  END
  END #CLASS

SYMBOL
  NAME 'octahedron'
  TYPE VECTOR
  POINTS
    20 18
    22 18
    24 20
    24 22
    22 24
    20 24
    18 22
    18 20
    20 18
  END
  FILLED FALSE
END


CLASS
  NAME 'Scrub'
  STYLE
    COLOR 231 255 170
  END
  STYLE
    SYMBOL "scrub"
    SIZE 30
    COLOR 100 100 100
  END
END #CLASS

SYMBOL
  NAME 'scrub'
  TYPE VECTOR
  POINTS
    88 122
    90 122
    92 124
    92 126
    90 128
    88 128
    86 126
    86 124
    88 122
    -99 -99
    120 122
    122 122
    124 124
    124 126
    122 128
    120 128
    118 126
    118 124
    120 122
    -99 -99
    106 84
    108 84
    110 86
    110 88
    108 90
    106 90
    104 88
    104 86
    106 84
    -99 -99
    107 102
    109 102
    111 106
    111 108
    109 110
    107 110
    103 108
    103 106
    107 102
    -99 -99
  END
  FILLED FALSE
END

Plane symbol

Posted by John Zastrow at 2008-05-05

I've been working on an improved version of the Itasca.map and taught myself how to make vector symbols (based on this excellent site! http://umn.mapserver.ch/index_en.php ). The symbol is below, but perhaps more importantly I created a little Excel to help me and included a brief explanation how to use it. http://northredoubt.com/mapserver/mapserver-vector-symbol-designer.xls

An improved itasca.map is also available (a work in progress) http://northredoubt.com/mapserver/itasca.map.html

SYMBOL
 NAME 'plane'
 TYPE VECTOR
 FILLED TRUE
 POINTS
   0.5 0.025
   0.45 0.075
   0.45 0.225
   0.45 0.3
   0.225 0.325
   0.175 0.375
   0.45 0.425
   0.45 0.6

   0.475 0.675
   0.425 0.725
   0.575 0.725
   0.525 0.675
   0.55 0.6
   0.55 0.425
   0.825 0.375
   0.775 0.325
   0.55 0.3

   0.55 0.225
   0.55 0.075
   0.5 0.025
 END
END

Polygon fills: Marsh symbols, as used in orienteering maps

Posted by Håvard Tveite at 2010-10-13

Three different marsh symbols for polygon fills as specified in the International Specification for Orienteering Maps http://www.orienteering.org/i3/index.php?/iof2006/content/download/866/4026/file/International%20Specification%20for%20Orienteering%20Maps%202000.pdf. Exploits the way Mapserver is currently implementing vector symbols (using 0,0 as the upper left corner of the symbol, and the maximum x and y values as the lower right corner). Works well for GD. tile boundaries will appear at certain scales in AGG.

SYMBOL
  NAME "marsh_isom"
  TYPE vector
  FILLED true
  POINTS
    0 0.6666666
    100 0.666666
    100 1
    0 1
    0 0.66666666
  END  
END

SYMBOL
  NAME "uncrossablemarsh_isom"
  TYPE vector
  FILLED true
  POINTS
    0 0.25
    100 0.25
    100 0.5
    0 0.5
    0 0.25
  END  
END

SYMBOL
  NAME "indistinctmarsh_isom"
  TYPE vector
  FILLED true
  POINTS
    0 0.2
    0.45 0.2
    0.45 0.3
    0 0.3
    0 0.2
    -99 -99
    0.7 0.2
    1.15 0.2
    1.15 0.3
    0.7 0.3
    0.7 0.2
    -99 -99
    0.125 0.5
    1.025 0.5
    1.025 0.6
    0.125 0.6
    0.125 0.5
  END  
END
Last modified 9 years ago Last modified on Feb 26, 2010 1:56:50 AM