GIS经纬度坐标转高斯投影直角坐标(x,y)公式

GIS经纬度坐标转高斯投影直角坐标(x,y)公式

GIS经纬度坐标转高斯投影直角坐标(x, y)的公式

GPS接收机接收到的是经纬度坐标,必须通过高斯投影将其转换成高斯坐标。由已知的参心大地坐标系中点的大地纬度和大地经度(B, L),求相应的高斯投影直角坐标(x, y)的公式, 称为高斯投影正算公式。

设参考椭球的长半轴为a,第一偏心率为e,则高斯投影正算公式如下。(L、B为转换前的经纬度坐标;x、y为转换后的高斯坐标;L0为投影带的中央经线坐标;C0、C1、C2、C3为与点位无关而只与椭球参数有关的常数)

兔八哥发表于19:29 | 浏览次数(159)

高斯投影坐标正反算VB程序

高斯投影坐标正反算 V B程序 文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没有 变形,仍然相等。 操作工具: 计算机中的 代码: Dim a As Double, b As Double, x As Double, y As Double, y_#

Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#, m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val min1 = Val sec1 = Val deg2 = Val min2 = Val sec2 = Val l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val k1 = ((l_ * 180 / + 3) / 6) k2 = (l_ * 180 / / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else

mapgis的一些实用方法和处理技巧

MAPGIS的一些实用方法和处理技巧 一、如何将mapgis的图形插到word、excel、PowerPoint 中 首先点取mapgis菜单“其他->OLE拷贝”,接着打开word,点取“粘贴”。 Mapgis数据就复制到word文档里。 二、空心字格式 使用空心字时,字体采用相应字体编号的负数。如:-3表示黑体空心字。 三、合并区 1、可以在屏幕上开一个窗口,系统就会将窗口内的所有区合并,合并后区的图形参数及属性与左键弹起时所在的区相同。 2、也可以先用菜单中的选择区功能将要合并的区拾取到,然后再使用合并区功能实现。 3、还可以先用光标单击一个区,然后按住CTRL 键,在用光标单击相邻的区即可。 四、翻转图形 在Mapgis中的其它下面整图变换中比例参数的X比例中输入法-1或Y比例中输入-1后确定。 五、CAD转化为MAPGIS 1.将CAD文件另存为2004/2000DXF格式。 2.在MAPGIS主程序中选择“文件转换”。 3.输入中选择转入DXF文件,确定并复位 4.保存点线文件(面无法转化) 六、MAPGIS转化为CAD 1.在MAPGIS主程序中选择“文件转换”。 2.分别装入点线文件,复位并全选。 3.输出中选择“部分图形方式输入DXF”全选并确定。 4.打开保存的DXF文件,用CAD复位显示图形,并改字体样式。 5.保存成CAD格式。 七、如何把JPG格式的转成MSI格式 图象处理----------图象分析模块。在里面点:文件--------数据输入--------转换数据类型(选JPG)---------添加文件---------转换转换后的格式为mapgis的msi影像文件!转换为MSI文件格式后再在输入编辑里,导入后矢量化。 八、在电脑里如何做剖面图,不用手画,而且精度更高! 1、先把MAPGIS图生成JPG格式,在PHOTOSHOP中图像—图像大小—文挡大小中输入经过变化后的宽度和高度数字(根据剖面图的比例和JPG图的比例关系得出);然后按需要裁剪,以减少图形的所占内存; 2、裁剪后旋转使剖面线处于水平位置; 3、在MAPGIS中插入裁剪旋转后光栅文件,新建线和点文件,以剖面线为水平的X轴,画垂直X轴的线为Y轴,以剖面线起点的位置为坐标原点,以剖面线起点的高程为起始Y 轴刻度,在X和Y轴上标上相对应比例尺的刻度。 4、以图上等高线和X轴交点为垂足画垂直X轴的直线,以等高线的高程画垂直于Y轴的直线,上述两直线相交点就是我们要求剖面轮廓线的拐点,把这样一系列的点连起来就成了剖面图的轮廓线。 5、最后再整饰一下,就作成了剖面图。 其实也可以直接在MAPGIS中直接做,这样就省了用PHOTOSHOP这一步骤,但这样很

高斯投影坐标正反算编程报告

高斯投影坐标正反算编程报告 1. 编程思想 进行高斯投影坐标正反算的编程需要牵涉到大量的公式,为了使程序条理更清楚,各块的数据复用性更强,这里采取了结构化的编程思想。 程序由四大块组成。 GeodesyHomework 、cpp 文件用于存放main()函数,就是整个程序的入口。通过结构化的编程尽力使main()函数变得简单。 MyFunction 、h 与MyFunction 、cpp 用于存放计算过程中进行角度弧度换算时所要用到的一些自定的转换函数。 Zhengsuan 、h 与Zhengsuan 、cpp 用于存放Zhengsuan 类,在Zhengsuan 类中声明了高斯投影坐标正算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及正算计算。通过get 函数获得相应的正算结果。 Fansuan 、h 与Fansuan 、cpp 用于存放Fansuan 类,类似于Zhengsuan 类,Fansuan 类中声明了高斯投影坐标反算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及反算计算。通过get 函数获得相应的反算结果。 2. 计算模型 高斯投影正算公式 6 4256 4 42234 22)5861(cos sin 720)495(cos 24cos sin 2l t t B B N l t B simB N l B B N X x ''+-''+ ''++-''+''?''+=ρηηρρ 5 2224255 3 2233 )5814185(cos 120)1(cos 6cos l t t t B N l t B N l B N y ''-++-''+ ''+-''+''?''=ηηρηρρ 高斯投影反算公式 () () ()( ) 2 22425 52 23 36 4254 222232 8624285cos 12021cos 6cos 459061720935242f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t t t B N y t B N y B N y l y t t y N M t y t t N M t y N M t B B ηηηηη+++++++-=++- -+++ -= 3. 程序框图

高斯投影正反算公式 新

高斯投影坐标正反算 一、相关概念 大地坐标系由大地基准面和地图投影确定,由地图投影到特定椭圆柱面后在南北两极剪开展开而成,是对地球表面的逼近,各国或地区有各自的大地基准面,我国目前主要采用的基准面为:基准面,为GPS基准面,17届国际大地测量协会上推荐,椭圆柱长半轴a=6378137m,短半轴b=; 2.西安80坐标系,1975年国际大地测量协会上推荐,椭圆柱长半轴a=6378140m,短半轴b=; 3.北京54坐标系,参照前苏联克拉索夫斯基椭球体建立,椭圆柱长半轴a=6378245m, 短半轴b=; 通常所说的高斯投影有三种,即投影后: a)角度不变(正角投影),投影后经线和纬线仍然垂直; b)长度不变; c)面积不变; 大地坐标一般采用高斯正角投影,即在地球球心放一点光源,地图投影到过与中央经线相切的椭圆柱面上而成;可分带投影,按中央经线经度值分带,有每6度一带或每3度一带两种(起始带中央经线经度为均为3度,即:6度带1带位置0-6度,3度带1带位置度),即所谓的高斯-克吕格投影。

图表11高斯投影和分带 地球某点经度(L)为过该点和地球自转轴的半圆与子午线所在半圆夹角,东半球为东经,西半球为西经;地球某点纬度(B)为所在水平面法线与赤道圆面的线面角。 正算是已知大地坐标(L,B),求解高斯平面坐标(X,Y),为确保Y值为正,Y增加500公里;反算则是由高斯平面坐标(X,Y)求解大地坐标(L,B)。 二、计算模型: 地球椭球面由椭圆绕地球自转轴旋转180度而成。 图表 1 椭圆 椭圆长半轴a,椭圆短半轴b, 椭圆方程:

(1) 图表2椭球面 椭球面方程: y2 a2+ x2 b2 + z2 a2 =1 /*************************************** 与网上充斥的将函数关系先展开为泰勒级数,再依据投影规则确定各参数不同,本文直接依据空间立体三角函数关系得出结果。 *****/ (一)正算 由图表1,

高斯投影坐标正反算VB程序

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没 有变形,仍然相等。 操作工具: 计算机中的VB6.0 代码: Dim a As Double, b As Double, x As Double, y As Double, y_# Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#,

m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val(Text1.Text) min1 = Val(Text2.Text) sec1 = Val(Text3.Text) deg2 = Val(Text4.Text) min2 = Val(Text5.Text) sec2 = Val(Text6.Text) l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val(Text9.Text) k1 = ((l_ * 180 / 3.14159 + 3) / 6) k2 = (l_ * 180 / 3.14159 / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else If dh = 3 Then

高斯投影正反算编程(可编辑修改word版)

高斯投影正反算编程一.高斯投影正反算基本公式(1)高斯正算基本公式 (2)高斯反算基本公式

以上主要通过大地测量学基础课程得到,这不进行详细的推导,只是列出基本公式指导编程的进行。 二.编程的基本方法和流程图 (1)编程的基本方法 高斯投影正反算基本上运用了所有的编程基本语句,本文中是利用C++语言进行基本的设计。高斯正算中对椭球参数和带宽的选择主要运用了选择语句。而高斯反算中除了选择语句的应用,在利用迭代算法求底点纬度还应用了循环语句。编程中还应特别注意相关的度分秒和弧度之间的相互转换,这是极其重要的。 (2)相关流程图 1)正算

选择带宽 3/6 度带 计算带号 输入大地坐标 B ,L 和经差 L0 6 度带 3 度带 选择椭球参数 计算带号 计算弧长 计算平面坐标 x,y 打印 x,y 开始 计算平面坐标 x,y 计算弧长 打印 x,y

开始 输入自然值坐标x,y 和经差L0 选择椭球参数 利用迭代算法 求解底点纬度 利用公式计算B 和L 打印B 和L 2)反算

三.编程的相关代码(1)正算 # include "stdio.h" # include "stdlib.h" # include "math.h" # include "assert.h" #define pi (4*atan(1.0)) int i; struct jin { double B; double L; double L0; }; struct jin g[100]; main(int argc, double *argv[]) { FILE *r=fopen("a.txt","r"); assert(r!=NULL); FILE *w=fopen("b.txt","w"); assert(r!=NULL); int i=0;

高斯投影坐标正算公式

高斯投影坐标正算公式 高斯投影坐标正反算公式 2.2.2. 1高斯投影坐标正算公式: B, x,y 高斯投影必须满足以下三个条件: ⑴中央子午线投影后为直线;⑵中央子午线投影后长度不变;⑶投影具有正形性质,即正形投影条件。 由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即 式中,x为的偶函数,y为的奇函数;,即, 如展开为的级数,收敛。 (2-10) 式中是待定系数,它们都是纬度B的函数。 由第三个条件知: 分别对和q求偏导数并代入上式 (2-11) 上两式两边相等,其必要充分条件是同次幂前的系数应相等,即

(2-12) (2-12)是一种递推公式,只要确定了就可依次确定其余各系数。 由第二条件知:位于中央子午线上的点,投影后的纵坐标x应等于投影前从赤道量至该点的子午线弧长X,即(2-10)式第一式中,当时有: (2-13) 顾及(对于中央子午线) 得: (2-14,15) (2-16) 依次求得并代入(2-10)式,得到高斯投影正算公式

(2-17) 2.2.2. 2高斯投影坐标反算公式 x,y B, 投影方程: (2-18) 高斯投影坐标反算公式推导要复杂些。 ⑴由x求底点纬度(垂足纬度),对应的有底点处的等量纬度,求x,y与 的关系式,仿照式有, 由于y和椭球半径相比较小(1/16.37),可将展开为y的幂级数;又由于是对称投影,q必是y的偶函数,必是y的奇函数。 (2-19) 是待定系数,它们都是x的函数. 由第三条件知: ,

, (2-20) (2-19)式分别对x和y求偏导数并代入上式 上式相等必要充分条件,是同次幂y前的系数相等, 第二条件,当y=0时,点在中央子午线上,即x=X,对应的点称为底点,其纬度为底点纬度,也就是x=X时的子午线弧长所对应的纬度,设所对应的等量纬度为。也就是在底点展开为y的幂级数。 由(2-19)1式 依次求得其它各系数 (2-21) (2-21)1 ………… 将代入(2-19)1式得

(完整word版)高斯投影坐标正反算编程报告

高斯投影坐标正反算编程报告 10021班 张鑫 学号:2010302590040 1. 编程思想 进行高斯投影坐标正反算的编程需要牵涉到大量的公式,为了使程序条理更清楚,各块的数据复用性更强,这里采取了结构化的编程思想。 程序由四大块组成。 GeodesyHomework.cpp 文件用于存放main()函数,是整个程序的入口。通过结构化的编程尽力使main()函数变得简单。 MyFunction.h 和MyFunction.cpp 用于存放计算过程中进行角度弧度换算时所要用到的一些自定的转换函数。 Zhengsuan.h 和Zhengsuan.cpp 用于存放Zhengsuan 类,在Zhengsuan 类中声明了高斯投影坐标正算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及正算计算。通过get 函数获得相应的正算结果。 Fansuan.h 和Fansuan.cpp 用于存放Fansuan 类,类似于Zhengsuan 类,Fansuan 类中声明了高斯投影坐标反算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及反算计算。通过get 函数获得相应的反算结果。 2. 计算模型 高斯投影正算公式 6 4256 4 42234 22)5861(cos sin 720)495(cos 24cos sin 2l t t B B N l t B simB N l B B N X x ''+-''+ ''++-''+''?''+=ρηηρρ 5 2224255 3 2233)5814185(cos 120)1(cos 6cos l t t t B N l t B N l B N y ''-++-''+''+-''+''?''=ηηρηρρ 高斯投影反算公式 () () ()( ) 222425 52 2336 4254 2222 32 8624285cos 12021cos 6cos 459061720935242f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t t t B N y t B N y B N y l y t t y N M t y t t N M t y N M t B B ηηηηη+++++++-=++- -+++ -=

MAPGIS投影变换系统功能简介

MAPGIS投影变换系统功能简介 将1:1万土地利用现状库扫描矢量化后,其投影和坐标类型是什么?如何生成大地坐标?多幅图相邻可否一起生成投影? 一、简单的办法 1、用图框生成工具生成一个标准的1:1万的图框,注意起始经纬度输入你的真实数据。椭球参数根据实际情况输入,通常是用1北京/54椭球。确定后,图框参数选择中?将左下角平移为原点?和?旋转图框底边水平?两项不选确定后就生成了一个标准图框。 2、在?投影转换?菜单下选?MAPGIS文件投影?选?转换线文件?,选择刚生成的图框线文件确定。 3、在?投影转换?菜单下选?编辑当前投影参数?就可以看到你图形的投影参数了。但是投影带类型和投影带序号需要自己更改。 4、要转为大地坐标只需要在?进行投影变换?中的目的投影参数中的比例尺分母设为1坐标单位设为米(根据实际)即可。 二、MAPGIS投影变换系统功能简介 1.5.1、启动

MAPGIS投影变换系统的文件名为W32_proj.exe,在MAPGIS目录下,执行相应的文件名或从主菜单调用投影变换按钮,即可进入投影变换系统。MAPGIS投影变换系统的功能菜单如图5-1所示,下面分别介绍一下各个菜单的功能。 图5-1 MAPGIS地图投影变换的主菜单 1.5.2、文件与显示操作 文件菜单项用于装入源投影的数据文件及保存投影转换后的数据文件,显示操作主要用来显示工作区中的文件,并进行缩放操作。 在显示菜单下有?显示TIC点?和?还原显示?两个功能。其中,还原显示功能菜单若打开,即在菜单项前有?√?符号时,图形显示即以其图形参数规定的要求来实际显示。?显示TIC点?菜单若打开,即在菜单项前有?√?符号时,显示当前文件所对应的TIC点。 1.5.3、投影参数设置 投影参数设置功能用来设置原图或目的图件的投影坐标系、投影参数、椭球参数及坐标平移值。在进行文件投影转换、屏幕输入单点转换、绘制投影经纬网时,都需要进行投影参数设置。投影类型和坐标单位直接从下拉列表中选取,选择?椭球参数?按钮可选择椭球参数。

mapgis制图步骤及常用功能

Mapgis制图方法步骤及常用功能 电脑制图基本步骤: 在做一幅图之前,先新建一个文件夹(用来保存与该图有关的所有文件),用图名给该文件夹命名,例:×××矿1号剖面,之后将扫描的图放入该文件夹中。 打开MAPGIS主菜单,进行系统设置,把工作目录设置为刚才新建的文件夹(×××矿1号剖面),其余三项在安装MAPGIS软件时设置好。 因为扫描文件为(*.tif)格式,在MAPGIS中使用不变,因此需要转换成MAPGIS可使用的文件格式(*msi),需要进行数据类型转换: MAPGIS主菜单→图象处理→图象分析(镶嵌配准)→ 文件→数据输入→转换数据类型:(*.tif)→添加文件(扫描的文件)→转换 图形处理→输入编辑→确定:新建工程(把做的这张图看作一个工程),在左区点右键→新建区、新建线、新建点→ 矢量化→装入光栅文件→描图 其它常用功能: 做平面图之前,生成标准图框: 自动生成图框: MAPGIS主菜单→实用服务→投影变换→ 系列标准图框→键盘生成矩形图框→ 矩形图框参数输入:坐标系:国家坐标系;带号:20/40;注记:公里值。边框参数:内间距10,外间距1,边框宽1。网线类型:绘制实线坐标线;比例尺:图的比例尺(例:5000);矩形分幅方法:任意公里矩形分幅。 图廓参数:横向起始公里值(去带号):例20556000→556.000,纵向起始公里值:例4820.000,横向结束公里值:,纵向结束公里值:, 图廓内网线参数:网起始值(根据起始公里值定):,网间隔(根据比例尺定):;(例横向起始值为556.020,比例尺为5000,网起始值应为:556.500,网间隔为0.5)图幅名称:××××,图框文件名:×××,线参数设置→点参数设置→确定 因为扫描图纸过程中会产生变形,为校正所产生的误差,需要用标准图框对扫描图转换后的(*.msi)格式的图纸进行图像校正,如下: 图像校对: MAPGIS主菜单→图象处理→图象分析→ 打开影像(*.msi文件)→ 镶嵌融合→打开参照文件→参照线文件→ 镶嵌融合→删除所有控制点→ 镶嵌融合→添加控制点(点原图(左侧)的某点,再点右侧图对应的点,之后连续三次空格,)→ 镶嵌融合→控制点浏览(添加足够数量的控制点)→校正预览→影像校正 为将野外用GPS实测的地质、物化探点(有大地坐标)一次性投影到所图纸上,需要做投影变换 投影变换:

高斯投影正算

高斯投影正、反算代码 //高斯投影正、反算 //////6度带宽 54年北京坐标系 //高斯投影由经纬度(Unit:DD)反算大地坐标(含带号,Unit:Metres) void GaussProjCal(double longitude, double latitude, double *X, double *Y) { int ProjNo=0; int ZoneWide; ////带宽 double longitude1,latitude1, longitude0,latitude0, X0,Y0, xval,yval; double a,f, e2,ee, NN, T,C,A, M, iPI; iPI = 0.0174532925199433; ////3.1415926535898/180.0; ZoneWide = 6; ////6度带宽 a=6378245.0; f=1.0/298.3; //54年北京坐标系参数 ////a=6378140.0; f=1/298.257; //80年西安坐标系参数 ProjNo = (int)(longitude / ZoneWide) ; longitude0 = ProjNo * ZoneWide + ZoneWide / 2; longitude0 = longitude0 * iPI ; latitude0=0; longitude1 = longitude * iPI ; //经度转换为弧度 latitude1 = latitude * iPI ; //纬度转换为弧度 e2=2*f-f*f; ee=e2*(1.0-e2); NN=a/sqrt(1.0-e2*sin(latitude1)*sin(latitude1)); T=tan(latitude1)*tan(latitude1); C=ee*cos(latitude1)*cos(latitude1); A=(longitude1-longitude0)*cos(latitude1); M=a*((1-e2/4-3*e2*e2/64-5*e2*e2*e2/256)*latitude1-(3*e2/8+3*e2*e2 /32+45*e2*e2 *e2/1024)*sin(2*latitude1)

高斯投影坐标正反算VB程序

高斯投影坐标正反算V B 程序 Jenny was compiled in January 2021

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没有 变形,仍然相等。 操作工具: 计算机中的 代码: Dim a As Double, b As Double, x As Double, y As Double, y_#

Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#, m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val min1 = Val sec1 = Val deg2 = Val min2 = Val sec2 = Val l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val k1 = ((l_ * 180 / + 3) / 6) k2 = (l_ * 180 / / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else

高斯投影正反算公式83

§8.3高斯投影坐标正反算公式 任何一种投影①坐标对应关系是最主要的;②如果是正形投影,除了满足正形投影的条件外(C-R 偏微分方程),还有它本身的特殊条件。 8.3.1高斯投影坐标正算公式: B,l ? x,y 高斯投影必须满足以下三个条件: ①中央子午线投影后为直线;②中央子午线投影后长度不变;③投影具有正形性质,即正形投影条件。 由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即(8-10)式中,x 为l 的偶函数,y 为l 的奇函数;0330'≤l ,即20/1/≈''''ρl ,如展开为l 的级数,收敛。 +++=++++=553316644220l m l m l m y l m l m l m m x (8-33) 式中 ,,10m m 是待定系数,它们都是纬度B 的函数。 由第三个条件知: q y l x l y q x ??-=????=??, (8-33)式分别对l 和q 求偏导数并代入上式 ----=++++++=+++553315 63424 42204 52 3164253l dq dm l dq dm l dq dm l m l m l m l dq dm l dq dm dq dm l m l m m (8-34) 上两式两边相等,其必要充分条件是同次幂l 前的系数应相等,即

dq dm m dq dm m dq dm m 231 20 13121? =? -== (8-35) (8-35)是一种递推公式,只要确定了 0m 就可依次确定其余各系数。 由第二条件知:位于中央子午线上的点,投影后的纵坐标x 应等于投影前从赤道量至该点的子午线弧长X ,即(8-33)式第一式中,当0=l 时有: 0m X x == (8-36) 顾及(对于中央子午线) B V M r M B N dq dB M dB dX cos cos 2 ==== 得: B V c B N r dq dB dB dX dq dX dq dm m cos cos 01===?===(8-37,38) B B N dq dB dB dm dq dm m cos sin 2 2121112=?-=?-= (8-39) 依次求得6543,,,m m m m 并代入(8-33)式,得到高斯投影正算公式

mapgis的一些实用方法和处理技巧

mapgis的一些实用方法和处理技巧 一、如何将mapgis的图形插到word、excel、PowerPoint 中 首先点取mapgis菜单“其他->OLE拷贝”,接着打开word,点取“粘贴”。 Mapgis数据就复制到word文档里。 二、空心字格式 使用空心字时,字体采用相应字体编号的负数。如:-3表示黑体空心字。 三、合并区 1、可以在屏幕上开一个窗口,系统就会将窗口内的所有区合并,合并后区的图形参数及属性与左键弹起时所在的区相同。 2、也可以先用菜单中的选择区功能将要合并的区拾取到,然后再使用合并区功能实现。 3、还可以先用光标单击一个区,然后按住 CTRL 键,在用光标单击相邻的区即可。 四、翻转图形 在Mapgis中的其它下面整图变换中比例参数的X比例中输入法-1或Y比例中输入-1后确定。 五、CAD转化为MAPGIS 1.将CAD文件另存为2004/2000DXF格式。 2.在MAPGIS主程序中选择“文件转换”。 3.输入中选择转入DXF文件,确定并复位 4.保存点线文件(面无法转化) 六、MAPGIS转化为CAD 1.在MAPGIS主程序中选择“文件转换”。 2.分别装入点线文件,复位并全选。 3.输出中选择“部分图形方式输入DXF”全选并确定。 4.打开保存的DXF文件,用CAD复位显示图形,并改字体样式。 5.保存成CAD格式。 七、如何把JPG格式的转成MSI格式 图象处理----------图象分析模块。在里面点:文件--------数据输入--------转换数据类型(选JPG)---------添加文件---------转换转换后的格式为mapgis的msi影像文件!转换为MSI文件格式后再在输入编辑里,导入后矢量化。 八、在电脑里如何做剖面图,不用手画,而且精度更高!

高斯投影坐标正反算公式

高斯投影坐标正反算公式 未知2010-04-03 10:47:15 本站 §高斯投影坐标正反算公式 任何一种投影①坐标对应关系是最主要的;②如果是正形投影,除了满足正形投影的条件外( C-R 偏微分方程),还有它本身的特殊条件。 1.1 高斯投影坐标正算公式: B, x,y 高斯投影必须满足以下三个条件: ①中央子午线投影后为直线;②中央子午线投影后长度不变;③投影具有正形性质,即正形投影条件。 由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即 (8-10) 式中, x 为 的偶函数, y 为的奇函数;,即,如展开为的级数,收敛。 ( 8-33 ) 式中是待定系数,它们都是纬度 B 的函数。 由第三个条件知: (8-33) 式分别对和 q 求偏导数并代入上式

(8-34) 上两式两边相等,其必要充分条件是同次幂前的系数应相等,即 (8-35) (8-35) 是一种递推公式,只要确定了就可依次确定其余各系数。 由第二条件知 : 位于中央子午线上的点,投影后的纵坐标 x 应等于投影前从赤道量至该点的子午线弧长 X ,即 (8-33) 式第一式中,当时有: (8-36) 顾及 ( 对于中央子午线 )

得: (8-37,38) (8-39) 依次求得并代入 (8-33) 式,得到高斯投影正算公式 (8-42) 1.2 高斯投影坐标反算公式 x,y B, 投影方程: (8-43)

满足以下三个条件:

①x 坐标轴投影后为中央子午线是投影的对称轴;② x 坐标轴投影后长度不变;③投影具有正形性质,即正形投影条件。 高斯投影坐标反算公式推导要复杂些。 ①由 x 求底点纬度 ( 垂足纬度 ), 对应的有底点处的等量纬度,求 x,y 与 的关系式,仿照 (8-10) 式有, 由于 y 和椭球半径相比较小 (1/16.37) ,可将展开为 y 的幂级数;又由于是对称投影, q 必是 y 的偶函数,必是 y 的奇函数。 (8-45) 是待定系数,它们都是 x 的函数 . 由第三条件知: , , (8-21)

高斯投影坐标反算c语言代码

高斯投影坐标反算c语言代码 #include #include #include main() { printf("#####################################################\n"); printf("# 角度输入说明:如26°12′45.2″输入为26,12,45.2 #\n"); printf("#####################################################\n"); double x,y; int j,L0; printf("请输入高斯投影坐标(自然坐标),中间用逗号隔开:\n"); scanf("%lf,%lf",&x,&y); //自然坐标输入 printf("请输入中央子午线L0:\n"); scanf("%d,%d,%lf",&L0); //中央子午线输入 printf("请选择参考椭球:1.北京1954参考椭球。\n 2.西安1980参考椭球。\n"); printf("选择的参考椭球为:"); scanf("%d",&j); //选择椭球参数 if(j==1) { long double Bf0=0.157046064172*pow(10,-6)*x; long double Bf=Bf0+cos(Bf0)*(0.005051773759*sin(Bf0)-0.000029837302*pow(sin(Bf0),3)+0.00000023818 9*pow(sin(Bf0),5)); long double t=tan(Bf); long double m=0.00673852541468*pow(cos(Bf),2); long double V=1+m; long double N=6378245.000/sqrt(1-0.00669342162297*pow(sin(Bf),2)); long double B1=Bf-1.0/2*V*t*pow(y/N,2)+1.0/24*(5+3*pow(t,2)+m-9*m*pow(t,2))*V*t*pow(y/N,4)-1.0/72 0*(61+90*pow(t,2)+45*pow(t,4)) *V*t*pow(y/N,6); long double l1=(1/cos(Bf))*(y/N)-1.0/6*(1+2*pow(t,2)+m)*(1/cos(Bf))*pow(y/N,3) +1.0/120*(5+28*pow(t,2)+24*pow(t,4)+6*m+8*m*pow(t,2))*(1/cos(Bf))*pow(y/N,5); long double B=B1*57.29577951; long double l=l1*57.29577951; long double L=L0+l; int d2=int(B);

高斯投影正反算c代码

高斯投影正反算c代码 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】

高斯投影正反算程序设计 一.程序设计流程 本程序的设计思路如下: (1),程序采用VS08版本作为开发平台,并采用C#语言作为开发语言,设计为WindowsForm窗体程序形式。 (2),程序主要的算法来自于教材。但是本程序为了更加实用,添加了更多的解算基准,包括:WGS-84,国际椭球1975,克氏椭球,和2000国家大地坐标系。 (3),程序为了更方便的读取数据和输出数据,故需要自己定义了固定的数据输入格式和数据输出格式或形式,请老师注意查看。 二.代码 using System; using ; using ; using ; using ; using Gauss { public partial class Form1 : Form { double b = (a * a * (1 - ee * ee)); double c = a * a / b; double epp = ((a * a - b * b) / b / b); CRDGEODETIC pcrdGeo; CRDCARTESIAN pcrdCar; double midlong = 0;

//求X,Y和带号 = ; ytext = ; string temp = (0, 2); num = (temp); ytext = (0, 2); = (ytext) - 500000; try { tt = } catch { ("Choose 3/6 error!"); return; } if ("3度带") == 0) { midlong = num * 3 * pai / 180; } if ("6度带") == 0) { midlong = (6 * num - 3) * pai / 180; } b = (a * a * (1 - ee * ee)); c = a * a / b; epp = (a * a - b * b) / b; double m0, m2, m4, m6, m8; double a0, a2, a4, a6, a8; m0 = a * (1 - ee * ee);

经纬度BL换算到高斯平面直角坐标XY(高斯投影正算)的源码及.

经纬度BL换算到高斯平面直角坐标xy(高斯投影正算) private function bl2xy(byref a2 as double, byref f2 as double, byref e2 as double, _ byref s2 as double, byref t2 as double as boolean 'a2 输入中央子午线,以度.分形式输入,如115度30分则输入115.30; 起算数据l0 'f2 以度小数形式输入经度值, l 'e2 以度小数形式输入纬度值,b 's2 计算结果,横坐标y 't2 计算结果,纵坐标x '投影带号计算n=[l/6]+1 如:测得经度103.xxxx,故n=[103.x/6]+1=17+1=18 '中央经线经度l0 = n*6-3 = [l/6]*6+3 dim b2 as double 'dim g2 as double dim h2 as double dim i2 as double dim j2 as double dim k2 as double dim l2 as double dim m2 as double dim n2 as double dim o2 as double dim p2 as double dim q2 as double

dim r2 as double b2 = int(a2 + (int(a2 * 100 - int(a2 * 100 / 60 + (a2 * 10000 - int(a2 * 100 * 100 / 3600 '把l0化成度(a2 'g2 = f2 - b2 ' l -l0 'h2 = g2 / 57.2957795130823 '化作弧度 h2 = (f2 - b2 / 57.2957795130823 '将经差的单位化为弧度 i2 = tan(e2 / 57.2957795130823 'tan (b j2 = cos(e2 / 57.2957795130823 ' cos (b k2 = 0.006738525415 * j2 * j2 l2 = i2 * i2 m2 = 1 + k2 n2 = 6399698.9018 / sqr(m2 o2 = h2 * h2 * j2 * j2 p2 = i2 * j2 q2 = p2 * p2 r2 = (32005.78006 + q2 * (133.92133 + q2 * 0.7031 s2 = ((((l2 - 18 * l2 - (58 * l2 - 14 * k2 + 5 * o2 / 20 + m2 - l2 * o2 / 6 + 1 * n2 * (h2 * j2 s2 = s2 + 18500000 '在计算的基础上加上了“带号”(18)和“东移”(500km) '计算结果,横坐标y t2 = 6367558.49686 * e2 / 57.29577951308 - p2 * j2 * r2 + ((((l2 - 58 * l2 + 61 * _ o2 / 30 + (4 * k2 + 5 * m2 - l2 * o2 / 12 + 1 * n2 * i2 * o2 / 2 '计算结果,纵坐标x

高斯投影坐标正反算VB程序

高斯投影坐标正反算 院: 级: 口 号: 名: 课程名称: 指导老师: 实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1.中央子午线投影后为直线;

2.中央子午线投影后长度不变; 3.投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x 坐标轴投影成中央子午线,是投影的对称轴; 2. x 轴上的长度投影保持不变; 3.正形投影条件,即高斯面上的角度投影到椭球面上后角度没 有变形,仍然相等。 操作工具: 计算机中的VB6.0 代码: Dim a As Double, b As Double, x As Double, y As Double, y_# Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#, m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val(Text1.Text) min1 = Val(Text2.Text) sec1 = Val(Text3.Text) deg2 = Val(Text4.Text) min2 = Val(Text5.Text) sec2 = Val(Text6.Text) l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val(Text9.Text) k1 = ((l_ * 180 / 3.14159 + 3) / 6) k2 = (l_ * 180 / 3.14159 / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0)

相关文档
最新文档