GDAL C++ API 学习之路 OGRGeometry 环类 OGRLinearRing

OGRLinearRing class        <ogrsf_frmts.h>

OGRLinearRing 是 OGR 库中的一个类,它是一个线性环(Linear Ring)的几何对象,用于表示封闭的线性路径。线性环是由一系列连续的线段组成,首尾相连形成闭合的环。线性环常用于构建多边形几何体,多边形的边界由线性环构成

Public Functions

OGRLinearRing()

构造 函数

OGRLinearRingconst OGRLinearRing &other)

复制构造函数

OGRLinearRing(OGRLinearRing*)

构造 函数

OGRLinearRing &operator=const OGRLinearRing &other)

赋值运算符

Virtual const char *getGeometryName() const override

获取几何类型的 WKT 名称

返回:  用于此几何类型的名称,采用众所周知的文本格式。返回的指针指向静态内部字符串,不应修改或释放

clone

virtual OGRLinearRing *clone() const override

创建此对象的副本

返回: 具有与原始对象相同的几何和空间参考系统的新对象实例

isPointInRing

OGRBoolean isPointInRing(const OGRPoint *pt, int bTestEnvelope = TRUE) const 

返回点是否在环内

参数:

  •  -- 点

  • bTestEnvelope -- 如果必须先检查环包络内是否存在该点,则设置为 TRUE。

返回: 对或错

    // 创建一个 OGRLinearRing 对象,表示一个线性环OGRLinearRing ring;ring.addPoint(0, 0);ring.addPoint(0, 1);ring.addPoint(1, 1);ring.addPoint(1, 0);ring.addPoint(0, 0);// 创建一个 OGRPoint 对象,表示要检测的点的坐标 (0.5, 0.5)OGRPoint point(0.5, 0.5);// 判断点是否在线性环的内部OGRBoolean isInRing = ring.isPointInRing(&point);if (isInRing) {printf("Point is inside the ring.\n");} else {printf("Point is not inside the ring.\n");}

isPointOnRingBoundary

OGRBoolean isPointOnRingBoundary(const OGRPoint *pt, int bTestEnvelope = TRUE) const

返回点是否在环边界上

参数:

  •  -- 点

  • bTestEnvelope -- 如果必须先检查环包络内是否存在该点,则设置为 TRUE。

返回:  对或错

// 创建一个 OGRLinearRing 对象,表示一个线性环OGRLinearRing ring;ring.addPoint(0, 0);ring.addPoint(0, 1);ring.addPoint(1, 1);ring.addPoint(1, 0);ring.addPoint(0, 0);// 创建一个 OGRPoint 对象,表示要检测的点的坐标 (0.5, 0.5)OGRPoint point(0.5, 0.5);// 判断点是否在线性环的边界上OGRBoolean isOnBoundary = ring.isPointOnRingBoundary(&point);if (isOnBoundary) {printf("Point is on the ring boundary.\n");} else {printf("Point is not on the ring boundary.\n");}

transform

virtual OGRErr transform(OGRCoordinateTransformation *poCT) override

对几何图形应用任意坐标变换

此方法会将几何图形的坐标从其当前空间参考系统转换为新的目标空间参考系统。通常这意味着重新投影矢量,但它可能包括基准面偏移和单位变化

参数:

poCT -- 要应用的转换。

返回:  OGRERR_NONE成功或错误代码

    // 创建一个 OGRPoint 对象,表示原始点的坐标 (30, 40)OGRPoint originalPoint(30, 40);// 创建源和目标的空间参考系统OGRSpatialReference sourceSRS;OGRSpatialReference targetSRS;sourceSRS.SetWellKnownGeogCS("WGS84"); // 使用 WGS84 作为源 CRStargetSRS.SetWellKnownGeogCS("EPSG:4326"); // 使用 EPSG:4326 作为目标 CRS// 创建坐标转换对象OGRCoordinateTransformation *transformer = OGRCreateCoordinateTransformation(&sourceSRS, &targetSRS);if (transformer) {// 对原始点进行坐标转换OGRErr err = originalPoint.transform(transformer);if (err == OGRERR_NONE) {// 打印转换后的点坐标double x = originalPoint.getX();double y = originalPoint.getY();printf("Transformed Point: (%f, %f)\n", x, y);} else {printf("Error during coordinate transformation!\n");}// 释放坐标转换对象OCTDestroyCoordinateTransformation(transformer);} else {printf("Failed to create coordinate transformation!\n");}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/17600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

驶向专业:嵌入式开发在自动驾驶中的学习之道

导语: 自动驾驶技术在汽车行业中的快速发展为嵌入式开发领域带来了巨大的机遇。作为自动驾驶的核心组成部分&#xff0c;嵌入式开发在驱动汽车的智能化和自主性方面发挥着至关重要的作用。本文将探讨嵌入式开发的学习方向、途径以及未来在自动驾驶领域中的展望。 一、学习方向:…

Java 解析Excel单元格的富文本

1. 总体介绍 该方法是解析 xlsx 单元格中的富文本&#xff0c;注意不是 xls&#xff0c;xls 的 api 不一样&#xff0c;试了很久没成功。只实现了解析 斜体字、上下标&#xff0c;其它的实现方式应该类似。 2. 具体实现 2.1 代码 package util;import java.io.FileInputStr…

人工智能安全-3-噪声数据处理

0 提纲 噪声相关概述噪声处理的理论与方法基于数据清洗的噪声过滤主动式过滤噪声鲁棒模型1 噪声相关概述 噪声类型: 属性噪声:样本中某个属性的值存在噪声标签噪声:样本归属类别关于噪声分布的假设:均匀分布、高斯分布、泊松分布等。 标签噪声的产生原因: (1)特定类别…

[SQL挖掘机] - 窗口函数 - dense_rank

介绍: dense_rank() 是一种常用的窗口函数&#xff0c;它为结果集中的每一行分配一个密集排名&#xff08;dense rank&#xff09;。这个密集排名基于指定的排序顺序&#xff0c;并且在遇到相同的值时&#xff0c;不会跳过排名。 用法: dense_rank() 函数的语法如下&#xf…

ERROR: transport error 202: gethostbyname: unknown host报错解决方案

Java 9 syntax for remote debugger: -agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005Java 8 不适用 *:port&#xff0c;应该使用: -agentlib:jdwptransportdt_socket,servery,suspendn,address5005参考 https://stackoverflow.com/questions/50344957/ja…

C++ 文件流操作详解

1. C I/O流 本文章有很多内容参考并借鉴了《C primer plus》 这本经典。这里先说明一下。 1. C I/O流 1.1. 数据流1.2. 控制台流1.3. 文件流 1.3.1. 什么是文件流&#xff1f;1.3.2. 缓冲区1.3.3. 文件流和控制流的关系1.3.4. 文件处理1.3.5. 简单的文件I/O1.3.6. 流状态检查和…

Day11-作业(SpringBootWeb案例)

作业1&#xff1a;完成课上所讲解的部门管理、员工管理的所有功能。[必须] 部门管理&#xff1a; 查询部门 删除部门 新增部门 修改部门 员工管理&#xff1a; 条件分页查询 批量删除员工 新增员工 修改员工 文件上传 作业2&#xff1a;整理 文件上传、配置文件 [必…

MATLAB RANSAC圆柱体点云拟合 (28)

MATLAB RANSAC圆柱体点云拟合 (28) 一、算法介绍二、函数介绍三、算法实现四、效果展示一、算法介绍 RANSAC拟合方法,从原始点云中拟合具有特定形状的点云,这里对原始点云中大致呈圆柱的点云进行分割,圆柱的半径,以及朝向都是比较重要的定义圆柱的参数。下面是具体使用的…

Mysql-学习笔记

文章目录 1. 数据库1.1 Mysql安装及常用代码1.2 SQL介绍1.3 SQL分类1. DDL-操作数据库&#xff0c;表2. DML-对表中的数据进行增删改3. DQL-对表中的数据进行查询条件查询模糊查询排序查询分组查询分页查询 4. DCL-对数据库进行权限控制外键约束表关系-多对多多表查询事务 1. 数…

ETHERNET/IP转RS485/RS232网关什么是EtherNet/IP?

网络数据传输遇到的协议不同、数据互通麻烦等问题&#xff0c;一直困扰着大家。然而&#xff0c;现在有一种神器——捷米JM-EIP-RS485/232&#xff0c;它将ETHERNET/IP网络和RS485/RS232总线连接在一起&#xff0c;让数据传输更加便捷高效 那么&#xff0c;它是如何实现这一功能…

建木使用进阶-创建密钥管理

阿丹&#xff1a; 第一次我们进入建木&#xff0c;第一件事情就是配置我们相关的密钥。 解读&#xff1a; 在建木中我们可以进行创建密钥来对我们服务器等密码进行方便的管理。 注意&#xff1a; 登录的时候账号为&#xff1a;admin 密码为&#xff1a;123456 这是初始…

Kubernetes(K8s)从入门到精通系列之四:K8s的基本概念和术语之集群类

Kubernetes K8s从入门到精通系列之四:K8s的基本概念和术语之集群类 一、Master二、Node三、命名空间集群表示一个由Master和Node组成的K8s集群。 一、Master Master指的是集群的控制节点。在每个K8s集群都需要有一个或一组被称为Master的节点,来负责整个集群的管理和控制。M…

linux -网络编程一网络基本概念和Socket编程

目录 1 网络基础概念 1.1 协议 1.2分层模型 1.3 数据通信过程 1.4 网络应用程序的设计模式 1.5 以太网帧格式 1.6网络名词术语解析(自行阅读扫盲) 2 SOCKET编程 2.1 socket编程预备知识 2.2 socket编程主要的API函数介绍 目标&#xff1a; 了解OSI七层、TCP/IP四层模…

【vue】 前端vue2 全局水印效果

最近写项目遇到一个需求&#xff0c;全局显示水印&#xff0c;不管在哪个路由都要显示。 想要实现的效果&#xff1a; 新建shuiyin.js文件 // 定义水印函数 const addWatermark ({container document.body, // 水印添加到的容器&#xff0c;默认为 bodywidth "200px&…

MaxPatrol SIEM 增加了一套检测供应链攻击的专业技术

我们为 MaxPatrol SIEM 信息安全事件监控系统增加了一套新的专业技术。 该产品可帮助企业防范与供应链攻击相关的威胁。 此类攻击正成为攻击者的首要目标&#xff1a;它们以软件开发商和供应商为目标&#xff0c;网络犯罪分子通过他们的产品进入最终目标的基础设施。 因此&a…

新版塔罗占卜网站源码八字合婚风水起名附带搭建视频

新版塔罗占卜网站源码八字合婚风水起名PHP源码附带搭建视频,附带文本教学及视频教程安装方法以linux为例: 1、建议在服务器上面安装宝塔面板,以便操作,高逼格技术员可以忽略这步操作。 2、把安装包文件解压到根目录,同时建立数据库,把数据文件导入数据库 3、修改核心文件…

安达发|APS智能排程软件推动企业智能转型

随着智能化技术的飞速发展&#xff0c;企业在构建智能计划排产规划方面有了新的可能性。APS排程软件&#xff08;Advanced Planning and Scheduling&#xff09;作为一种强大的工具&#xff0c;为企业提供了实现智能计划排产规划的新模式&#xff0c;主要是利用计算机运算速度快…

无线电蓝牙音频-BES数字音频系统音频流图

+我V hezkz17进数字音频系统研究开发交流答疑群(课题组) (1)音乐播放音频流图 Decode"(解码)是指将编码后的数据转换回原始格式或可读取的形式的过程,SBC解码成PCM

JetBrains Toolbox:提升开发效率的利器

介绍 JetBrains Toolbox是一款强大的开发者工具集合&#xff0c;由著名的开发工具公司JetBrains开发。它集成了多种常用的开发工具&#xff0c;为开发者提供了全面的开发环境和工具。无论是Java、Python、Web、PHP还是其他语言的开发&#xff0c;JetBrains Toolbox都能满足你的…

06 HTTP(下)

06 HTTP&#xff08;下&#xff09; 介绍服务器如何响应请求报文&#xff0c;并将该报文发送给浏览器端。介绍一些基础API&#xff0c;然后结合流程图和代码对服务器响应请求报文进行详解。 基础API部分&#xff0c;介绍stat、mmap、iovec、writev。 流程图部分&#xff0c;描…