GDAL C++ API 学习之路 (2)OGRFeature Style 样式管理器 OGRStyleMgr

这篇具有很好参考价值的文章主要介绍了GDAL C++ API 学习之路 (2)OGRFeature Style 样式管理器 OGRStyleMgr。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Class OGRStyleMgr        #include <ogr_featurestyle.h>

此类表示样式管理器

OGRStyleMgr 是一个用于管理和操作 OGR 样式的类。它提供了一种方便的方式来创建、修改和查找 OGR 样式。

它提供了一系列方法来添加、修改、删除和查找样式。它可以帮助用户有效地管理样式,并进行样式的选择和应用

Public Functions:

explicit OGRStyleMgr(OGRStyleTable *poDataSetStyleTable = nullptr)        构造函数

~OGRStyleMgr() 析构函数

SetFeatureStyleString

GBool SetFeatureStyleString(OGRFeature*, const char *pszStyleString = nullptr, GBool bNoMatching = FALSE)

在要素中设置样式

参数:

  • poFeature -- 用于存储样式的特征对象

  • pszStyleString -- 要存储的样式

  • bNoMatch -- TRUE 表示在样式表中查找样式并将名称添加到要素中

返回: 成功时为TRUE,错误时为FALSE

// 创建一个 OGRFeature 对象
OGRFeature* feature = new OGRFeature(layerDefn);
​
// 创建一个 OGRStyleMgr 对象
OGRStyleMgr* styleMgr = new OGRStyleMgr();

// 设置要素的样式字符串
const char* styleString = "PEN(c:#FF0000,w:2px)";
GBool success = styleMgr->SetFeatureStyleString(feature, styleString);

InitFromFeature

const char *InitFromFeature(OGRFeature*)

从要素的样式字符串初始化样式管理器

参数:

poFeature -- 要从中读取样式的特征对象。

返回: 对从要素读取的样式字符串的引用,或在出现错误时为 NULL

// 创建一个 OGRFeature 对象
OGRFeature* feature = new OGRFeature(layerDefn);

// 创建一个 OGRStyleMgr 对象
OGRStyleMgr* styleMgr = new OGRStyleMgr();

// 从要素中初始化样式
const char* styleString = styleMgr->InitFromFeature(feature);

InitStyleString

GBool InitStyleStringconst char *pszStyleString = nullptr)

从样式字符串初始化样式管理器

参数:

pszStyleString -- 要使用的样式字符串(可以是 NULL)

返回:成功时为TRUE,错误时为FALSE

// 创建一个 OGRStyleMgr 对象
OGRStyleMgr* styleMgr = new OGRStyleMgr();

// 初始化样式字符串
const char* styleString = "PEN(c:#FF0000,w:2px);BRUSH(fc:#FFFF00)";
GBool success = styleMgr->InitStyleString(styleString);

GetStyleName

const char *GetStyleNameconst char *pszStyleString = nullptr)

从样式表中获取样式的名称

参数:

pszStyleString -- 要搜索的样式,或 NULL 以使用当前存储在管理器中的样式。

返回: 名称(如果找到)或出错时为 NULL

// 创建一个 OGRStyleMgr 对象
OGRStyleMgr* styleMgr = new OGRStyleMgr();

// 初始化样式字符串
const char* styleString = "PEN(c:#FF0000,w:2px)";
GBool success = styleMgr->InitStyleString(styleString);

// 获取样式名称
const char* styleName = styleMgr->GetStyleName(styleString);

GetStyleByName

const char *GetStyleByNameconst char *pszStyleName)

参数:

pszStyleName -- 要添加的样式的名称。

返回: 与名称匹配的样式字符串或 NULL(如果未找到或错误)

// 创建一个 OGRStyleMgr 对象
OGRStyleMgr* styleMgr = new OGRStyleMgr();

// 添加样式到样式管理器
const char* styleName = "Style1";
const char* styleString = "PEN(c:#FF0000,w:2px)";
GBool success = styleMgr->AddStyle(styleName, styleString);

// 根据样式名称获取样式字符串
const char* retrievedStyleString = styleMgr->GetStyleByName(styleName);

AddStyle

GBool AddStyle(const char *pszStyleName, const char *pszStyleString = nullptr)

向当前样式表添加样式

参数:

  • pszStyleName -- 要添加的样式的名称。

  • pszStyleString -- 要使用的样式字符串,或 NULL 以使用管理器中存储的样式。

返回: 成功时为TRUE,错误时为FALSE

// 创建一个 OGRStyleMgr 对象
OGRStyleMgr* styleMgr = new OGRStyleMgr();

// 添加样式到样式管理器
const char* styleName = "Style1";
const char* styleString = "PEN(c:#FF0000,w:2px)";
GBool success = styleMgr->AddStyle(styleName, styleString);

GetStyleString

const char *GetStyleString(OGRFeature* = nullptr)

从样式管理器获取样式字符串

参数:

poFeature -- 从中读取样式的特征对象,或从中读取样式或 NULL 以获取存储在管理器中的样式字符串。

返回: 存储在要素中的样式字符串或存储在样式管理器中的样式字符串(如果 poFeature 为 NULL)

// 创建一个 OGRStyleMgr 对象
OGRStyleMgr* styleMgr = new OGRStyleMgr();

// 创建一个 OGRFeature 对象
OGRFeature* feature = new OGRFeature();

// 设置要素对象的几何图形和属性值...

// 获取要素对象的样式字符串
const char* styleString = styleMgr->GetStyleString(feature);

 

AddPart

GBool AddPart(OGRStyleTool*)

参数:

poStyleTool -- 定义要添加的部件的样式工具。

返回: 成功时为TRUE,错误时为FALSE

关于部件的样式工具OGRStyleTool类,在第三章有讲解:

传送门

// 创建一个 OGRStyle 对象
OGRStyle* style = new OGRStyle();

// 创建一个 OGRStyleTool 对象
OGRStyleTool* styleTool = new OGRStyleTool();
styleTool->SetSymbol("SYMBOL(d:0x0033FF)");

// 添加样式工具到样式对象
GBool success = style->AddPart(styleTool);

AddPart

GBool AddPartconst char*)

将部件(样式字符串)添加到当前样式

参数:

pszPart -- 定义要添加的部分的样式字符串。

返回:成功时为TRUE,错误时为FALSE

// 创建一个 OGRStyle 对象
OGRStyle* style = new OGRStyle();

// 添加样式工具到样式对象
const char* styleString = "SYMBOL(d:0x0033FF)";
GBool success = style->AddPart(styleString);

GetPartCount

int GetPartCountconst char *pszStyleString = nullptr)

获取样式中的零件数

参数:

pszStyleString -- (可选)要操作的样式字符串。如果为 NULL,则使用存储在样式管理器中的当前样式字符串。

返回: 样式中的零件(样式工具)数

// 创建一个 OGRStyle 对象
OGRStyle* style = new OGRStyle();

// 添加样式工具到样式对象
const char* styleString = "SYMBOL(d:0x0033FF);BRUSH(fc:#FF0000)";
style->AddPart(styleString);

// 获取样式字符串中的样式工具数量
int partCount = style->GetPartCount();

GetPart

OGRStyleTool *GetPart(int hPartId, const char *pszStyleString = nullptr)

从当前样式中获取零件(样式工具)

参数:

  • nPartId -- 部件号(从 0 开始的索引)。

  • pszStyleString -- (可选)要操作的样式字符串。如果为 NULL,则使用存储在样式管理器中的当前样式字符串。

返回: 所请求零件的OGRStyle工具(样式工具)或错误时的NULL文章来源地址https://www.toymoban.com/news/detail-532435.html

// 创建一个 OGRStyle 对象
OGRStyle* style = new OGRStyle();

// 添加样式工具到样式对象
const char* styleString = "SYMBOL(d:0x0033FF);BRUSH(fc:#FF0000)";
style->AddPart(styleString);

// 获取样式工具对象
int partId = 0; // 样式工具的索引
OGRStyleTool* styleTool = style->GetPart(partId);

到了这里,关于GDAL C++ API 学习之路 (2)OGRFeature Style 样式管理器 OGRStyleMgr的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue动态绑定style样式之动态添加style样式的多种写法

    项目中会需要动态添加 style 行内样式,现指出常用的几种方式。 注意: 1、凡是有 - 的style属性名都要变成驼峰式,比如font-size要变成 fontSize。 2、除了绑定值,其他的属性名的值要用引号括起来,比如 fontSize:\\\'14px\\\' 而不是 fontSize :14px。 对象形式 data(){ return { baseStyles: { width:

    2024年04月17日
    浏览(59)
  • 1.1 css style 样式定义:行内 style 属性、单页 <style> 标签、多页 <style> 标签

    首先创建一个 staic 文件夹,用于存放图片、音视频、css 等文件夹资源: 把长宽等样式定义在某个标签的 style 属性中,仅对当前标签产生影响,如: img src=\\\"/images/mountain.jpg\\\" alt=\\\"\\\" style=\\\"width: 300px; height: 200px;\\\" style 里面不能省略掉像素单位 px 两种定义属性的方式: 不用 style:

    2024年02月06日
    浏览(71)
  • Vue-14、Vue绑定style样式

    1、对象写法 2、数组写法 3、总结

    2024年02月02日
    浏览(39)
  • Android style(样式) 和 theme(主题) 属性

            样式和主题资源都可用于对Android UI组件进行“美化”,只要充分利用好这两个属性资源,我们可以开发出各种风格的应用界面。         style 样式: 一个样式相当于多个格式的集合,其他UI组件通过style属性来指定样式,样式资源文件时放在/res/values/styles.xm

    2023年04月12日
    浏览(84)
  • Vue教程(五):样式绑定——class和style

    样式提前准备 绑定class样式——字符串写法 适用于: 样式的类名不确定,需要动态指定 html: js: 效果: 绑定class样式——数组写法 适用于: 要绑定的样式个数不确定,名字也不确定 html: js 效果: 绑定class样式——对象写法 适用于: 要绑定的样式个数确定,名字也确定,

    2024年02月12日
    浏览(38)
  • 【C++修炼之路】内存管理

    👑作者主页:@安 度 因 🏠学习社区:StackFrame 📖专栏链接:C++修炼之路

    2024年02月16日
    浏览(34)
  • 前端导出表格 修改样式(xlsx-style)用法

            xlsx-style 修改样式的机制  就是选中哪一行,那一列或者哪一个  然后去修改  比如表格最左上角的一个格子 坐标是 (0, 0) 下标  也可以叫做  A1 选中之后   可以修改其样式  1. 下载依赖   首先下载依赖到项目 2. 引入到项目 3. 创建导出表格         为什么

    2024年02月13日
    浏览(51)
  • vue中style设置scoped后部分样式不生效

    因为用了elementUI的组件库,一个页面用到了el-dialog,需要改一下样式,但style中设置了scoped后样式并不生效。 因为vue的scoped为本组件的所有标签都打上了一个唯一attribute,样式生效时也带上了这唯一的attribute,但是本组件应用的所有子组件,除根标签以为其他都未打上这唯一

    2024年02月13日
    浏览(43)
  • vue 3 第二十七章:样式(动态class、动态style)

    在 Vue 中,我们可以使用动态绑定语法来动态地添加类名或样式。本章将介绍 Vue 3 中如何使用动态绑定语法来动态地添加类名或样式。 在 Vue 中,我们可以使用 :class 或 v-bind:class 指令来动态地添加类名。例如,下面的例子中,我们可以根据 isActive 的值动态地为元素添加 act

    2024年02月07日
    浏览(46)
  • Java 调用gdal API(二)——栅格裁剪

    gdal可以说是GIS数据处理比较好的工具之一,虽然也提供了Java API,但是官方文档确实太过简单,用起来确实太难受,每次都需要去参考对应的C++api,然后在对应使用。 因此小编决定从这篇文章开始,将自己以前以及今后用到的API,都记录下,以帮助更多从事java GIS服务开发者

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包