您的位置:首页 > Web前端 > CSS

GDAL/OGR 地理要素样式(二)

2013-03-14 20:15 477 查看
1. 要素样式字符串

以前的OGR版本样式定义存储为一个字符串的形式,有时存储在每个数据集,每个图层,甚至直接存储在要素中。下面介绍几个样式字符串的示例:

⑴、5个像素宽的一条红线:

"PEN(c:#FF0000,w:5px)"

⑵、黑色边缘蓝色填充的多边形:

"BRUSH(fc:#0000FF);PEN(c:#000000)"

⑶、点符号:

"SYMBOL(c:#00FF00,id:"points.sym-45,ogr-sym-7")"

⑷、文本标签,标签内容为“text_string”,尺寸为12个像素,字体为Times New Roman:

"LABEL(f:"Times New Roman",s:12pt,t:{text_string})"

一个样式表描述一个地理要素:

道路: PEN(c:#FF0000,w:5px)

湖泊: BRUSH(fc:#0000FF);LINE(c:#000000)

营地: SYMBOL(c:#00FF00,id:"points.sym-45,ogr-sym-7")

标签: LABEL(f:"Times New Roman",s:12pt,t:{text_string})

然而,要素引用样式表样式时,前面加上了一个“@”字符,后面添加样式名称。

例如:一个要素样式设置为“@道路”,那么将绘制一条红色的线。

2. 样式字符串语法

每个要素都有一个样式属性(一个字符串):

<style_property> = "<style_def>" | "" | "@<style_name>" | "{<field_name>}"

l "<style_def>"在下面会给予说明;

l 要素样式属性为空,意味着要素继承该层的样式。

l "@<style_name>"参照图层或者数据集的样式表中预先定义的样式。根据样式名称首先在图层样式表中查找,如果没有找到,在到数据集样式表中查找。

l 最后,"{<field_name>}"意味着这个样式属性应该从空间属性字段中读取。

<style_def>样式的定义。它是有一个或者多个样式部件组成,部件之间使用分号分开。每个样式部件使用了一个绘图工具去定义完成绘图的一部分。

<style_def> = <style_part>[;<style_part>[;...]]

<style_part> = <tool_name>([<tool_param>[,<tool_param>[,...]]])

<tool_name> = 绘图工具名称, 现在有: PEN | BRUSH | SYMBOL | LABEL

<tool_param> = <param_name>:<param_value>

<param_name> = 见每个绘图工具列表(以后会列出)

<param_value> = <value> | <value><units>

<value> = "<string_value>" | <numeric_value> | {<field_name>}

<units> = g | px | pt | mm | cm | in

所有的绘制工具参数是可选的,所以它原则上有一个空的绘制参数列表("PEN()"等)。对于每个参数都没有任何指定的值,要素属性使用应用程序给定的默认值。OGR给定的默认值,不是应用程序必须使用的默认值。

当{<field_name>}用于工具参数的值时,有些选项可能要使用单位,而单位位于字段名称的后面例如:PEN(c:#FF0000,w:{line_width}pt)或者不指明单位,例如:PEN(c:#FF0000,w:{line_width})。第一种情况下,默认单位为点(pt),但是如果属性字段line_width值之后有一个单位的缩写(例如:“5px”,等),在属性字段中指明的单位具有优先权(在这种情况下单位为像素)。记录属性字段中不包含单位的情况大概占多数。

工具参数单位有:

g: 地图基本单位 (自定义单位,需要指定转换比例)

px: 像素

pt: 点(1/72英寸)

mm: 毫米

cm: 厘米

in: 英寸
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: