当前位置: 首页 > news >正文

GDAL C++ API 学习之路 (4) Spatial Reference System篇 OGRSpatialReference类

class OGRSpatialReference        #include <ogr_spatialref.h>

OGRSpatialReference 是 GDAL/OGR 库中的一个重要类,用于管理和操作地理空间数据的空间参考系统(Spatial Reference System,SRS)。它提供了一系列功能,允许用户定义、查询、解析和转换地理空间数据的坐标系统和投影信息

Public Functions

IsSameGeogCS

int IsSameGeogCS(const OGRSpatialReference*) const 

GeogCS是否匹配

参数:

poOther -- 正在比较的 SRS。

返回: 如果它们相同,则为 TRUE,否则为 FALSE

    // 定义两个 WGS 84 经纬度坐标系的WKT字符串const char* wktString1 = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]";const char* wktString2 = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]";// 创建两个 OGRSpatialReference 对象,并从WKT字符串中导入空间参考系统OGRSpatialReference srs1;srs1.importFromWkt(&wktString1);OGRSpatialReference srs2;srs2.importFromWkt(&wktString2);// 判断两个空间参考系统是否具有相同的地理坐标系int isSameGeogCS = srs1.IsSameGeogCS(&srs2);// 输出判断结果if (isSameGeogCS) {printf("两个空间参考系统具有相同的地理坐标系。\n");} else {printf("两个空间参考系统具有不同的地理坐标系。\n");}

IsSameVertCS

int IsSameVertCS(const OGRSpatialReference*) const

VertCS是否匹配

参数:

poOther -- 正在比较的 SRS。

返回: 如果它们相同,则为 TRUE,否则为 FALSE

IsSame

int IsSame(const OGRSpatialReference*) const 

这两个空间参考描述的是同一个系统吗

参数:

poOtherSRS -- 与之进行比较的 SRS。

返回: 如果等效,则为 TRUE,否则为 FALSE

   // 定义两个相同的 WGS 84 经纬度坐标系的WKT字符串const char* wktString1 = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]";const char* wktString2 = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]";// 创建两个 OGRSpatialReference 对象,并从WKT字符串中导入空间参考系统OGRSpatialReference srs1;srs1.importFromWkt(&wktString1);OGRSpatialReference srs2;srs2.importFromWkt(&wktString2);// 判断两个空间参考系统是否完全相同int isSame = srs1.IsSame(&srs2);

IsSame

int IsSame(const OGRSpatialReference*, const char *const *papszOptions) const

这两个空间参考描述的是同一个系统吗

参数:

  • poOtherSRS -- 与之进行比较的 SRS。

  • papszOptions -- 选项。空或空终止的选项列表

返回: 如果等效,则为 TRUE,否则为 FALSE

Clear

void Clear()

擦除当前定义

SetProjection

OGRErr SetProjectionconst char*)

设置投影名称

参数:

pszProjection -- 投影名称,应从 ogr_srs_api.h 中的宏中选择,例如 SRS_PT_TRANSVERSE_MERCATOR。

返回: OGRERR_NONE成功

    // 定义一个 UTM 投影的 WKT 字符串const char* wktString = "PROJCS[\"WGS 84 / UTM zone 18N\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"32618\"]]";// 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置空间参考系统的投影信息OGRErr err = srs.SetProjection(wktString);

SetGeocCS

OGRErr SetGeocCSconst char *pszGeocName)

设置用户可见的 GEOCCS 名称

参数:

pszName -- 要分配的用户可见名称。不用作密钥。

返回: OGRERR_NONE成功

    // 定义一个地心坐标系的 WKT 字符串const char* wktString = "GEOCCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Geocentric X\",OTHER],AXIS[\"Geocentric Y\",EAST],AXIS[\"Geocentric Z\",NORTH],AUTHORITY[\"EPSG\",\"4984\"]]";// 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置空间参考系统的地心坐标系名称OGRErr err = srs.SetGeocCS(wktString);

SetProjCS

OGRErr SetProjCSconst char*)

设置用户可见的 PROJCS 名称

参数:

pszName -- 要分配的用户可见名称。不用作密钥。

返回: OGRERR_NONE成功

    // 定义一个墨卡托投影坐标系的 WKT 字符串const char* wktString = "PROJCS[\"Mercator\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3395\"]]";// 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置空间参考系统的投影坐标系名称OGRErr err = srs.SetProjCS(wktString);

SetGeogCS

OGRErr SetGeogCS(const char *pszGeogName, const char *pszDatumName, const char *pszEllipsoidName, double dfSemiMajor, double dfInvFlattening, const char *pszPMName = nullptr

double dfPMOffset = 0.0, const char *pszUnits = nullptr, double dfConvertToRadians = 0.0)

设置地理坐标系

此方法用于设置地理坐标系的基准面、椭球体、本初子午线和角度单位。它可以单独用于建立地理空间参考,也可以应用于投影坐标系以建立基础地理坐标系。

参数:

  • pszGeogName -- 地理坐标系的用户可见名称(不用作键)。

  • pszDatumName -- 此基准的键名称。OpenGIS 规范列出了一些已知值,否则具有标准变换的 EPSG 基准名称被视为合法键。

  • pszSpheroidName -- 用户可见的椭球体名称(不用作键)

  • dfSemiMajor -- 椭球体的半长轴。

  • dfInvFlattening -- 椭球体的反向扁平化。这可以从半短轴计算为 1/f = 1.0 / (1.0 - 半小/半长)。

  • pszPMName -- 本初子午线的名称(不用作键) 如果为 NULL,则将使用默认值“Greenwich”。

  • dfPMOffset -- 格林威治相对于本初子午线的经度。始终以度为单位

  • pszAngularUnits -- 角度单位名称(有关某些标准名称,请参见 ogr_srs_api.h)。如果为 NULL,则将假定值为“度”。

  • dfConvertToRadians -- 将角度单位乘以将其转换为弧度的值。如果 pszAngularUnits 为 NULL,则将使用值 SRS_UA_DEGREE_CONV。

返回:  OGRERR_NONE成功

    // 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置地理坐标系的属性OGRErr err = srs.SetGeogCS("WGS 84", "WGS_1984", "WGS 84", 6378137, 298.257223563);

SetWellKnownGeogCS

OGRErr SetWellKnownGeogCSconst char*)

根据众所周知的名称设置 GeogCS

参数:

pszName -- 已知地理坐标系的名称。

返回:  OGRERR_NONE成功时,或者OGRERR_FAILURE如果无法识别名称、目标对象已初始化或无法成功查找 EPSG 值

    // 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置为 WGS 84 地理坐标系OGRErr err = srs.SetWellKnownGeogCS("WGS84");

CopyGeogCSFrom

OGRErr CopyGeogCSFromconst OGRSpatialReference *poSrcSRS)

从另一个 OGRSpatialReference 复制 GEOGCS

参数:

poSrcSRS -- 用于从中复制 GEOGCS 信息的空间参考。

返回: OGRERR_NONE成功或错误代码

    // 定义一个源空间参考系统,用于复制地理坐标系信息const char* srcWktString = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]";OGRSpatialReference srcSRS;srcSRS.importFromWkt(&srcWktString);// 创建一个目标空间参考系统OGRSpatialReference dstSRS;// 复制源空间参考系统中的地理坐标系信息到目标空间参考系统OGRErr err = dstSRS.CopyGeogCSFrom(&srcSRS);

SetCompoundCS

OGRErr SetCompoundCS(const char *pszName, const OGRSpatialReference *poHorizSRS, const OGRSpatialReference *poVertSRS)

设置复合坐标系        此方法将当前的SRS替换为由水平和垂直坐标系组成的COMPD_CS坐标系

参数:

  • pszName -- 复合坐标系的名称。

  • poHorizSRS - 水平SRS(PROJCS或GEOGCS)。

  • poVertSRS -- 垂直 SRS (VERT_CS)。

返回: OGRERR_NONE成功

    // 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置复合坐标系const char* compoundCSName = "WGS 84 + EGM96";// 创建水平坐标系(地理或投影)和垂直坐标系的空间参考系统OGRSpatialReference horizSRS, vertSRS;horizSRS.SetWellKnownGeogCS("WGS84");vertSRS.importFromEPSG(5773); // EGM96 - Earth Gravitational Model 1996// 设置复合坐标系OGRErr err = srs.SetCompoundCS(compoundCSName, &horizSRS, &vertSRS);

SetCoordinateEpoch

void SetCoordinateEpoch(double dfCoordinateEpoch)

将坐标纪元设置为十进制年

参数:

dfCoordinateEpoch -- 将纪元坐标为十进制年(例如 2021.3)

    // 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置坐标时期为 2000.0 年double coordinateEpoch = 2000.0;srs.SetCoordinateEpoch(coordinateEpoch);// 输出设置结果printf("成功设置空间参考系统的坐标时期为 %.1f 年。\n", coordinateEpoch);
空间参考系统的坐标时期为 2000.0 年。

如果坐标时期是 2000.0 年,并且时间是 1998 年,那么相对于坐标时期 2000.0 年,时间差为 -2.0 年。

时间差的计算方式是目标时间减去坐标时期。如果目标时间晚于坐标时期,时间差为正数,如果目标时间早于坐标时期,时间差为负数。

在这个例子中,如果时间是 1998 年,相对于坐标时期 2000.0 年,时间差为 -2.0 年。这意味着你的空间数据中的位置信息是相对于 2000 年的,如果你想要将这些位置信息转换为相对于 1998 年的位置,你可以根据时间差 -2.0 年进行相应的坐标转换。这样,你就可以考虑地球在这 2 年时间内的微小变化,得到更精确的位置信息。

GetCoordinateEpoch

double GetCoordinateEpoch() const

返回: 坐标纪元 将纪元坐标为十进制年(例如 2021.3),如果未设置或相关,则为 0

    // 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置坐标时期为 2000.0 年double coordinateEpoch = 2000.0;srs.SetCoordinateEpoch(coordinateEpoch);// 获取坐标时期并输出结果double retrievedEpoch = srs.GetCoordinateEpoch();printf("空间参考系统的坐标时期为 %.1f 年。\n", retrievedEpoch);
空间参考系统的坐标时期为 2000.0 年。

相关文章:

GDAL C++ API 学习之路 (4) Spatial Reference System篇 OGRSpatialReference类

class OGRSpatialReference #include <ogr_spatialref.h> OGRSpatialReference 是 GDAL/OGR 库中的一个重要类&#xff0c;用于管理和操作地理空间数据的空间参考系统&#xff08;Spatial Reference System&#xff0c;SRS&#xff09;。它提供了一系列功能&…...

RS232转Profinet网关rs232转网口需要如何设置

大家好&#xff0c;今天我要给大家带来一个很有意思的案例分享。你们猜猜&#xff0c;这回我们要用捷米的一款神奇的网关JM-RS485/232-PN做什么呢&#xff1f;没错&#xff0c;我们要把一台扫码枪设备通过这个RS232转PROFINET网关&#xff0c;接入到一台西门子S7-1200PLC的Prof…...

LaTex的下载与安装超详细windows版

1.LaTex的下载 &#xff08;texlive下载TexStudio下载&#xff09; &#xff08;1&#xff09;texlive下载&#xff1a; 这里清华镜像下载 &#xff08;2&#xff09;TexStudio下载&#xff1a; 点这里下载镜像 可以根据不同的系统选择不同的版本 2 .LaTex的安装 &#…...

MySQL | 存储过程快速入门

文章目录 一、概述1.1 MySQL存储过程和函数的概念1.2 优势和适用场景 二、存储过程基础2.1 存储过程与传统SQL查询的区别2.2 创建和调用存储过程创建存储过程调用存储过程 2.3 参数传递与返回值创建带有输出参数的存储过程调用带有输出参数的存储过程 2.4 流程控制语句IF语句WH…...

C# 图表控件库 ScottPlot

推荐使用ScottPlot原因&#xff1a; 1.图形界面简洁&#xff0c;样式丰富 2.代码较少 3.官方提供多种实例源码&#xff0c;并可以直接通过图形界面查看&#xff0c;便于快速开发 Github源码链接&#xff1a;https://github.com/ScottPlot/ScottPlot 官网WindowFrom Demo实例…...

013 怎么查看自己电脑的wifi密码

方法一&#xff1a;查看当前电脑连接的无线密码 步骤1&#xff1a; 打开windows命令行窗口&#xff0c;输入&#xff1a;ncpa.cpl 快速打开“控制面板”中的“网络连接”&#xff0c;如下图&#xff1a; 步骤2&#xff1a; 右键&#xff0c;打开“状态” 步骤3&#xff1a;…...

深入了解 LoRaWAN® MAC 命令

本文深入探讨了用于 LoRaWAN 网络管理的 MAC 命令。它面向终端设备软件开发人员和使用 LoRa 构建设备的团队经理,这些设备实现了LoRaWAN 链路层规范 v1.0.4。本文帮助您了解不同类型的 MAC 命令、每个命令的用途以及如何解释这些命令。 已经使用LoRaMAC-Node™等软件来处理 MA…...

跨境电商与隐擎fox指纹浏览器:保障安全与效率的完美结合

随着全球化的发展&#xff0c;跨境电商已成为各国贸易的重要组成部分。然而&#xff0c;随之而来的风险和挑战也日益增多&#xff0c;其中之一就是关联浏览器和多开浏览器可能带来的安全隐患。为了确保跨境电商的顺利运营和数据安全&#xff0c;隐擎fox指纹浏览器作为一种防关联…...

【网络编程】五种网络IO模式

对于一次IO访问&#xff08;以read为例&#xff09;&#xff0c;数据会先被拷贝到操作系统内核的缓冲区中&#xff0c;然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说&#xff0c;当一个read操作发生时&#xff0c;会经历两个阶段&#xff1a; 1、等待数据准…...

面试总结-2023版

本文受众主要为&#xff0c;互联网技术研发人员。 技术面试一般三面和HRBP面不太会卡人&#xff0c;主要都是停在了一面和二面上。我这次换工作前期主要是一面通过率比较低&#xff0c;后面主要是二面通过低。 总结影响面试通过的几点因素&#xff1a; 是否真的招人&#xf…...

bigemap在草原行业的应用案例

一.为什么选择Bigemap 1.使用软件一般都用于套坐标以及空间规划图&#xff0c;方便于项目选址和居民建房报建 2.在卫星图上找到用地范围&#xff0c;然后打点&#xff0c;导出点位范围的2000坐标&#xff0c;用于汇报出图 3.CGCS2000坐标系通过矢量转换转成地方坐标系...

DevOps系列文章之 java调用python脚本

在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件&#xff08;推荐&#xff09; 调用python脚本中的函数 简单介绍 官网地址 首页 | (jython.org) Jython项目提供了Java中的Python实现&#xff0c; 为Python提供了…...

PHP异步框架总结

目前主要有: 国产 swoole workerman 国外 framework-x revoltrevolt reactphp amphp async...

vsto excel 可以异步写入值么

在 VSTO (Visual Studio Tools for Office) 中&#xff0c;Excel 可以使用异步方式写入值。异步编程允许您在后台线程中执行耗时的操作&#xff0c;而不会阻塞主线程&#xff0c;从而提高程序的响应性能。 从 .NET 4.5 开始&#xff0c;可以使用异步和 await 关键字来简化异步…...

Android Gradle 骚操作,将两个项目合并到一个项目中

1. 前言 在工作中&#xff0c;由于各种原因&#xff0c;导致需要将两个可单独运行的App项目&#xff0c;合并到一个git仓库里&#xff0c;且单独的App项目里还有其他Module模块。 如果只是将两个项目复制到同一个文件夹下&#xff0c;还是得单独打开各个项目&#xff0c;是很不…...

虹科案例|如何分析设备故障时间和次数,打破生产瓶颈?

虹科设备绩效管理系统 保障生产设备的稳定性和可靠性 生产设备的稳定性和可靠性是保证企业正常生产的重要条件之一&#xff0c;设备故障的频发严重影响企业的正常生产&#xff0c;那么如何分析设备故障时间和次数&#xff0c;查找设备故障原因&#xff0c;协助企业打破生产瓶…...

SVN代码迁移到Git方法

1.在SVN上新增一个项目 一、点击新建项目 二、创建空白项目 三、填入项目信息 四、myProject项目模板创建成功 2.将代码提交到Git 一、新建一个文件夹myProject&#xff0c;将从SVN下载过来的代码复制一份拷贝到该文件夹下&#xff0c;注意&#xff1a;不要把.SVN文件拷…...

Linux更换阿里云yum源

1、备份 cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.backup2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo如果出现解析错误 Could not resolve host: mirrors.a…...

【1.3】Java微服务:Spring Cloud版本说明

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 微服务 ✨特色专栏&#xff1a; 知识分享 &#x…...

OpenMP

官方文档&#xff1a;OpenMP | LLNL HPC Tutorials OpenMP总览 统一内存访问&#xff1a;OpenMP、Pthreads 非统一内存访问&#xff1a;MPI OpenMP与Pthread OpenMP原理 串行区到达并行区后会派生多个线程&#xff0c;并行区代码执行完后进行线程合并&#xff0c;剩下主线程 编…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...