地图服务器的地图符号构造

作者

彼得弗雷莫斯

联系

mapmedia.de的pf

作者

阿努尔夫克里斯蒂

联系

arnulf.christl,网址:wheregroup.com

作者

H·V·特维特

联系

在NMBU.NO.的Havard.tveite

摘要

本文档引用了 map符号 该文件的第一个版本是基于汉诺威大学景观和自然保护研究所开展的一个项目的结果。它是由迪普尔先生发起的。英。罗兰·哈赫曼。部分内容摘自德国富柏林大学地理学和地图学专业学生卡斯滕·霍夫曼的一项研究。在GRAS GMBH公司的实践培训中,霍夫曼先生主要谈到了符号的发展。 (Download study report 德语)他的学位论文也将涉及这一主题。

对于MapServer 6,该文档已进行了大量修订。

介绍

地图是使用点、线和区域符号的抽象表示。Bertin(1974)创建了一个清晰的逻辑符号方案,其中符号可以根据图形变量变化。MAPServer中可以使用以下图形变量:形状、大小、图案、颜色和亮度。点和区域符号以及文本字体(TTF)也可以用我们称之为轮廓的框架来显示。

下图显示了地图符号的理论结构,也在MapServer中使用:

../../_images/carto-elements.png

制图符号的结构`

多重渲染和覆盖

假设您想要显示一条带有黑色边界线、两条黄色车道和一条红色中心车道的高速公路。这需要签名的组合。

通过绘制具有不同符号、大小和颜色的相同矢量数据,可以实现复杂的制图效果。这可以使用单独的 LAYER 但是,这可能会对应用程序产生性能影响,因为相同几何图形的每个渲染过程都将占用额外的处理器时间。首选的解决方案是使用多个 STYLE 通过叠加创建复杂符号。

创建上述公路符号,总宽度为9个单位,最低 STYLE (按图纸顺序)将是宽9个单位的宽黑线。第二层次 STYLE 将是一条宽度为7个单位的黄色线条,并且是最上面的 STYLE 将是一条红线,宽度为1个单位。这样,每条黄色车道的宽度将为(7-1)/2=3个单位。

组合符号可以解决各种制图问题。还可以组合不同的几何图形类型。可以将多边形数据集渲染为线条,以使用线条签名对多边形进行边框。它也可以被渲染为多边形,并带有填充多边形的符号。当多边形填充渲染到线条顶部时,基础轮廓的内部部分将被多边形的填充符号覆盖。这里观察到的剪切效应会导致边界线的符号不对称。要在不剪切的情况下显示大纲,只需重新排序 LAYER S或 STYLE 然后把大纲展示放在填充物的顶部。

另一种为框架多边形构造高级线条签名的方法是通过缓冲或剪切原始几何图形来篡改原始几何图形,使新对象位于原始多边形内部或在边界上生长。Postgis可以帮助实现很多效果。

这个 OPACITY 参数 LAYERSTYLE 可用于实现透明度(使较低的符号通过较高的符号“发光”)。

符号缩放

有两种基本上不同的方法来处理不同比例的地图中符号和制图元素的显示大小。制图元素的大小要么以屏幕像素为单位,要么以现实世界的单位为单位。

  • 如果以实际单位(例如米)设置大小,符号将根据显示地图的比例缩小和增长。

  • 如果以屏幕像素为单位设置了大小,则符号在所有比例下看起来都相同。

MapServer的默认行为是实现用于显示绘图元素的“屏幕像素”大小类型。

SIZEUNITSSYMBOLSCALEDENOM 的参数 LAYER .

  • 什么时候? SIZEUNITS pixels) SIZEUNIT 文档。

  • 什么时候? SYMBOLSCALEDENOM

STYLE MAXSIZEMINSIZE

MapServer和符号规范

在MapServer应用程序中, SYMBOL 参数组织在 map 文件如下:

  • LAYER 有一个 TYPE

  • 基本符号定义于 SYMBOL TYPE, POINTS, IMAGE, FILLED, ANCHORPOINT SYMBOL 元素可以单独收集 symbol files 用于重用。

  • 颜色、亮度、尺寸和轮廓在 STYLE A段 CLASS COLOR, SIZE, WIDTHOUTLINECOLOR.

  • 线条和多边形的样式在中定义 STYLE GAPPATTERN.

  • 可以将几个基本元素组合在一起,以使用多个 STYLE S内1 CLASS .

下面的示例显示了其中一些元素的交互,并解释了 LAYER 以及 SYMBOL 绘制绘图点符号所需的部分(红色方块,内有1像素宽的黑色轮廓和较小的蓝色圆圈):

../../_images/symcon-overlay.png

生成的覆盖符号

评论 LAYERSYMBOL 部分。

LAYER 映射文件的节

SYMBOL (来自单独的符号文件或 Mapfile 中的内嵌行)

# Start of layer definition
LAYER
  # Name of the layer
  NAME "mytest"
  TYPE POINT     # Point geometries
  STATUS DEFAULT # Always draw
  # Use the dataset test.shp
  DATA test
  # Start of a Class definition
  CLASS
    # Start of the first Style
    STYLE
      # Symbol to be used (reference)
      SYMBOL "square"
      # Size of the symbol in pixels
      SIZE 16
      # Colour (RGB) - red
      COLOR 255 0 0
      # Outline colour (RGB) - black
      OUTLINECOLOR 0 0 0
    END # end of STYLE
    # Start of the second Style
    STYLE
      # Symbol to be used (reference)
      SYMBOL "circle"
      # Size of the symbol in pixels
      SIZE 10
      # Colour (RGB) - blue
      COLOR 0 0 255
    END # end of STYLE
  END # end of CLASS
END # end of LAYER
# Start of symbol definition
SYMBOL
  # Symbol name (referenced in STYLEs)
  NAME "square"
  TYPE vector # Type of symbol
  # Start of the symbol geometry
  POINTS
    0 0
    0 1
    1 1
    1 0
    0 0
  END # end of POINTS
  # The symbol should be filled
  FILLED true
  # Place the according to its center
  ANCHORPOINT 0.5 0.5
END # end of SYMBOL

# Start of symbol definition
SYMBOL
  # Symbol name (referenced in STYLEs)
  NAME "circle"
  TYPE ellipse # Type of symbol
  # Start of the symbol geometry
  POINTS
    1 1
  END # end of POINTS
  # The symbol should be filled
  FILLED true
  # Place the according to its center
  ANCHORPOINT 0.5 0.5
END # end of SYMBOL

在MapServer中使用地图符号

TYPE 中的参数 STYLE 元素。本节和以下各节将解释如何组合这些元素以创建复杂的地图符号,并介绍MapServer中地图绘制的其他一些重要方面。

输出格式

MapServer支持栅格输出格式(例如PNG、JPEG和GIF)和矢量输出格式(例如PDF、SVG)。栅格格式(除了GIF)使用消除混叠。见 OUTPUTFORMAT (和 MAP IMAGETYPE)

符号单位

SIZEUNITS 的参数 LAYER pixels.

这个 MAP RESOLUTIONDEFRESOLUTION DEFRESOLUTION RESOLUTION DEFRESOLUTION

尺寸可以用小数来指定。

符号比例

这个 SYMBOLSCALEDENOM 中的参数 LAYER 节指定符号或文本标签显示的比例,精确到 STYLE SIZEWIDTH) WIDTH, ...) are tightly connected to the SYMBOLSCALEDENOM 参数。这个 MAXSIZEMINSIZE STYLE 元素将符号的缩放限制为此处指定的最大和最小大小(但不影响大小计算)。

当符号随着比例的变化而缩放时,元素(在 STYLE s)合成地图符号的位置可能会相互改变。这是由于创建图像时的舍入效果。当符号变小时,在小尺度(大尺度分母)中效果最明显。由于相同的效果,符号变小时也会稍微改变形状。

MINSCALEDENOMMAXSCALEDENOMSTYLE -第节,因此必须在 LAYER 水平。为此,请创建几个 LAYER s具有相同的几何图形,适用于不同的比例级别。

请务必注意,地图符号很大程度上取决于比例尺!所以要注意内容、符号和比例的相互作用。这三个参数相互作用很大,必须进行协调才能生成一个好的映射。

点符号的构造

TYPE pixmap, ellipsevector

../../_images/symcon-points.png

基本点符号'type`s,显示大小、偏移、角度和大纲颜色的效果

ANGLE 参数。

从6.2版开始,可以使用 SYMBOL ANCHORPOINT

TYPE

TYPE ellipse POINTS END.

  • TYPE POINTS

  • TYPE POINTS vector

    要创建多边形矢量符号,请 SYMBOL FILLED true.

    最大点数为100,但这可以在编译之前通过更改文件mapsymbols.h中的参数ms_maxvectorpoints来增加。

    TYPE

    • 避免区域符号中的向下倾斜线条,因为它们会导致严重的混叠效果。

    • 不要低于一个有用的最小尺寸。这与所有类型的符号都相关。

    • TYPE

    备注

    矢量符号的边界框在符号坐标系中具有(0,0)作为其左上角。这可以用来精确控制符号的位置。从6.2版开始 SYMBOL ANCHORPOINT 应该改为使用。

TYPE

您可以使用TrueType字体中的符号。符号设置在 SYMBOL CHARACTER FONT FONTSET 的参数 MAP

对于GIF输出(GD渲染器),可以使用参数“antialias”定义要对字符应用反锯齿。建议这样做,尤其是对于更复杂的符号,当它们不适合栅格矩阵或显示可见像素结构时。

truetype LAYER CLASS STYLE TYPE ellipse)

要查找符号的字符编号,请使用以下选项之一:

  • 使用软件fontmap(共享软件,免费试用版下载,感谢直到!).

  • 使用MS Windows TrueType映射。

  • 试错法。:-)

请注意,所谓的“符号字体”的编号从61440开始!所以,如果你想使用字符&84,你必须使用61440+84=&61524。(这不是痛苦吗?!)

您还可以使用 LABEL .然后可以使用 POSITION 参数 [ul uc ur cl cc cr ll lc lr] ,指定相对于几何图形的几何原点的位置。

TYPE

TYPE IMAGE 的参数 SYMBOL 元素。mapserver支持“pixmap”的栅格格式gif和png。

观察图像的颜色深度,避免使用以8位模式显示的24位PNG符号,因为这可能导致意外的颜色跳跃。

使用栅格图像时,不能在 SYMBOL 元素随后。

TRANSPARENT

这个 SIZE pixmap SIZE LAYER SYMBOLSCALEDENOM LAYER SIZEUNITS 不是 pixels) STYLE MAXSIZE 参数。

演示点符号的图形的符号定义

此代码用于生成点符号图中的符号。

首先,符号定义:

SYMBOL
  NAME "o-flag-trans"
  TYPE pixmap
  IMAGE "o-flag-trans.png"
END # SYMBOL

SYMBOL
  NAME "circlef"
  TYPE ellipse
  FILLED true
  POINTS
    10 10
  END # POINTS
END # SYMBOL

SYMBOL
  NAME "P"
  TYPE truetype
  FONT "arial"
  CHARACTER "P"
END # SYMBOL

SYMBOL
  NAME "v-line"
  TYPE vector
  FILLED false
  POINTS
    0  0
    5  10
    10 0
  END # POINTS
END # SYMBOL

SYMBOL
  NAME "v-poly"
  TYPE vector
  FILLED true
  POINTS
    0  0
    3.5 8
    7 0
    5.2 0
    3.5 4
    1.8 0
    0 0
  END # POINTS
END # SYMBOL

然后, LAYER S和 STYLE S用于在点符号图中生成多边形V符号:

LAYER  # Vector v - polygon
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      10 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Vector v - polygon, size
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      20 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
      SIZE 30
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Vector v - polygon, size, angle
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      30 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
      SIZE 30
      ANGLE 60
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Vector v - polygon, size, offset
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      40 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
      SIZE 30
      OFFSET 0 15
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Vector v - polygon, size, angle, offset
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      50 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
      SIZE 30
      ANGLE 60
      OFFSET 0 15
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Vector v - polygon, size outline
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      60 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
      SIZE 30
      OUTLINECOLOR 0 255 0
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Vector v - polygon, size, outline, width
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      70 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
      SIZE 30
      OUTLINECOLOR 0 255 0
      WIDTH 4
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Vector v - polygon, size, outline, no color
  STATUS DEFAULT
  TYPE POINT
  FEATURE
    POINTS
      80 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      SIZE 30
      OUTLINECOLOR 0 255 0
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 255 0 0
      SIZE 4
    END # STYLE
  END # CLASS
END # LAYER

组合符号

下图显示了如何组合几个基本符号以创建复杂点符号。通过添加几个 STYLE 在一之内 LAYER .每个 STYLE 元素引用一个 SYMBOL 元素。所有基本符号在渲染时居中并覆盖。

SIZE 中的参数 STYLE SIZE SYMBOL SIZE

../../_images/point-symbols.png

点符号的构造

线条符号的构造

WIDTH COLOR LINECAP, LINEJOINLINEJOINMAXSIZE

覆盖线

在一条线上组合多个样式/符号时,它们将定位在由对象的几何图形定义的基线上。在大多数情况下,MapServer正确地将符号居中。以16个单位宽度显示并覆盖10个单位宽度行的行的组合将生成具有3个单位边框的行符号。如果制图符号要包含宽度为1像素的中心线,则应将宽度重新配置为11和17个单位。根据经验,不要将偶数和奇数宽度结合起来。

使用 PATTERNGAP 参数

这个 PATTERNGAP

PATTERN 的参数 STYLE LINECAP LINEJOIN PATTERN LINECAP LINECAP LINEJOIN LINECAP LINECAP

GAP GAP SYMBOL 属于 TYPE SYMBOL 属于 TYPE SYMBOL 属于 TYPE SYMBOL 属于 TYPE SYMBOL ANCHORPOINT

备注

由于版本6.2,当使用 STYLE INITIALGAP 参数。 INITIALGAP GAP PATTERN.

下图显示了如何使用样式定义不同类型的线符号。

  • PATTERN

  • GAP

  • GAP

  • INITIALGAP

  • STYLE OFFSET

../../_images/symcon-lines.png

线条符号的构造

下面你会发现 SYMBOL S和 STYLE 在“线符号的构造”中用来产生线符号的。这个 LAYER S从图的底部到顶部排列。

线条样式和符号

SYMBOL
  NAME "circlef"
  TYPE ellipse
  FILLED true
  POINTS
    1 1
  END # POINTS
END # SYMBOL

SYMBOL
  NAME "P"
  TYPE truetype
  FONT "arial"
  CHARACTER "P"
END # SYMBOL

SYMBOL
  NAME "vertline"
  TYPE vector
  FILLED true
  POINTS
    0 0
    0 10
    2.8 10
    2.8 0
    0 0
  END # POINTS
  ANCHORPOINT 0.5 0
END # SYMBOL

SYMBOL
  NAME "o-flag-trans"
  TYPE pixmap
  IMAGE "o-flag-trans.png"
END # SYMBOL

######## Left column ###############

LAYER  # Simple line
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      5 5
      25 10
      45 10
      35 5
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 6.5
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Dashed line with symbol overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      5 15
      25 20
      45 20
      35 15
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 5.0
      PATTERN 40 10 END
    END # STYLE
    STYLE
      SYMBOL "circlef"
      COLOR 0 0 0
      SIZE 8
      INITIALGAP 20
      GAP 50
    END
  END # CLASS
END # LAYER

LAYER  # Dashed line, varying
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      5 25
      25 30
      45 30
      35 25
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 5.0
      LINECAP round #[butt|round|square|triangle]
      LINEJOIN miter #[round|miter|bevel]
      LINEJOINMAXSIZE 3
      PATTERN 40 17 0 17 0 17 0 17 END
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Line dash overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      5 35
      25 40
      45 40
      35 35
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 102 102 102
      WIDTH 4.0
    END # STYLE
    STYLE
      COLOR 255 255 255
      WIDTH 2.0
      LINECAP BUTT
      PATTERN 8 12 END
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Line dashed with dashed overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      5 45
      25 50
      45 50
      35 45
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 16.0
      PATTERN 40 20 20 20 10 20 END
    END # STYLE
    STYLE
      COLOR 209 66 0
      WIDTH 12.0
      INITIALGAP 2
      PATTERN 36 24 16 24 6 24 END
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Line overlay - 3
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      5 55
      25 60
      45 60
      35 55
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 17.0
    END # STYLE
    STYLE
      COLOR 209 66 0
      WIDTH 11.0
    END # STYLE
    STYLE
      COLOR 0 0 0
      WIDTH 1.0
    END # STYLE
  END # CLASS
END # LAYER

######## right column ############

LAYER  # Line - ellipse overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      50 5
      70 10
      90 10
      80 5
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 3.6
    END # STYLE
    STYLE
      COLOR 0 0 0
      SYMBOL "circlef"
      SIZE 10
      GAP 42
    END # STYLE
    STYLE
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
      GAP 42
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Line - symbol overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      50 15
      70 20
      90 20
      80 15
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 2.8
    END # STYLE
    STYLE
      COLOR 0 0 0
      SYMBOL "vertline"
      SIZE 10.0
      ANGLE 30
      GAP -50
    END # STYLE
    STYLE
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
      GAP 50
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Line - font overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      50 25
      70 30
      90 30
      80 25
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 6
    END # STYLE
    STYLE
      COLOR 102 0 0
      SYMBOL "P"
      SIZE 20
      GAP -30
    END # STYLE
    STYLE
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
      GAP 30
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Line - pixmap overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      50 35
      70 40
      90 40
      80 35
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 6
    END # STYLE
    STYLE
      COLOR 102 0 0
      SYMBOL "o-flag-trans"
      SIZE 20
      GAP -30
    END # STYLE
    STYLE
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
      GAP 30
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Line - pixmap overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      50 45
      70 50
      90 50
      80 45
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 6
    END # STYLE
    STYLE
      COLOR 102 0 0
      SYMBOL "o-flag-trans"
      SIZE 20
      GAP -30
      OFFSET -10 -99
    END # STYLE
    STYLE
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
      GAP 30
    END # STYLE
  END # CLASS
END # LAYER

LINECAP

LINECAP 的参数 STYLE . LINECAP LINECAP LINECAP

LINEJOIN

LINEJOIN round. miter none butt.

../../_images/linejoin.jpg

不同类型的线路连接

LINEJOINMAXSIZE LINEJOIN

miter m

../../_images/miter-linejoin.jpg

斜接

miter WIDTH 的参数 STYLE ):

m_max = d * LINEJOINMAXSIZE

如果 m > m_max, 然后连接长度将设置为m_max。

使用 OFFSET 参数

STYLE ,可以将偏移参数设置为在X和Y方向移动符号。位移不受线几何方向的影响。因此,用于设置样式的点符号都在同一方向上移动,与线的方向无关(如下面 Mapfile 中样式编号2中的定义-地图图像中的红线)。正x值向右移动。正Y值向下移动。

要生成相对于原始线条移动的线条,必须使用-99作为偏移的Y值。然后x值定义到原始几何体(垂直于直线)的直线距离。正x值将向右移动(沿直线方向查看时),负x值将向左移动。

下面的示例显示了偏移如何使用-99(蓝线和绿线)而不使用-99(红线)。细黑线显示线条几何图形的位置。

../../_images/symcon-offset.png

使用 OFFSET

LAYER  #
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      20 20
      280 160
      280 20
      160 20
      160 60
    END # Points
  END # Feature
  CLASS
    STYLE  # no offset
      COLOR 0 0 0    # black
      WIDTH 1
    END # STYLE
    STYLE  # simple offset left and down
      COLOR 255 0 0  # red
      WIDTH 2
      OFFSET -8 12
    END # STYLE
    STYLE   # left offset rel. to line direction
      COLOR 0 0 255  # blue
      WIDTH 5
      OFFSET -16 -99
    END # STYLE
    STYLE   # right offset rel. to line direction
      COLOR 0 255 0  # green
      WIDTH 5
      OFFSET 16 -99
    END # STYLE
  END # CLASS
END # LAYER

带有点符号的不对称线条样式

ANCHORPOINT, ANCHORPOINT STYLE OFFSET.

区域符号

区域(多边形)可以用全色填充。区域也可以用符号填充以创建,例如图案填充和分划。

默认情况下,符号用作瓷砖,并在X和Y方向逐个渲染(无间距),填充整个多边形。

如果 SIZE STYLE ,符号将缩放到指定的高度。

这个 GAP 的参数 STYLE 可用于增加符号的间距。

默认情况下,agg渲染器使用消除混叠,因此可以在符号周围发生边缘效果。

舱口填筑

简单的线图案填充(例如水平、垂直和对角线)可以通过用图案填充符号填充多边形来创建。

../../_images/symcon-hatch.png

舱口实例

这个 SIZE 中的参数 STYLE 使用A SYMBOL 类型的 hatch WIDTH ANGLE PATTERN

SIZE WIDTH ANGLE, PATTERNSIZE

下面的代码显示了用于生成图形的 Mapfile 的摘录。

首先, SYMBOL 定义:

SYMBOL
  NAME "hatchsymbol"
  TYPE hatch
END

然后 CLASS 定义:

LAYER # hatch
    ...
   CLASS
    STYLE
      SYMBOL "hatchsymbol"
      COLOR 0 0 0
      SIZE 10
    END # STYLE
   END # CLASS
  END # LAYER

  LAYER # hatch with angle and pattern
   ...
   CLASS
    STYLE
      SYMBOL "hatchsymbol"
      COLOR 0 0 0
      SIZE 10
      WIDTH 3
      ANGLE 45
      PATTERN 20 10 10 10 END
    END # STYLE
   END # CLASS
  END # LAYER

  LAYER # hatch with wide lines
   ...
   CLASS
    STYLE
      SYMBOL "hatchsymbol"
      COLOR 0 0 0
      SIZE 10
      WIDTH 5
    END # STYLE
   END # CLASS
  END # LAYER

  LAYER # cross hatch
   ...
   CLASS
    STYLE
      SYMBOL "hatchsymbol"
      COLOR 255 153 0
      SIZE 10
      WIDTH 4
    END # STYLE
    STYLE
      SYMBOL "hatchsymbol"
      COLOR 0 0 255
      SIZE 20
      ANGLE 90
    END # STYLE
   END # CLASS
  END # LAYER

TYPE

多边形可以用像素地图填充。

备注

如果 STYLE SIZE

Pixmap ANGLE

要创建复杂的区域符号,例如单个字符之间定义的距离或具有宽线的图案填充,PixMap填充可能是最佳选择。根据所需的模式,您必须使用图形编辑器以高精度生成栅格图像。下图是如何获得具有定义间距的符号的规则分配的示例。

../../_images/polygon-symbol-fill.png

常规符号填充的栅格图像

您可以使用除圆以外的其他形状。b定义栅格图像的宽度和高度。对于45度角的规则符号排列,b=h。对于规则平行排列且彼此之间没有偏移的符号,一个中心符号与图像边框的X和Y距离相同就足够了。

下图显示了如何设计PixMap以生成宽线图案填充的示例。

../../_images/hatch-symbol-fill.png

阴影填充的栅格图像

要创建45度图案填充,请使用:

B = H and x = y

备注

pixmap

pixmap

水平排列区域符号的构造

CLASS 部分

SYMBOL 定义

CLASS
  STYLE
    COLOR 255 255 0
  END
  STYLE
    SYMBOL "in_the_star"
  END
  STYLE
    OUTLINECOLOR 0 0 0
    WIDTH 1
  END
END
SYMBOL
  NAME "in_the_star"
  TYPE PIXMAP
  IMAGE "stern.png"
  TRANSPARENT 8
END
../../_images/star-symbol.png
../../_images/horizontal-area-symbol.png

多边形填充-规则网格图案

对角排列区域符号的构造

CLASS 部分

SYMBOL 定义

CLASS
  STYLE
    SYMBOL "in_point1"
  END
  STYLE
    OUTLINECOLOR 0 0 0
    WIDTH 1
  END
END
SYMBOL
  NAME "in_point1"
  TYPE PIXMAP
  IMAGE "flaeche1_1.png"
  TRANSPARENT 13
END
../../_images/dot-symbol.png
../../_images/diagonal-area-symbol.png

多边形填充-对角线图案

舱口的建造

CLASS 部分

SYMBOL 定义

CLASS
  STYLE
    COLOR 255 255 0
  END
  STYLE
    SYMBOL "in_hatch"
  END
  STYLE
    OUTLINECOLOR 0 0 0
    WIDTH 1
  END
END
SYMBOL
  NAME "in_hatch"
  TYPE PIXMAP
  IMAGE "schraffur.png"
  TRANSPARENT 2
END
../../_images/hatch.png
../../_images/hatch-symbol.png

多边形填充-图案填充

TYPE

TYPE “向量”。对于其他符号填充,将使用指定的瓷砖符号生成图案。平铺时使用符号的边界框。

为多边形填充创建矢量符号的方法与为PixMap符号创建矢量符号的方法大致相同。精确是获得好的对称符号的必要条件。

符号的边界框的左上角 TYPE `矢量`在符号的坐标系中总是(0,0)。边界框的右下角由符号定义的最大x和y值(`points`参数)确定。事实上,左上角总是在(0,0)处,因此可以方便地构造符号,例如从下面示例的中心列底部找到的数字2的破折号签名。

两个多边形(filled true) 和行(filled false) 可以使用矢量符号。对于线条符号, WIDTH 的参数 STYLE 将给出线条宽度和 SIZE 参数将指定符号的高度。

备注

对于矢量线符号(fill off),如果指定的宽度大于1,则线将增大以延伸到符号的原始边界框之外。边界框外的零件将被切除。

STYLE 角度可用于多边形填充,但只能旋转每个单独的符号,而不能整体旋转图案。因此,产生旋转的图案是非常困难的。

下面您将找到一些用于多边形填充的向量符号示例。多边形填充伴随着用于填充的矢量符号。矢量符号的中心用一个红点表示。

../../_images/symcon-polygonvector.png

多边形填充-矢量

从 Mapfile 中摘录上述多边形填充向量示例

首先, LAYER 的S

LAYER  # chess board
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      5 5
      5 25
      45 25
      45 5
      5 5
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "chess"
      COLOR 0 0 0
      SIZE 35
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # x - line
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      5 30
      5 50
      45 50
      45 30
      5 30
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "x-line"
      COLOR 0 0 0
      WIDTH 5
      SIZE 35
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # v polygon
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      5 55
      5 75
      45 75
      45 55
      5 55
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "v-poly"
      COLOR 0 0 0
      SIZE 35
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # Circles
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      5 80
      5 100
      45 100
      45 80
      5 80
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "circlef"
      COLOR 0 0 0
      SIZE 20
      GAP 25
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # x polygon
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      55 5
      55 25
      95 25
      95 5
      55 5
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      SYMBOL "x-poly-fill"
      SIZE 35
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # indistinct marsh
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      55 30
      55 50
      95 50
      95 30
      55 30
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 255
      SYMBOL "ind_marsh_poly"
      SIZE 25
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # diagonal circles
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      55 55
      55 75
      95 75
      95 55
      55 55
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR  255 230 51
      SYMBOL "diag_dots"
      SIZE 30
    END # STYLE
  END # CLASS
END # LAYER


LAYER  # diagonal holes in yellow
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      55 80
      55 100
      95 100
      95 80
      55 80
    END # Points
  END # Feature
  CLASS
    STYLE
      SYMBOL "diag_holes"
      SIZE 30
      COLOR 250 220 102
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # v line + circle
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      100 5
      100 25
      140 25
      140 5
      100 5
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 30
      GAP 45
    END # STYLE
    STYLE
      COLOR 0 0 0
      SYMBOL "v-line"
      LINEJOIN miter
      LINECAP butt
      SIZE 35
      WIDTH 10
      GAP 45
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # indistinct marsh + diagonal holes in yellow
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      100 30
      100 50
      140 50
      140 30
      100 30
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 255
      SYMBOL "ind_marsh_poly"
      SIZE 25
    END # STYLE
    STYLE
      SYMBOL "diag_holes"
      SIZE 30
      COLOR 250 220 0
      OPACITY 75
    END # STYLE
  END # CLASS
END # LAYER

LAYER  # x line + circle
  STATUS DEFAULT
  TYPE POLYGON
  FEATURE
    POINTS
      100 55
      100 75
      140 75
      140 55
      100 55
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 255
      SYMBOL "circle"
      WIDTH 5
      SIZE 20
      GAP 30
    END # STYLE
    STYLE
      COLOR 0 204 0
      SYMBOL "x-line"
      SIZE 10
      WIDTH 3
      GAP 30
    END # STYLE
  END # CLASS
END # LAYER

然后 SYMBOL S:

SYMBOL
  NAME "circlef"
  TYPE ellipse
  FILLED true
  POINTS
    10 10
  END # POINTS
END # SYMBOL

SYMBOL
  NAME "circle"
  TYPE ellipse
  FILLED false
  POINTS
    10 10
  END # POINTS
END # SYMBOL

SYMBOL
  NAME "v-line"
  TYPE vector
  POINTS
    0  0
    5 10
    10 0
  END
END

SYMBOL
  NAME "v-poly"
  TYPE vector
  FILLED false
  FILLED true
  POINTS
    0  0
    3.5 8
    7 0
    5.2 0
    3.5 4
    1.8 0
    0 0
  END
END

SYMBOL
  NAME "x-line"
  TYPE vector
  POINTS
    0 0
    1 1
    -99 -99
    0 1
    1 0
  END
END

SYMBOL
  NAME "chess"
  TYPE vector
  FILLED true
  POINTS
    0 0
    10 0
    10 10
    0 10
    0 0
    -99 -99
    10 10
    20 10
    20 20
    10 20
    10 10
  END
END

SYMBOL
  NAME "x-poly-fill"
  TYPE vector
  FILLED true
  POINTS
    0     1.131
    0     0
    1.131 0
    4.566 3.434
    8     0
    9.131 0
    9.131 1.131
    5.697 4.566
    9.131 8
    9.131 9.131
    8     9.131
    4.566 5.697
    1.131 9.131
    0     9.131
    0     8
    3.434 4.566
    0     1.131
  END # POINTS
END # SYMBOL

SYMBOL
  NAME "ind_marsh_poly"
  TYPE vector
  FILLED true
  POINTS
    # Half line
    0 2
    4.5 2
    4.5 3
    0 3
    0 2
    -99 -99
    # Half line
    7 2
    11.5 2
    11.5 3
    7 3
    7 2
    -99 -99
    # Hole line
    1.25 5
    10.25 5
    10.25 6
    1.25 6
    1.25 5
  END
END

SYMBOL
  NAME "diag_dots"
  TYPE vector
  FILLED true
  POINTS
    # Central circle:
    0.7450    0.4500
    0.7365    0.5147
    0.7115    0.5750
    0.6718    0.6268
    0.6200    0.6665
    0.5597    0.6915
    0.4950    0.7000
    0.4303    0.6915
    0.3700    0.6665
    0.3182    0.6268
    0.2785    0.5750
    0.2535    0.5147
    0.2450    0.4500
    0.2535    0.3853
    0.2785    0.3250
    0.3182    0.2732
    0.3700    0.2335
    0.4303    0.2085
    0.4950    0.2000
    0.5597    0.2085
    0.6200    0.2335
    0.6718    0.2732
    0.7115    0.3250
    0.7365    0.3853
    0.7450    0.4500
    -99 -99
    0.25      0.0
    0.2415    0.0647
    0.2165    0.1250
    0.1768    0.1768
    0.1250    0.2165
    0.0647    0.2415
    0.0       0.25
    0.0       0.0
    0.25      0.0
    -99 -99
    1 0.25
    0.9252    0.2415
    0.8649    0.2165
    0.8132    0.1768
    0.7734    0.1250
    0.7485    0.0647
    0.74      0.0
    1 0.0
    1 0.25
    -99 -99
    0.74      1
    0.7485    0.9252
    0.7734    0.8649
    0.8132    0.8132
    0.8649    0.7734
    0.9252    0.7485
    1 0.74
    1 1
    0.74      1
    -99 -99
    0.0       0.74
    0.0647    0.7485
    0.1250    0.7734
    0.1768    0.8132
    0.2165    0.8649
    0.2415    0.9252
    0.25      1
    0.0       1
    0.0       0.74
  END
END

SYMBOL
  NAME "diag_holes"
  TYPE vector
  FILLED true
  POINTS
    0.0     0.0
    # Left half circle
    0.0       0.24
    0.0647    0.2485
    0.1250    0.2734
    0.1768    0.3132
    0.2165    0.3649
    0.2415    0.4252
    0.25      0.5
    0.2415    0.5647
    0.2165    0.6250
    0.1768    0.6768
    0.1250    0.7165
    0.0647    0.7415
    0.0       0.75

    0.0       1.0
    # Bottom half circle
    0.24      1
    0.2485    0.9252
    0.2734    0.8649
    0.3132    0.8132
    0.3649    0.7734
    0.4252    0.7485
    0.5       0.74
    0.5647    0.7485
    0.6250    0.7734
    0.6768    0.8132
    0.7165    0.8649
    0.7415    0.9252
    0.75      1

    1.0     1.0
    # Right half circle
    1 0.75
    0.9252    0.7415
    0.8649    0.7165
    0.8132    0.6768
    0.7734    0.6250
    0.7485    0.5647
    0.74      0.5
    0.7485    0.4252
    0.7734    0.3649
    0.8132    0.3132
    0.8649    0.2734
    0.9252    0.2485
    1 0.24

    1.0     0.0
    # Top half circle
    0.75      0.0
    0.7415    0.0647
    0.7165    0.1250
    0.6768    0.1768
    0.6250    0.2165
    0.5647    0.2415
    0.5       0.25
    0.4252    0.2415
    0.3649    0.2165
    0.3132    0.1768
    0.2734    0.1250
    0.2485    0.0647
    0.24      0.0

    0.0     0.0
  END
END

多边形轮廓

可以使用创建多边形轮廓 OUTLINECOLORSTYLE . WIDTH 指定轮廓的宽度。

STYLE
  OUTLINECOLOR 0 255 0
  WIDTH 3
END # STYLE

虚线多边形轮廓可以通过使用 OUTLINECOLOR, WIDTHPATTERN (一起) LINECAP, LINEJOINLINEJOINMAXSIZE) . 有关使用 PATTERN, 看见 使用 PATTERN 和 GAP 参数 .

STYLE
  OUTLINECOLOR 0 255 0
  WIDTH 3
  PATTERN
    10 5
  END # PATTERN
  LINECAP BUTT
END # STYLE

对于某些符号类型,甚至可以使用 OUTLINECOLOR, SYMBOLGAP.

STYLE
  OUTLINECOLOR 0 255 0
  SYMBOL 'circle'
  SIZE 5
  GAP 15
END # STYLE

示例(MapServer 4)

本节中的示例适用于MapServer 4。

备注

这些符号中的许多都不能与较新版本的MapServer一起使用,但它们包含许多有用的符号定义,因此作为参考提供。

符号是用 map 文件和 symbol 文件(文件) download_old_symbols )如果您想使用这些映射文件,请注意,您的映射服务器必须至少能够处理50个符号。否则,在加载 symbol 文件夹。

基本符号

../../_images/point-symbol-examples.png ../../_images/line-symbol-examples.png ../../_images/pattern-symbol-examples.png

复符号

../../_images/point-symbol-complex.png ../../_images/line-symbol-complex.png ../../_images/pattern-symbol-complex.png

技巧

更改点符号的中心

MAPServer对符号定位点执行所有转换(偏移、旋转)。默认情况下,定位点从符号的边界框计算。在某些情况下,更改符号的定位点可能很有用。从6.2版开始,可以使用 SYMBOL ANCHORPOINT.

以下是使用 ANCHORPOINT 点符号和装饰线的机制。图中有三个示例,每个示例显示了使用和不使用 ANCHORPOINT. 在顶部,箭头被添加到行中,使用 GEOMTRANSFORM 开始/结束。在中间,标记被添加到行中,使用 GAPANGLE. 在底部,点符号被移动和旋转。红点代表中心点,蓝点代表偏移。

../../_images/symcon-shifttrick.png

换档技巧

下面是三个包含 SYMBOL S和 STYLE 用于在图中生成移位符号的机制。

符号技巧-移位-箭头

SYMBOL 的S

LAYER STYLE 的S

SYMBOL
  NAME "arrow-start"
  TYPE vector
  FILLED true
  POINTS
    0 0.4
    3 0.4
    3 0
    5 0.8
    3 1.6
    3 1.2
    0 1.2
    0 0.4
  END # POINTS
  ANCHORPOINT 0 0.5
END # SYMBOL
SYMBOL
  NAME "arrow-end"
  TYPE vector
  FILLED true
  POINTS
    0 0.4
    3 0.4
    3 0
    5 0.8
    3 1.6
    3 1.2
    0 1.2
    0 0.4
  END # POINTS
  ANCHORPOINT 1 0.5
END # SYMBOL
LAYER  # Line
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      20 80
      40 85
      60 85
      70 80
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 15
      LINECAP butt
    END # STYLE
    STYLE
      GEOMTRANSFORM "start"
      COLOR 0 255 0
      SYMBOL "arrow-start"
      SIZE 15.0
      ANGLE AUTO
    END # STYLE
    STYLE
      GEOMTRANSFORM "start"
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
    END # STYLE
    STYLE
      GEOMTRANSFORM "end"
     COLOR 0 255 0
      SYMBOL "arrow-end"
      SIZE 15.0
      ANGLE AUTO
    END # STYLE
    STYLE
      GEOMTRANSFORM "end"
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
    END # STYLE
  END # CLASS
END # LAYER
符号技巧-移位-不对称标记

SYMBOL 的S

LAYER STYLE 的S

SYMBOL
  NAME "vert-line-shift"
  TYPE vector
  POINTS
    0 0
    0 10
  END # POINTS
  ANCHORPOINT 0.5 0
END # SYMBOL

SYMBOL
  NAME "vert-line"
  TYPE vector
  POINTS
    0 0
    0 10
  END # POINTS
END # SYMBOL
LAYER  # Line - symbol overlay
  STATUS DEFAULT
  TYPE LINE
  FEATURE
    POINTS
      20 50
      40 55
      60 55
      70 50
    END # Points
  END # Feature
  CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 4
    END # STYLE
    STYLE
      COLOR 0 0 0
      SYMBOL "vert-line-shift"
      SIZE 20.0
      WIDTH 3
      ANGLE 30
      GAP -50
    END # STYLE
    STYLE
      COLOR 255 0 0
      SYMBOL "circlef"
      SIZE 3
      GAP 50
    END # STYLE
  END # CLASS
END # LAYER
符号技巧。非移位符号(顶部)和移位符号

SYMBOL 的S

SYMBOL
  NAME "v-line"
  TYPE vector
  POINTS
    0  0
    5  10
    10 0
  END # POINTS
END # SYMBOL

SYMBOL
  NAME "v-line-shift"
  TYPE vector
  POINTS
    0   0
    5  10
    10  0
  END # POINTS
  ANCHORPOINT 0.5 0
END # SYMBOL

Shift和旋转结合使用也可以达到良好的效果:

../../_images/symcon-rotated_stick.png
符号特技-Shift+旋转

SYMBOL 的S

LAYER STYLE 的S

SYMBOL
  NAME "circle"
  TYPE ellipse
  POINTS
    1 1
  END # POINTS
  FILLED true
  ANCHORPOINT 0.5 0.5
END # SYMBOL

SYMBOL
  NAME "stick"
  TYPE vector
  POINTS
    -0.5 0.5
    0.5 0.5
    0.51223 0.42274
    0.54774 0.35305
    0.60305 0.29774
    0.67274 0.26223
    0.75 0.25
    0.82725 0.26223
    0.89694 0.29774
    0.95225 0.35305
    0.98776 0.42274
    1 0.5
    0.98776 0.57725
    0.95225 0.64694
    0.89694 0.70225
    0.82725 0.73776
    0.75 0.75
    0.67274 0.73776
    0.60305 0.70225
    0.54774 0.64694
    0.51223 0.57725
    0.5 0.5
    -0.5 0.5
  END # POINTS
  FILLED true
  ANCHORPOINT 0 0.5
END # SYMBOL
LAYER # Hole
  TYPE POINT
  STATUS DEFAULT
  FEATURE
    POINTS
      20 20
    END # POINTS
  END # FEATURE
  FEATURE
    POINTS
      80 30
    END # POINTS
  END # FEATURE
  FEATURE
    POINTS
      50 80
    END # POINTS
  END # FEATURE
  CLASS
    STYLE
      SYMBOL "circle"
      SIZE 25
      COLOR 102 102 102
      OUTLINECOLOR 51 51 102
    END
  END
END # layer

LAYER # Methods
  TYPE POINT
  STATUS DEFAULT
  PROCESSING "ITEMS=method"
  FEATURE
    POINTS
      20 20
    END # POINTS
    ITEMS "1"
  END # FEATURE
  FEATURE
    POINTS
      20 20
    END # POINTS
    ITEMS "5"
  END # FEATURE
  FEATURE
    POINTS
      20 20
    END # POINTS
    ITEMS "8"
  END # FEATURE
  FEATURE
    POINTS
      20 20
    END # POINTS
    ITEMS "13"
  END # FEATURE
  FEATURE
    POINTS
      80 30
    END # POINTS
    ITEMS "8"
  END # FEATURE

  ...

  CLASSITEM "method"
  CLASS
    EXPRESSION "1"
    STYLE
      SYMBOL "stick"
          SIZE 10
      COLOR 102 0 0
      OUTLINECOLOR 102 102 102
      ANGLE 0
    END # STYLE
      END # CLASS
  CLASS
    EXPRESSION "2"
    STYLE
      SYMBOL "stick"
      SIZE 10
      COLOR 204 0 0
      OUTLINECOLOR 102 102 102
      ANGLE 36
    END # STYLE
  END # CLASS

  ...

  CLASS
    EXPRESSION "14"
    STYLE
      SYMBOL "stick"
      SIZE 10
      COLOR 0 204 204
      OUTLINECOLOR 102 102 102
      ANGLE 324
        END # STYLE
  END # CLASS
END # layer

当前问题/未解决问题

GAP - PATTERN 不兼容

由于虚线机制的不兼容性,创建包含虚线的高级线符号很困难 (PATTERN )和符号在线放置机构 (GAP )。如果 GAP 可以是列表而不是单个数字(可能会将其重命名为 GAPSDISTANCES ),它将解决问题,因为我们已经有了 INTIALGAP 参数(指定到第6.2版中添加的行上第一个符号的距离)。

GAP -不完全支持2D

GAP 不支持二维(与多边形填充相关),因此X和Y方向必须使用相同的间隙。引入新的参数——gapx和gapy可以解决这个问题。

结束

我们希望本文档能够帮助您以一种生动的方式向MapServer展示您的数据,并解释MapServer概念的一些基础和可能性以及一些弱点。为了每个人的利益,建立一个地图符号库是很好的。这尤其涉及TrueType字体,TrueType字体是为某些项目开发的,其中包含一些满足制图需求的典型签名。

您还可以查看 discussion paper for the improvement of the MapServer Graphic-Kernel (只有德语)。