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 SetProjection(const 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 SetGeocCS(const 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 SetProjCS(const 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 SetWellKnownGeogCS(const char*)
根据众所周知的名称设置 GeogCS
参数:
pszName -- 已知地理坐标系的名称。
返回: OGRERR_NONE成功时,或者OGRERR_FAILURE如果无法识别名称、目标对象已初始化或无法成功查找 EPSG 值
// 创建一个 OGRSpatialReference 对象OGRSpatialReference srs;// 设置为 WGS 84 地理坐标系OGRErr err = srs.SetWellKnownGeogCS("WGS84");
CopyGeogCSFrom
OGRErr CopyGeogCSFrom(const 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 库中的一个重要类,用于管理和操作地理空间数据的空间参考系统(Spatial Reference System,SRS)。它提供了一系列功能&…...

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

LaTex的下载与安装超详细windows版
1.LaTex的下载 (texlive下载TexStudio下载) (1)texlive下载: 这里清华镜像下载 (2)TexStudio下载: 点这里下载镜像 可以根据不同的系统选择不同的版本 2 .LaTex的安装 &#…...

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

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

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

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

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

【网络编程】五种网络IO模式
对于一次IO访问(以read为例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,会经历两个阶段: 1、等待数据准…...

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

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

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

PHP异步框架总结
目前主要有: 国产 swoole workerman 国外 framework-x revoltrevolt reactphp amphp async...

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

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

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

SVN代码迁移到Git方法
1.在SVN上新增一个项目 一、点击新建项目 二、创建空白项目 三、填入项目信息 四、myProject项目模板创建成功 2.将代码提交到Git 一、新建一个文件夹myProject,将从SVN下载过来的代码复制一份拷贝到该文件夹下,注意:不要把.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版本说明
✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 微服务 ✨特色专栏: 知识分享 &#x…...

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

Eureka 学习笔记4:EurekaClient
版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口,拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能: 获取注册表根据应用名称获取应用根据实例 id 获取实例信息 public interface LookupService<…...

前端后端路径问题详解
加了项目名,访问所有页面都是 在 项目名下 出来的路径 不加项目名,访问所有页面都不用加项目名,然后前后端的加/的效果都一样,都是在根目录下没有项目名的路径!!! 后端 一、MVC 1.不管是转发…...

@vue/composition-api原理解析
前言 上一篇文章介绍了vue/composition-api是什么,以及为什么要用,现在来系统地解析一下 vue/composition-api 的实现原理,希望可以加深对其工作机制的理解。 老规矩先分享下AI评价:对vue/composition-api实现原理的介绍整体上非…...

Kubernetes(K8s)从入门到精通系列之三:K8s的基本概念和术语之资源对象概述
Kubernetes K8s从入门到精通系列之三:K8s的基本概念和术语之资源对象概述 K8s中的基本概念和术语大多是围绕资源对象(Resource Object)来说的,而资源对象在总体上可分为以下两类: 某种资源的对象,例如节点(Node)、Pod、服务(Serv…...

cc2652在使用过程中的一些注意事项
可能不只是cc2652有这些坑,估计cc26xx系列都存在。 CCS的预编译宏配置位置 时钟获取 时钟获取__STATIC_INLINE uint32_t SysCtrlClockGet( void )在sys_ctrl.h中,sys_ctrl.h没有在工程路径下面,在其sdk中 节拍时间获取 ICall_getTicks(); …...

YAPI接口自动鉴权功能部署详解
目录 安装准备 在线安装 离线安装 配置使用 安装准备 以下操作,默认要求自己部署过yapi,最好是部署过yapi二次开发环境。 无论是选择在线安装或者是本地安装,都需要安装client工具。 1、yapi-cli:npm install yapi-cli –g…...

【雕爷学编程】Arduino动手做(180)---Seeeduino Lotus开发板3
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…...

搜索与图论(二)
最短路 单源最短路 所有边权都是正数 朴素Dijkstra算法 基本思路:从1号点到其他点的最短距离 步骤: 定义一个s集合包含当前已确定最短距离的点 1、初始化距离dis[1] 0,dis[其它] 正无穷 2、for i 0-n循环n次 2.1找到不在s中的距离最近的点 ->t 2.2把t加到s当中去…...

【SQL】-【计算两个varchar类型的timestamp的毫秒差】
背景 TRANSTAMP3、TRANSTAMP2在Oracle数据库中的类型为varchar,但实际保存的值是时间戳timestamp类型,现在要计算二者的毫秒差 Oracle或MySQL extract(second from (to_timestamp(TRANSTAMP3,yyyy-mm-dd hh24:mi:ss.ff) - to_timestamp(TRANSTAMP2,yyy…...

Java 微信商家打款到零钱(旧版本接口)
旧版微信支付接口要求请求时携带证书请求 构建请求参数 /*** 付款到零钱** param withdrawalDto dto撤军* return {link Map }<{link String }, {link Object }>* throws Exception 异常* Author chen 2023-07-27 15:04*/private Map<String, Object> payToUser(Wi…...