资源简介
布尔沙模型为常用的三维坐标转换模型,算法简单且容易实现。其主要是利用泰勒级数展开的方法将模型线性化,然后解算坐标转换的旋转和平移参数,最后可以 通过七个参数求解出在目的坐标系下坐标
代码片段和文件信息
// CoordTra.cpp : implementation file
//
#include “stdafx.h“
#include “GPSCoord.h“
#include “CoordTra.h“
#include
#include “Matrix.h“
#include “math.h“
#define PI 3.1415926535897932384626433
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCoordTra dialog
using namespace std;
CCoordTra::CCoordTra(CWnd* pParent /*=NULL*/)
: CDialog(CCoordTra::IDD pParent)
{
//{{AFX_DATA_INIT(CCoordTra)
m_Py = 0;
m_Px = 0;
m_Pz = 0;
m_Xx = 0;
m_Xy = 0;
m_Xz = 0;
m_ChiDu = 0;
m_num = 0;
Count2=4;
f_coord.x =0;
f_coord.y =0;
f_coord.z =0;
n_coord.x =0;
n_coord.y =0;
n_coord.z =0;
//}}AFX_DATA_INIT
}
void CCoordTra::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCoordTra)
DDX_Text(pDX IDC_FCOORD_X f_coord.x);
DDX_Text(pDX IDC_FCOORD_Y f_coord.y);
DDX_Text(pDX IDC_FCOORD_Z f_coord.z);
DDX_Text(pDX IDC_NCOORD_X n_coord.x);
DDX_Text(pDX IDC_NCOORD_Y n_coord.y);
DDX_Text(pDX IDC_NCOORD_Z n_coord.z);
DDX_Text(pDX IDC_NUM m_num);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCoordTra CDialog)
//{{AFX_MSG_MAP(CCoordTra)
ON_BN_CLICKED(IDC_TRANSFORM OnTransform)
ON_BN_CLICKED(IDC_READ OnRead)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCoordTra message handlers
void CCoordTra::OnTransform()
{
// TODO: Add your control notification handler code here
UpdateData();
n_coord=tracoord(f_coord);
UpdateData(FALSE);
}
coord CCoordTra::tracoord(coord p_coord)//坐标转换函数
{
coord q_coord;
q_coord.x=m_Px+p_coord.x*(1+m_ChiDu)+m_Xz*p_coord.y-m_Xy*p_coord.z;
q_coord.y=m_Py+p_coord.y*(1+m_ChiDu)-m_Xz*p_coord.x+m_Xx*p_coord.z;
q_coord.z=m_Pz+p_coord.z*(1+m_ChiDu)+m_Xy*p_coord.x-m_Xx*p_coord.y;
return q_coord;
}
void CCoordTra::OnRead()
{
// TODO: Add your control notification handler code here
UpdateData();
Count2=m_num;
coord *result;
result=new coord[Count2];
date=new coord[Count2];
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrtitle=“输入需要转换的点坐标“;
fileDlg.m_ofn.lpstrFilter=“Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0“;
int i;
if(IDOK==fileDlg.DoModal())
{
CString filefullname=fileDlg.GetPathName();
ifstream file(filefullname);
for(i=0;i {
file>>date[i].x;
file>>date[i].y;
file>>date[i].z;
result[i]=tracoord(date[i]);
}
}//读取文件并计算新坐标
MessageBox(“转换成功,请保存!“);
CFileDialog fileDlg1(FALSE);
fileDlg1.m_ofn.lpstrtitle=“保存对话框“;
fileDlg1.m_ofn.lpstrFilter=“Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0“;
fileDlg1.m_ofn.lpstrDefExt=“txt“;
if(IDOK==fileDlg1.DoModal())
{
CString filefullname=fileDlg1.GetPathName();
ofstream file(filefullname);
Mess
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-11-03 10:32 GPSCoord\
文件 3377 2015-08-29 11:51 GPSCoord\CoordTra.cpp
文件 1476 2010-11-27 17:45 GPSCoord\CoordTra.h
目录 0 2015-11-03 10:30 GPSCoord\Debug\
文件 6202 2015-11-03 10:30 GPSCoord\Debug\cl.command.1.tlog
文件 46314 2015-11-03 10:30 GPSCoord\Debug\CL.read.1.tlog
文件 3508 2015-11-03 10:30 GPSCoord\Debug\CL.write.1.tlog
文件 218690 2015-08-29 11:51 GPSCoord\Debug\CoordTra.obj
文件 182272 2015-11-03 10:30 GPSCoord\Debug\GPSCoord.exe
文件 667 2015-08-29 11:51 GPSCoord\Debug\GPSCoord.exe.em
文件 732 2015-08-29 11:51 GPSCoord\Debug\GPSCoord.exe.em
文件 381 2015-11-03 10:30 GPSCoord\Debug\GPSCoord.exe.intermediate.manifest
文件 2040220 2015-11-03 10:30 GPSCoord\Debug\GPSCoord.ilk
文件 59 2015-11-03 10:30 GPSCoord\Debug\GPSCoord.lastbuildstate
文件 3232 2015-11-03 10:30 GPSCoord\Debug\GPSCoord.log
文件 40339 2015-08-29 11:36 GPSCoord\Debug\GPSCoord.obj
文件 20381696 2015-08-29 11:36 GPSCoord\Debug\GPSCoord.pch
文件 4606976 2015-11-03 10:30 GPSCoord\Debug\GPSCoord.pdb
文件 10252 2015-08-29 11:51 GPSCoord\Debug\GPSCoord.res
文件 707 2015-08-29 11:36 GPSCoord\Debug\GPSCoord.vcxprojResolveAssemblyReference.cache
文件 0 2015-08-29 11:36 GPSCoord\Debug\GPSCoord.write.1.tlog
文件 51320 2015-08-29 11:36 GPSCoord\Debug\GPSCoordDoc.obj
文件 35789 2015-08-29 11:36 GPSCoord\Debug\GPSCoordView.obj
文件 212 2015-08-29 11:51 GPSCoord\Debug\GPSCoord_manifest.rc
文件 2 2015-11-03 10:30 GPSCoord\Debug\li
文件 2 2015-11-03 10:30 GPSCoord\Debug\li
文件 3980 2015-11-03 10:30 GPSCoord\Debug\li
文件 10864 2015-11-03 10:30 GPSCoord\Debug\li
文件 1552 2015-11-03 10:30 GPSCoord\Debug\li
文件 32114 2015-08-29 11:36 GPSCoord\Debug\MainFrm.obj
文件 720 2015-11-03 10:30 GPSCoord\Debug\mt.command.1.tlog
............此处省略61个文件信息
相关资源
- GeoTrans坐标转换软件
- 大地坐标和空间直角坐标之间的相互
- 大地坐标转换为笛卡尔坐标(地心直
- WGS84和BJ54坐标转换源程序
- EGM96的计算含有坐标转换及其他参数计
- CoodTools坐标转换
- 坐标转换笑脸软件
- WGS84坐标转换经纬度
- 傻瓜坐标转换器
- VC高斯投影与坐标转换的源代码.rar
- 坐标转换工具(地理坐标经纬度)
- 最新完整版坐标转换软件Coord(含说明
- 地理位置定位经纬度坐标转换公式
- 高斯投影正反算 高斯大地坐标转换
- 坐标转换北京54、西安80、WGS84、自定
- 地图坐标转换,火星、WGS84、BD09
- 七参数的计算
- 万能坐标转换
- 空间坐标转换七参数求解软件的设计
- 编译后的Proj4开源库
- 坐标转换工具:GPS工具箱
- teechart屏幕坐标转换为实际坐标
- 地图投影、坐标转换、GPS高程拟合和
- 坐标转换.rar
- 坐标转换包含CGSC2000坐标
- 大地坐标与空间直角坐标互相转换
- 用文件的方式把xyz的坐标值转换为N
- 坐标转换,地心地固转经纬高坐标系
- GPS坐标转换综合程序
- XYZ2ENU坐标转换批处理
评论
共有 条评论