用C语言实现地图坐标投影的转换.doc

上传人:wj 文档编号:1983366 上传时间:2023-05-02 格式:DOC 页数:30 大小:618KB
下载 相关 举报
用C语言实现地图坐标投影的转换.doc_第1页
第1页 / 共30页
用C语言实现地图坐标投影的转换.doc_第2页
第2页 / 共30页
用C语言实现地图坐标投影的转换.doc_第3页
第3页 / 共30页
用C语言实现地图坐标投影的转换.doc_第4页
第4页 / 共30页
用C语言实现地图坐标投影的转换.doc_第5页
第5页 / 共30页
用C语言实现地图坐标投影的转换.doc_第6页
第6页 / 共30页
用C语言实现地图坐标投影的转换.doc_第7页
第7页 / 共30页
用C语言实现地图坐标投影的转换.doc_第8页
第8页 / 共30页
用C语言实现地图坐标投影的转换.doc_第9页
第9页 / 共30页
用C语言实现地图坐标投影的转换.doc_第10页
第10页 / 共30页
用C语言实现地图坐标投影的转换.doc_第11页
第11页 / 共30页
用C语言实现地图坐标投影的转换.doc_第12页
第12页 / 共30页
用C语言实现地图坐标投影的转换.doc_第13页
第13页 / 共30页
用C语言实现地图坐标投影的转换.doc_第14页
第14页 / 共30页
用C语言实现地图坐标投影的转换.doc_第15页
第15页 / 共30页
用C语言实现地图坐标投影的转换.doc_第16页
第16页 / 共30页
用C语言实现地图坐标投影的转换.doc_第17页
第17页 / 共30页
用C语言实现地图坐标投影的转换.doc_第18页
第18页 / 共30页
用C语言实现地图坐标投影的转换.doc_第19页
第19页 / 共30页
用C语言实现地图坐标投影的转换.doc_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

用C语言实现地图坐标投影的转换.doc

《用C语言实现地图坐标投影的转换.doc》由会员分享,可在线阅读,更多相关《用C语言实现地图坐标投影的转换.doc(30页珍藏版)》请在冰点文库上搜索。

用C语言实现地图坐标投影的转换.doc

南昌工程学院

毕业设计(论文)

水利与生态工程学院系(院)测绘工程专业

毕业设计(论文)题目高斯-克吕格投影变换的程序实现

学生姓名卢浩桢

班级测绘工程

学号2008101405

指导教师张红梅

完成日期2012年6月1日

高斯-克吕格投影的程序实现

TheconversionofGauss-KrugerprojectioninClanguage

总计毕业设计(论文)25页

表格2个

插图6幅

摘要

论文是对用C语言实现地图投影转换的详细论述,前两章是对C语言和地图投影的相关知识进行简单介绍,并将研究地图投影转换的目的、意义和研究现状进行阐述,让我们对相关知识有了深刻认识与了解;后两章是具体实现的程序代码,程序运行实现的截图以及具体数据进行计算对程序进行验证,说明其可行性与正确性,得出最后的结论。

关键词:

地图投影C语言高斯-克吕格投影高斯正反算

Abstract

ThisdissertationistoresearchtheIssueofMapprojectionconversionachievedwithclanguageindetail.ThefirsttwochaptersintroduceustheClanguageandtheknowledgeofmapprojectionbriefly,andshowthepurpose,meaningandsituationofstudyofmapprojectiontransformationonebyone,whichgiveusadeepunderstandingofthisknowledge;thelasttwochaptersdescribetheprogrammingsourcecode,andthepicturesandspecificcasesanddatainordertomakesureitsfeasibilityandcorrectness,finally,drawaconclusion.

Keywords:

Mapprojection;Clanguage;Gauss-Krugerprojection;Gaussformulaforthepositiveandnegative

目录

摘要 I

ABSTRACT Ⅱ

第一章引言 1

1.1地图投影简介 1

1.2研究地图投影转换的目的和意义 1

1.3地图投影研究概括及趋势综述 1

1.4研究思路和技术方法 2

1.5C语言概述 3

第二章高斯-克吕格投影(高斯投影) 4

2.1高斯投影的基本概念 4

2.2高斯投影坐标正反算公式 7

第三章c语言程序代码 13

3.1地图投影变换的计算程序流程图 13

3.2C语言程序源代码 15

3.3程序运行截图 19

第四章算例 21

结语 23

参考文献 24

致谢 25

南昌工程学院本科毕业论文

第一章引言

1.1地图投影简介

地图投影,MapProjection.,按照一定的数学法则,把参考椭球面上的点、线投影到可展面上的方法。

地图投影就是指建立地球表面(或其他星球表面或天球面)上的点与投影平面(即地图平面)上点之间的一一对应关系的方法。

即建立之间的数学转换公式。

它将作为一个不可展平的曲面即地球表面投影到一个平面的基本方法,保证了空间信息在区域上的联系与完整。

这个投影过程将产生投影变形,而且不同的投影方法具有不同性质和大小的投影变形。

1.2研究地图投影转换的目的和意义

地图投影变换是指从一种地图投影点的坐标变换为另一种地图投影点的坐标。

地图投影总类繁多,形式各异。

在实际应用中,地理信息系统的数据来源各不相同,很难保证这些数据的投影方式一致。

为了对这些不同来源的地理数据进行有效的处理跟分析,就必须通过地图投影变换把这些投影方式不同的数据定位在同一种坐标系下,使其具有相同的地图投影。

同时,在地图编制过程中,也经常会遇到地图资料与新编地图之间投影不一致的情况,必须进过投影转换将该地图资料转绘到新编地图投影坐标网格中。

人类一切经济活动都离不开地理空间,各类专业信息都必须以地形基础信息为空间载体,所以必须研究地图数据库中数字化地图数据处理、空间信息定位和变换,以满足各类专业信息系统建设的需要。

综上所述,采用C语言作为软件开发平台,实现各种常见地图投影之间的任意变换,也具有很强的现实意义。

1.3地图投影研究概括及趋势综述

地图投影及其变换模型已渗透到地理信息系统的各个方面,无论是数据的获取、预处理、信息的存贮记录,还是数据的处理、应用和输出都需要有一个空间定位的框架,即共同的地理坐标和平面坐标系统。

由此可见地图投影在地理信息系统中的重要作用。

另外,在地图编制过程中也常遇到原始资料与新编地图投影不一致的情况,此时也需要通过投影变换来解决此类问题。

传统的投影变换方法均有工序繁、速度慢、

1

第一章引言

精度低等缺点,已不能适应制图自动化的要求。

随着计算机技术和数学手段的高速进步,地图的编制以实现了完全自动化。

投影变换计算自动化要求建立两种不同投影方式之间点与点的变换关系式,通过各种关系式编程实现各种投影之间的任意变换,不再需要人工参与变换,这样既提高了变换精度又提高了工作效率。

目前国内外很多地图制图和地理信息系统软件,例如国外的Arcgis,MapInfo,MGE等,国内的MapGis,CityStar等,都已不同程度地提供了地图投影变换功能模块,因此,采用C语言工具软件实现各种常见的地图投影之间的任意变换,为地图投影变换方法研究提出一套行之有效的方法。

1.4研究思路和技术方法

研究思路:

1、首先弄懂地图投影转换原理。

地图投影的实质是用数学的方法实现球面上点到平面上点的转换。

地图投影的分类很多,每种投影都有一套坐标计算公式。

“高斯-克吕格投影”“UTM投影”“兰勃特等角投影”等投影之间的转换公式应熟练掌握。

地图投影变换方法主要有以下两类:

(1)传统地图投影变换方法,包括网格转绘法,蓝图拼贴法和纠正仪法等。

这些方法都有工序繁杂,速度较慢,精度较低的缺点,难于男足制图自动化的要求。

(2)数字地图投影,包括解析变换法、数字变换法和数字解析变换法。

其数字投影变换方法的主要思想就是通过一定的数学手段,寻找两个不同投影性质地图之间点位一一对应关系式。

变换法是根据原始地图的投影方程式反解原始地图投影点的经纬度,再代入新编图的地图投影方程式,得到两种投影的平面直角坐标关系;又如建立两种不同地图资料间相应点坐标的直接关系,即在两种地图上量出相应点的平面直角坐标值,带入逼近多项式,分别组成线性方程组,求出系数值,再代入逼近多项式,即可求出新编图投影点的坐标。

第二种方法具有普遍性,适用于地图投影转换。

假定原始地图资料上点的坐标为(x,y),新编地图上对应点坐标为(X,Y),则对应投影点间坐标转换的基本关系式为

X=F1(x,y)

Y=F2(x,y)(1.4.1)

F1,F2皆为制图区域内单值、连续的函数。

对于任意两种不同投影性质的地图资料来说,其投影关系式分别为

2

南昌工程学院本科毕业论文

x=f1(L,B)

y=f2(L,B)(1.4.2)

X=f3(L,B)

Y=f4(L,B)(1.4.3)

由(1.4.2)式反解得

L=L(x,y)B=B(x,y)(1.4.4)

把(1.4.4)式代入(1.4.3)式,便有

X=f3[L(x,y),B(x,y)]

Y=f4[L(x,y),B(x,y)](1.4.5)

上式即为地图投影转换的数学通式,使用于任何两种投影间变换函数f3,f4的具体表达式随投影间转换类型和转换方法的不同而不同。

2、选择某种投影方式,构建投影变换公式。

3、用编程语言实现地图投影转换。

1.5C语言概述

C语言是一种计算机程序设计。

它既具有高级语言的特点,又具有汇编语言的特点。

它于1972年推出,1978后已先后被移植到大、中、小及微型机上。

它既可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

它的应用范围广泛,具备很强的数据处理能力,在软件开发上、各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画等。

之所以选择使用C语言进行地图投影的转换是因为它有以下特点:

简洁紧凑、灵活方便、运算符丰富、数据类型丰富、C是结构式语言、语法限制不太严格,程序设计自由度大、允许直接访问物理地址,对硬件进行操作、生成目标代码质量高,程序执行效率高、适用范围大,可移植性好等。

3

第二章高斯-克吕格投影(高斯投影)

第二章高斯-克吕格投影(高斯投影)

2.1高斯投影的基本概念

高斯投影又称横轴椭圆柱等角投影,是德国测量学家高斯于1825~1830年首先提出的。

实际上,直到1912年,由德国另一位测量学家克吕格推导出实用的坐标投影公式后,这种投影才得到推广,所以该投影又称高斯-克吕格投影。

想象有一椭圆柱面横套在地球椭球体外面,并与某一条子午线(称中央子午线或轴子午线)相切,椭圆柱的中心轴通过椭球体中心,然后用一定的投影方法将中央子午线两侧各一定经差范围内的地区投影到椭圆柱面上,再将此柱面展开即成为投影面。

图2.1高斯-克吕格投影的几何概念

(2)分带投影

我国规定按经差和度进行分带投影,为大比例尺测图和工程测量采用带投影。

特殊情况下工程测量控制网也用带或任意带。

高斯投影带:

自子午线起,每隔经差自西向东分带,依次编号1,2,3,…。

我国中央子午线的经度,由起每隔至,共计12带,带号用n表示,中央子午线的经度用表示,。

(带号和经度的关系)

4

南昌工程学院本科毕业论文

图2.2高斯-克吕格投影分带示意图

高斯投影带:

是在带的基础上分成的,其中央子午线一部分同带中央子午线重合,一部分则同带分界子午线重合,带号用n/表示,带中央子午线用L表示,关系是:

(3)高斯平面直角坐标系

在投影面上,中央子午线和赤道的投影都是直线,并且以中央子午线和赤道的交点O作为坐标原点,以中央子午线的投影为纵坐标轴,以赤道的投影为横坐标轴,这样便形成了高斯平面直角坐标系。

在我国坐标均为正,坐标的最大值(在赤道上)约为330KM。

为避免出现负的横坐标,可在横坐标上加500KM。

此外还应在坐标前面冠以带号,这种坐标称为国家统一坐标。

如某点Y=19123456.789m,该点位于19带内,其相对于中央子午线而言的横坐标是:

首先去掉带号,再减去500KM,最后得y=-376543.211m。

(4)高斯投影的特性与优点

高斯-克吕格特性

(1)等角投影——投影前后的角度相等,但长度和面积有变形;

(2)等距投影——投影前后的长度相等,但角度和面积有变形;

(3)等积投影——投影前后的面积相等,但角度和长度有变形。

高斯平面投影的特点 

①中央子午线无变形; 

②无角度变形,图形保持相似; 

③离中央子午线越远,变形越大。

 

由此可见,在测量中,如果中央子午线输错了,投影的中央子午线就会编离实地坐标系正

5

第二章高斯-克吕格投影(高斯投影)

确的中央子午线,变形就越大,最终的结果就使用测量的误差更大。

3度带与6度带的划分:

1.我国采用6度分带和3度分带:

1∶2.5万及1∶5万的地形图采用6度分带投影,即经差为6度,从零度子午线开始,自西向东每个经差6度为一投影带,全球共分60个带,用1,2,3,4,5,……表示.即东经0~6度为第一带,其中央经线的经度为东经3度,东经6~12度为第二带,其中央经线的经度为9度。

1∶1万的地形图采用3度分带,从东经1.5度的经线开始,每隔3度为一带,用1,2,3,……表示,全球共划分120个投影带,即东经1.5~4.5度为第1带,其中央经线经度为东经3度,东经4.5~7.5度为第2带,其中央经线的经度为东经6度。

我省处于东经113度至东经120度之间,共跨第38、39、40,此三个带,其中东经115.5度以西便为第38带,其中央经线为东经114度;东经115.5~118.5度为39带,其中央经线为东经117度;东经118.5度以东到山海关为40带,其中央经线为东经120度。

地形图上公里网横坐标前2位就是带号,例如:

1∶5万地形图上的横坐标为20345486,其中20即为带号,345486为横坐标值。

2.当地中央经线经度的计算

六度带中央经线经度的计算:

当地中央经线经度=6°×当地带号-3°,例如:

地形图上的横坐标为20345,其所处的六度带的中央经线经度为:

6°×20-3°=117°(适用于1∶2.5万和1∶5万地形图)。

三度带中央经线经度的计算:

中央经线经度=3°×当地带号(适用于1∶1万地形图)。

3、怎样计算当地的中央子午线?

当地中央子午线取决于当地的直角坐标系统,首先确定您的直角坐标系统是3度带还是6度带投影公式推算:

6度带中央子午线计算公式:

当地经度/6=N;中央子午线L=6*N(带号)

如果没有除尽时,即N有余数时,     中央子午线L=6*N-3

3度带中央子午线计算公式:

当地经度/3=N,中央子午线L=3*N

我国的经度范围西开始于73°东至135°,可分成

六度带十一个(13号带—23号带),各带中央经线依次为(75°、81°、……123°、129°、135°);

三度带二十二个(24号—45号带)。

各带中央经线依次为(72°、75°、……132°、135°);

六度带可用于中小比例尺(如1:

250000)测图,三度带可用于大比例尺(如1:

10000)

6

南昌工程学院本科毕业论文

测图,城建坐标多采用三度带的高斯投影

4、如何判断投影坐标是3度带坐标还是6度带坐标

如(4231898,21655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为21500000米。

假如你的工作区经度在120度至126度范围,则该坐标系为6度带坐标系,该带的中央经度为123度。

如(2949320,36353822)其中36即为带号,已知该地点位于贵阳市附近,而从地图上我们看到贵阳大概的经度是东经108度左右,因此可以36*3=108,所以该坐标系为3度带坐标系,该带的中央经度为108度。

而不可能为6度带:

36*6=216

2.2高斯投影坐标正反算公式

(1)高斯投影坐标正算公式:

B,x,y

高斯投影须满足以下三个条件:

①中央子午线投影后为直线;②中央子午线投影后长度不变;③投影具有正形性质,即正形投影条件。

由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即(8-10)式中,x为的偶函数,y为的奇函数;,即,如展开为的级数,收敛。

(2-1)

式中是待定系数,它们都是纬度B的函数。

由第三个条件知:

(2-1)式分别对和q求偏导数并代入上式

上两式两边相等,其必要充分条件是同次幂前的系数应相等,即

7

第二章高斯-克吕格投影(高斯投影)

(2-2)

(2-2)是一种递推公式,只要确定了就可依次确定其余各系数。

由第二条件知:

位于中央子午线上的点,投影后的纵坐标x应等于投影前从赤道量至该点的子午线弧长X,即(2-1)式第一式中,当时有:

(2-4)

顾及(对于中央子午线)

得:

(2-5)

(2-6)

依次求得并代入(2-1)式,得到高斯投影正算公式

8

南昌工程学院本科毕业论文

(2)高斯投影坐标反算公式

x,yB,

投影方程:

(2-7)

满足以下三个条件:

①x坐标轴投影后为中央子午线是投影的对称轴;②x坐标轴投影后长度不变;③投影具有正形性质,即正形投影条件。

①由x求底点纬度(垂足纬度),对应的有底点处的等量纬度,求x,y与的关系式,

由于y和椭球半径相比较小(1/16.37),可将展开为y的幂级数;又由于是对称投影,q必是y的偶函数,必是y的奇函数。

(2-8)

是待定系数,它们都是x的函数.

由第三条件知:

,(2-9)

(3-8)式分别对x和y求偏导数并代入上式

9

第二章高斯-克吕格投影(高斯投影)

上式相等必要充分条件,是同次幂y前的系数相等,

第二条件,当y=0时,点在中央子午线上,即x=X,对应的点称为底点,其纬度为底点纬度,也就是x=X时的子午线弧长所对应的纬度,设所对应的等量纬度为。

也就是在底点展开为y的幂级数。

由(2-8)

依次求得其它各系数

(2-10)

(2-11)

…………

将代入(2-8)式得

(2-12)

10

南昌工程学院本科毕业论文

(2-13)

将代入(2-8)式得(2-14)式。

(最后表达式)

②求与的关系。

由(8-7)式知:

(2-14)

(2-15)

按台劳级数在展开

(2-16)

(2-17)

由此可求出各阶导数:

(2-18)

(2-19)

(2-20)

11

第二章高斯-克吕格投影(高斯投影)

……

将式(2-13)1,(2-18),(2-19),(2-20)代入(2-17)并按y幂集合得高斯投影坐标反算公式(2-21),

(2-21)

归纳由求的基本思想:

由点得到底点,将底点f作为过渡,也就是说将坐标原点o移到f点,先求关系式,再将关系式代入关系式得关系式,最后将坐标原点移回到o点,从而求得

12

南昌工程学院本科毕业论文

第三章c语言程序代码

3.1地图投影变换的计算程序流程图

开始

输入B,L

已知a,b

已知a,b

由a,b得e,e,e2,N,R

由L得L0

由L得L1

由B得B1

由a,e,B1得R

由e,B得C

由L1,L0,B1得A

由e,B1得M

由a,e,B1得N

由L得FE

由FE,KO,N,A,T,C得X

由KO,M,N,B1,T,C,得Y

结束

输出X,Y

13

第三章C语言程序代码

开始

输入X,Y

已知a,b

由a,b得f,e,e2,E

由X,Y得L0,X0.Y0

由X0,Y0得xval,yval

由B得B1

由ycal得M

由e2,a,M得U

由U,e1,e2得Bf

由a,Bf得C,T

由a,e2,Bf得R

由xval,N得D

由公式得L1,B1

由B1得B

由L1得L

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2