如何判断投影坐标是 3 度带还是 6 度带?如何计算中央子午线经度?

在做坐标转换时通常会涉及到:3 度带、6 度带、中央子午线经度的计算,下面使用两种方法对其进行展开计算;

1、什么是3°带?

三度带就是地球的一周(360度)按照经度方向三度一个划分为120份;

2、什么是6°带? 

六度带则是划分成60份。三度带的经度需要进行换算,主要是找到带区名,如12区,代表其经度从36起算,折成六度带,就是6区;

一、常规推理法

1、已知投影坐标,判断投影坐标是 3 度带还是 6 度带坐标

        如(4231898,21655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为21500000米。假如你的工作区经度在120度至126度范围,则该坐标系为6度带坐标系,该带的中央经度为123度。关注并星标《测绘之家》微信公众号,获取更多测绘测量技术干货!
        如(2949320,36353822)其中36即为带号,已知该地点位于贵阳市附近,而从地图上我们看到贵阳大概的经度是东经108度左右,因此可以36*3=108,所以该坐标系为3度带坐标系,该带的中央经度为108度。而不可能为6度带:36*6=216。

注:(4231898,21655933)、(2949320,36353822)都是指投影坐标;

2、已知投影坐标,计算中央子午线经度

        通过上述操作判断出该投影坐标是 3 度带还是 6 度带后即可计算中央子午线经度

int N, L0;

//y是投影坐标中的纵坐标
N = (int)(y / 1000000.0);       //当地带号,y坐标对1000000(常量)取整

//如果是6°带
L0 = N * 6 - 3;             //中央子午线经度

//如果是3°带
L0 = N * 3;

二、使用 gdal 直接从 .tif 影像中读取 

GDALAllRegister();

GDALDataset* podataset = (GDALDataset*)GDALOpen("..\\testImage\\wgs1.tif", GA_ReadOnly);

//获取投影
const char* proj = podataset->GetProjectionRef();

OGRSpatialReference* _geos = nullptr;		//WKT地理坐标
OGRSpatialReference _proj;					//WKT投影坐标

_proj.SetFromUserInput(proj);

//投影方式
const char* proj_ = _proj.GetAttrValue("PROJCS");
     
//作用类似于判空
if (_proj.IsLocal())
{
	proj_ = _proj.GetAttrValue("LOCAL_CS");
}
cout << proj_ << endl;

//直接获取中央子午线经度
double L0 = _proj.GetProjParm("central_meridian", 0.0);		

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库内核

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值