许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  (二)GDAL开发与Esri的WKT格式详解

(二)GDAL开发与Esri的WKT格式详解

阅读数 17
点赞 0
article_banner
  • 问题来源

最近在使用gdal来处理一些遥感数据,其中我的数据是一个波段的tif高程影像数据。然后在程序中需要判断当然影像数据的投影是否符合要求。我们都知道,如何使用某一个坐标系需要一个约定,而这个公认的,为大家所知wkt算是一个之一。关于wkt,其为空间参考文字描述。我们最为知晓的应该就是编号id为4326和3957这个了。前者为WGS84的空间参考,而3857为一种墨卡托投影参考。而我这里使用的ArcGIS Desktop将我们CGCS2000的椭球坐标定义为WGS84椭球坐标(在精度要求不是非常严格的情况下,可视这两种椭球坐标相当)。

  • 过程处理

于是在ArcGIS Desktop中将上面的数据按照如下图的定义。注意其中的WKT为3857。

接下来就是使用GDAL将投影信息给读取出来了。代码实现非常简单。

const char* projection_wkt = dataset->GetProjectionRef();if(projection_wkt == NULL){               return false;}

获取到的projextion_wkt的字符信息为:

PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext  +no_defs"]]

从这里可以看得出,ArcGIS Desktop声明了WGS_1984_Web_Mercator_Auxiliary_Sphere椭球,地理坐标椭球为GCS_WGS_1984,椭球信息SPHEROID长半轴为:6378137.0,短半轴为:298.257223563,起始子午线为格林尼治经线。单位为米。

好了我们现在使用GDAL的OGRSpatialReference类来创建一个参考信息。

	char    *EPSGID_WKT = NULL;	OGRSpatialReference   myespEPSGIDosr;	myespEPSGIDosr.importFromEPSG((int)3857); 	myespEPSGIDosr.exportToWkt(&EPSGID_WKT);

来看一下EPSGID_WKT带给我们什么样的信息。

PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,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["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext  +no_defs"],AUTHORITY["EPSG","3857"]]

显然,同样这里的WKT是3857,但输出的字符信息包含却是完全不同。主要区别是椭球的标记一个是GCS_WGS_1984,另外一个是WGS_1984。

即便GDAL提供从esri投影转换相关函数。比如说morphToESRI、和morphFromESRI但是,最后的wkt描述字符串还是不完全一致。我这里为了判定两个坐标参考是否相等,只能通过其他逻辑来判定了。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空