资源简介

已经过测试的高斯正算的C++源代码。因是以前写的,坐标转换的模式不全,代码仅提供了WGS84系统的大地坐标到WGS84的高斯平面坐标的转换。其他坐标系统的大地坐标->高斯平面的转换仅需修改部分参数即可。

资源截图

代码片段和文件信息

#include “function.h“
#include 
#include 

using namespace std;


const double PI = 3.14159265353846;

double Dm2Dms(const double& Dm)
{
double DegreeMinute;
double Second;
int Sign;
double Dms;
double TDm = Dm;

if(TDm >= 0)
Sign = 1;
else 
Sign = -1;
TDm = fabs(TDm);

Degree = floor(TDm/100.0);
Minute = floor(fmod(TDm100.0) );

Second = fmod(TDm1.0) * 60.0;

Dms = Sign * (Degree * 10000.0 + Minute * 100.0 + Second);

return Dms;
}

double Dms2Rad(const double& Dms)
{
double TDms;
double Degree Miniute;
double Second;
int Sign;
double Rad;

TDms = Dms;
if(TDms >= 0)
Sign = 1;
else
Sign = -1;
TDms = fabs(TDms);
Degree = floor(TDms /10000.0);
Miniute = floor(fmod(TDms / 100.0 100.0));
Second = fmod(TDms 100.0);
Rad = Sign * (Degree + Miniute / 60.0 + Second / 3600.0) * PI / 180.0;

return Rad;
}

double Rad2Dms(const double& Rad)  //OK
{
double Degree Miniute;
double Second;
int Sign;
double Dms;

double TRad = Rad;
if(TRad >= 0)
Sign = 1;
else
Sign = -1;
TRad = fabs(TRad * 180.0 / PI);

Degree = floor(TRad);

Miniute = floor(fmod(TRad * 60.0 60.0));
//double fmod(double xdouble y); 求两浮点数相除后的余数 
Second = fmod(TRad * 3600.0 60.0);
Dms = Sign * (Degree*10000.0 + Miniute * 100.0 + Second );//example : 314 45 56.456

return Dms;
}

double DmsAddDms(const double x1const double x2)//第一个必须为正数
{
double res;
int dec;
int min;
double sec;
double temp;
if(x2 >= 0)
{
res = x1 + x2;
}
else
{
temp = fabs(x2);
dec = (int)(temp /10000);
min = (int)((temp - dec * 10000.00) / 100);
sec = temp - dec * 10000 - min * 100;

res = x1 - dec*10000.0;
if(fmod(x110000.0) <= (min * 100 + sec) )
{
res = res - 10000.0;
if(fmod(x1100.0) <= sec)
{
res = res - 100.0;
}
res += fmod(x1100.0) + 60 - sec;
}
res += ((int)(fmod(x110000.0)/100.0) )*100.0 + 60*100 - min * 100;
}
return res;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2049  2008-07-07 15:05  GaoSiPrj\function.cpp

     文件        295  2008-07-07 14:51  GaoSiPrj\function.h

     文件       4615  2008-07-04 10:32  GaoSiPrj\GaoSiPrj.dsp

     文件        524  2008-07-03 14:36  GaoSiPrj\GaoSiPrj.dsw

     文件      66560  2009-02-15 22:05  GaoSiPrj\GaoSiPrj.ncb

     文件      54784  2009-02-15 22:05  GaoSiPrj\GaoSiPrj.opt

     文件        935  2009-02-15 21:56  GaoSiPrj\GaoSiPrj.plg

     文件       1008  2009-02-15 21:56  GaoSiPrj\main.cpp

     文件       9298  2009-02-15 22:05  GaoSiPrj\PrjPoint.cpp

     文件       1083  2009-02-15 22:05  GaoSiPrj\PrjPoint.h

     文件      16186  2008-07-07 15:05  GaoSiPrj\Debug\function.obj

     文件     606274  2009-02-15 21:56  GaoSiPrj\Debug\GaoSiPrj.exe

     文件     851636  2009-02-15 21:56  GaoSiPrj\Debug\GaoSiPrj.ilk

     文件    2116272  2009-02-15 21:56  GaoSiPrj\Debug\GaoSiPrj.pch

     文件    1451008  2009-02-15 21:56  GaoSiPrj\Debug\GaoSiPrj.pdb

     文件     152498  2009-02-15 21:56  GaoSiPrj\Debug\main.obj

     文件      32478  2009-02-15 21:56  GaoSiPrj\Debug\PrjPoint.obj

     文件     115712  2009-02-15 21:56  GaoSiPrj\Debug\vc60.idb

     文件     126976  2009-02-15 21:56  GaoSiPrj\Debug\vc60.pdb

     目录          0  2009-01-17 08:45  GaoSiPrj\Debug

     目录          0  2009-01-17 08:45  GaoSiPrj

----------- ---------  ---------- -----  ----

              5610191                    21


评论

共有 条评论