坐标转换程序:布尔沙七参数计算、投影正反算、坐标换带等
由于工作需要,编写了大地测量方面坐标转换的程序,主要实现以下功能:
- 投影正反算
- 布尔沙七参数计算
- 七参数坐标转换
- 投影换带
- 大地坐标系、投影坐标系、空间直角坐标系的任意互转
程序特点:
- 支持任意椭球参数
程序内定义了北京54、西安80、WGS84、CGCS2000等常用椭球基准,并且可以采用自定义椭球,只需要输入椭球长轴半径和扁率的倒数两个最常用的参数,即可完成椭球的定义。方便快捷。 - 支持单点转换和文件转换两种方式
两种方式共用一个按键,两种方式同时执行。单点转换可以可视化的观察坐标转换的结果,文件转换可以大批量的进行数据转换,无数量限制。 - 支持多种角度单位
无论是“度”或者dd.mmss的经纬度格式,均可支持。也可以用来进行“度”和dd.mmss格式的转换。
经过大量的实验数据验证,程序稳定可靠。精度可达到亚毫米级别。
作者作为测绘工作者,长期从事摄影测量数据的处理工作,包括相机标定,畸变校正,空三处理,地形数据编辑,DOM,DEM等数据的制作。拥有一整套针对摄影测量的内外业解决方案。
程序和代码均可分享,可联系:[email protected]
//度数和弧度的转换
double Deg2Rad(double deg);
double Rad2Deg(double rad);
//度转度分秒
double Deg2DMS(double deg);
//度分秒转度
double DMS2Deg(double DMS);
//高斯投影正反算
void GaussForward(double a,double f,double B,double L,double L0,double &x,double &y,double east_plus);
void GaussBackword(double a,double f,double x,double y,double L0,double &B,double &L,double east_plus);
//UTM投影正反算
void UTMForward(double a,double f,double B,double L,double L0,double &x,double &y,double east_plus);
void UTMBackword(double a,double f,double x,double y,double L0,double &B,double &L,double east_plus);
//大地坐标系和空间直角坐标系的相互转换
void BLH2XYZ(double a,double f,double B,double L,double H, double &X,double &Y,double &Z);
void XYZ2BLH(double a,double f,double X,double Y,double Z, double &B,double &L,double &H);```
软件截图如下: