正轴等角割圆锥投影源程序设计(附源码)

之前我在自己博客里发过一篇文章,是一个名为“正轴等角割圆锥投影源程序的设计”的实习题目。但是我把文件在115网盘百度网盘共享了几次,后来连接都失效了。这次在这里重新发一遍,但愿是最后一次了。

题目描述:

圆锥投影,特别是正轴等角割圆锥投影,在我国以及一些中等纬度的国家应用得非常广泛。例如,编制中华人民共和国地图(南海诸岛作插图)以及各省(区)地图都是采用这种投影。新中国成立之前,我国地形图也是采用该投影作为数学基础的。可见,等角割圆锥投影可适用编制我国不同比例尺、不同类型的地图。

制图区域:

河北省

纬度范围:北纬36° 到北纬43°

经度范围:东经112°到东经120°

制图区域中央经线:λ0=116000′

标准纬线:Ф1=37030′,Ф2=41000′

主比例尺:1:500万

经纬网密度:△Ф=△λ=10

题目要求:

1、编写正轴等角圆锥投影的源程序。在编制源程序时,采用通用程序为好,为此地球椭球的数据可采用IAG-1975椭球:a=6378140m,b=6356755m。

2、输出成果要求完整、整齐,有条件时可采用汉字化、表格化。输出成果包括:

  • U1,U2;
  • 投影常数:α
  • 积分常数:K
  • 长度比为最小的纬线纬度:φ0
  • 纬度:φ
  • 经度:λ
  • 直角坐标:X,Y

3、绘制该地图的经纬线网格。

下面是我的解决方案

(***这里是关键***)

STEP 1 用函数封装

这里所说的就是利用函数的思想来求解题目二中要求的各个参数,比如求K,我可以写一个GetK(参数1,参数2······);然后在主程序调用的时候直接传入参数即可解决,至于这个函数是怎么实现的,表问我,这是初中知识,如果不明白可以看下文的源程序!

STEP 2 MFC对话框设计

通过STEP 1是解决了算法的问题,但是我可以不喜欢一个黑乎乎的控制台界面,所以这里就设计了一个MFC界面,当然喜欢控制台的人可以跳过这步。

STEP 3 绘图

绘图是个很关键的步骤,能够求出每个点的坐标并不是什么难事,但是要在界面里给用户反映出来就麻烦了(至少我这么认为),这里我对坐标原点进行了一定的迁移,画出的图更好看一些,具体实现请见源程序。

不足之处:

当然程序还是很不完善的,这里我列举两个:

1.窗口不能重绘

2.绘制的图片不能保存

当然这仅仅是很少的一部分不足,至于第一个原因,是我不爱动弹,最近事情比较多也就没有写,至于第二个原因,现在正在想办法解决,也欢迎高手给点指导。

需要源程序的,请点击这里

博客原文:http://blog.yqc.im/map-projection.html

地图投影基础知识入门 地图投影的分类

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论