OGR样式模型

OGR样式模型

sf2gis@163.com

2013年12月3日

 

1  OGR样式模型

OGR样式模型:OGR使用简单的键值对字符串管理样式。每种样式都可以自定义其名称,每种样式都是由不同的样式属性组成。

如:MyStyle: PEN(c:#FF0000,w:5,p:1);BRUSH(fc:#0000FF,bc:1,id:108,a:45.000000)//#RRGGBB

表示样式名称为MyStyle的样式,包含一个画笔,颜色是红色,宽度是5像素,样式是1;一个画刷,前景色是蓝色,后景色是样式1id108,角度是45度。注意:不同的样式工具,用‘;’分开。最后不能有‘;’,如果有,则会造成空工具的错误。

OGR的样式前期存储在字符串中,后期为方便管理使用了OGRStyleTable类。

OGRStyleTable类是一个用于管理样式字符串的表格类。用于管理多种样式,每个样式都都相应的名称索引。每个样式都由一个字符串组成,字符串使用类似于JSON的键值对表示(JSON使用{},而样式使用())。为了方便管理样式字符串,OGR使用了OGRStyleMgr类。

OGRStyleMgr类是一个用于管理单个样式字符串的类。用于管理和生成每个样式表中的具体的样式,也用于与Feature、OGRStyleTable、OGRStyleTool的交互。由于各种样式太多,而且不同的样式之间可能有重叠(如BRUSH和PEN的Color属性),为了方便管理每一种属性,OGR使用OGRStyleTool类。后来,为了方便管理OGRStyleTable,在OGRStyleMgr也添加了读取OGRStyleTable的操作。再后来,为了方便管理Feature/Dataset中样式,也添加了与其相关的操作。

OGRStyleTool类是一个抽象类,用于管理具体的一种属性(PEN、BRUSH、LABEL、SYMBOL)。

1.1 OGRStyleTable

AddStyle(索引名,样式字符串):添加一种索引名称的样式字符串。

RemoveStyle(索引名):删除指定索引名的样式字符串。

ModifyStyle(索引名,样式字符串):修改已有的样式字符串。

Find(索引名):根据索引名,返回样式字符串。

IsExist(索引名):检查是否存在指定的索引名。

GetStyleName(样式字符串):检查样式字符串对应的索引名。

Clear():清除所有样式。

Clone():复制样式表。

SaveStyleTable(目录):将样式表保存到指定目录。

loadStyleTable(目录):加载指定目录到目前的样式表。

ResetStyleStringReading():设置当前样式游标的位置。

GetNextStyle():获取游标指向的下一个样式。

GetLastStyleName():获取游标指向的当前的样式名称。

1.1.1 示例

        //styletable

        OGRStyleTable *pTable = new OGRStyleTable;

        OGRStylePen *pPen = new OGRStylePen;

        pPen->SetWidth(20);

        pPen->SetColor("#FF0000");

        LPCSTR strPen =pPen->GetStyleString();

        //add

        pTable

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗里曼的小伙伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值