agg渲染细节

作者

托马斯堡

联系

托马斯·邦福特

最后更新

2008/11/24

介绍

MapServer 5.0发布了一个新的渲染后端。本指南详细介绍了这些添加到地图创建中的更改和新功能。这个howto假设您已经掌握了mapfile语法的基本知识。如果没有,你应该在读 the mapfile syntax .

设置输出格式

24位PNG(高质量,大文件大小):

OUTPUTFORMAT
    NAME 'AGG'
    DRIVER AGG/PNG
    IMAGEMODE RGB
END

24位PNG,透明背景:

OUTPUTFORMAT
    NAME 'AGGA'
    DRIVER AGG/PNG
    IMAGEMODE RGBA
END

24位jpeg(可能会出现jpeg压缩伪影,但文件大小较小):

OUTPUTFORMAT
    NAME 'AGG_JPEG'
    DRIVER AGG/JPEG
    IMAGEMODE RGB
END

PNG输出,颜色数量随量化减少。

OUTPUTFORMAT
    NAME 'AGG_Q'
    DRIVER AGG/PNG
    IMAGEMODE RGB
    FORMATOPTION "QUANTIZE_FORCE=ON"
    FORMATOPTION "QUANTIZE_DITHER=OFF"
    FORMATOPTION "QUANTIZE_COLORS=256"
END

新特点

  • 默认情况下,所有渲染现在都已完成抗锯齿处理。现在忽略所有反锯齿关键字以及透明度alpha。像素地图和字体现在都是按照图像的内部alpha通道绘制的(除非指定了背景色)。

  • 和版本中的gd一样。4.10,使用椭圆符号绘制粗线不再是强制性的。要绘制粗线,只需使用:

STYLE
    WIDTH 5
    COLOR 0 0 255
END
  • 添加了一个与矢量或像素地图符号一起使用的线条符号来绘制纹理线条。如果一条线的样式被赋予vector或pixmap类型的符号,则默认情况下会发生这种情况。要启用“屏蔽”符号化,即仅放置在线的某些点上的标记,必须向符号定义添加间隙参数。此间隙值按样式大小参数w.r.t缩放。为始终朝北的符号指定一个正间隙值(可以选择按当前样式的角度旋转),或者为应沿直线方向旋转的符号指定一个负间隙值。

../_images/linesymbolization.png
  • 如果一条线的样式被赋予vector或pixmap类型的符号,则默认情况下会发生这种情况。要启用“屏蔽”符号化,即仅放置在线的某些点上的标记,必须向符号定义添加间隙参数。此间隙值按W.R.T比例缩放样式的“大小”参数-为始终朝北的符号指定一个正间隙值(可以选择按当前样式的角度旋转),或为应沿线条方向旋转的符号指定一个负值。

  • pixmap和字体符号现在可以旋转而不会失去透明度。

  • 对于没有特定符号的多边形图层,如果指定了大纲颜色,则width关键字指定大纲的宽度。这是一个速记,避免了为基本渲染创建多种样式,并将提供边际性能增益。请注意,在这种情况下,轮廓的宽度取决于/不取决于/比例。

修改的行为

  • 为多边形指定符号时,符号的间隙参数用作每个渲染符号之间的分隔。这适用于矢量、像素地图和椭圆类型的符号。例如,由定义的符号

SYMBOL
 NAME 'triangle'
 TYPE VECTOR
 FILLED TRUE
 POINTS
  0 1
  .5 0
  1 1
  0 1
 END
 GAP 1
END

在大小为15的类中呈现的将呈现为

../_images/solid-symbol-gap.png
  • 图层类型圆形支撑图案填充类型符号填充

  • 现在强制使用标签的编码关键字。如果不设置,MapServer将逐字节处理标签文本(导致特殊字符损坏)。