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

免费推广网站建设整合营销经典案例

免费推广网站建设,整合营销经典案例,个人摄影网站模版,上海网站制作的class OGRSpatialReference #include <ogr_spatialref.h> OGRSpatialReference 是 GDAL/OGR 库中的一个重要类&#xff0c;用于管理和操作地理空间数据的空间参考系统&#xff08;Spatial Reference System&#xff0c;SRS&#xff09;。它提供了一系列功能&…

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 年。
http://www.khdw.cn/news/469.html

相关文章:

  • 北京做网站要多少钱免费代码网站
  • 鹿泉网站制作公司常州seo
  • wordpress 调取栏目广州seo外包
  • 网站建设的增值税税率网站seo优化总结
  • iis 默认网站 删除企业的网络推广
  • 找兼职工作在家做正规网站账号权重查询
  • 天峻县公司网站建设seo的优化策略有哪些
  • 做网站价格 网络推广托管服务百度助手官网
  • 北京海淀区工商局网站游戏推广渠道
  • 淘宝联盟返利网站怎么做产品推广文案100字
  • 日照seo外包公司关键词优化心得
  • 个人怎么建立网站吗网站首页模板
  • 网站建设与制作总结代运营公司排行榜
  • 青州网站百度关键词优化公司哪家好
  • 装修公司网站用的织梦活动推广方式
  • 深圳网站设计公司 网络服务网站自建
  • 广东政府疫情发布会抖音seo什么意思
  • 北京网站建设的公司哪家好武汉推广系统
  • 夏县做网站泉州seo按天收费
  • 怎么用云主机做网站优化关键词规则
  • 数据库做后台网站深圳谷歌优化seo
  • 政府网站建设成效夸克搜索引擎入口
  • 秀米网站怎么做推文镇江网站
  • 只用html5可以做网站吗百度百科官网登录
  • 新加坡政府网站建设的特点爱站工具包手机版
  • 营销展示型网站模板百度网站免费优化软件下载
  • 中美贸易最新动态江苏seo哪家好
  • 网站服务器租用价格西安专业seo
  • 同性恋色做视频网站衡阳seo外包
  • 数码产品销售网站建设策划书深圳优化公司统高粱seo