MS RFC 49:符号学、标签和制图改进¶
- 日期
2009/01/26
- 作者
托马斯·邦福特,斯蒂芬·莱姆
- 联系方式
Thomas.Bonfort在Camptocamp.com,Steve.Lime在dnr.state.mn.us
- 状态
通过并实施
- 版本
MAPServer 5.4
目的¶
这个RFC对mapserver呈现或mapfile语法进行了一些小的添加或更改。
这些变化都是在RFC45中进行的,但由于RFC45中的一些东西在不久的将来缺乏资金,所以被提取出来以保持进展。
尺寸和宽度的分数值¶
agg可以处理分数宽度和大小,但StyleObj将这些属性定义为int。这不算什么,因为gd和agg都不直接使用这些值,而是在必要时使用scalled values with are cast或rounded to an int。
用于样式和标签的minscaledenom/maxscaledenom¶
这些关键字可以通过避免创建多个层或类来减少 Mapfile 的大小和维护。
大纲宽度在线层¶
目前不可能绘制一条轮廓线,其宽度取决于比例。我们建议在样式块中添加outlinewidth关键字,该关键字指示应该围绕主线颜色呈现的像素宽度。
这一点的实现在mapdraw.c中。当一条线的样式块有一个outlinewidth时,底层形状实际上被绘制了两次:一次是根据outlinewidth调整宽度,正常情况下绘制一次。保留行的当前缓存机制。
示例用法:
LAYER
TYPE LINE
SIZEUNITS meters
CLASS
STYLE
COLOR 255 0 0
OUTLINECOLOR 0 0 0
OUTLINEWIDTH 1
WIDTH 25 #this is in meters (ground units)
MINWIDTH 1 #minimal width (in pixels) for far zoomed maps
MAXWIDTH 20 #maximal width (in pixels) for close zoomed maps
END
END
END
无论地图的范围或比例如何,此线条层都将始终由带有一个像素黑色轮廓的红线呈现。
受影响的文件¶
mapfile.c
mapdraw.c(线条上的大纲宽度,样式对象上的比例)
mapserver.h
maplabel.c(标签上的比例)
文档¶
关键字的文档将加载到主mapfile语法文档中。
MapScript¶
将为mapscript的可用性添加关键字的getter和setter。
向后不兼容¶
无人期待
评审期意见¶
LabelMethod建议被撤回
模式、间隙、偏移的分数值:6.0的一个很好的候选者(当模式和间隙移动到StyleObj时?)
人们一致认为,增加参数化比例,有助于主题映射(例如大小与特征属性成比例)
通过允许简单表达式,例如大小(18+[poptotal]*((43-18)/(5000-30000))。
或者在层级别添加伪项:::
PSEUDOITEM 'mySize' (mrange([itemname], mininput, maxinput, minoutput, maxoutput)) 'myText (commify(round([itemname], 2)) + ' ac') END LABELITEM 'myText' CLASS STYLE COLOR 255 0 0 SIZE [mySize] END LABEL ... END END
此增强将在特定的RFC中解决。
投票历史¶
+1:史蒂文,翁伯顿,塔马斯,史蒂文,丹尼尔(,阿兰布)