使用C#运行绘制出一幅兰伯特等角投影下的中国分省图(含完整代码)

​​​​​​        实习目的

  1. 掌握地图投影变换的基本原理、公式和方法。
  2. 学习如何读取文本文件中的坐标点数据及利用相关投影变换公式转换直角坐标,并采用合适的画笔和画刷工具绘制成图。
  3. 了解地图投影及其变换在实际制图中的应用。

        实习内容

  1. 查阅相关资料,了解我国现行地图中常用的投影方式。
  2. 查看“地图投影公式”文档,理解兰伯特等角投影公式里各组成要素的含义,熟悉由正解公式得出反解公式的推导过程,学会利用兰伯特等角投影正反解公式进行平面坐标与球面坐标间的转换。
  3. 根据老师给定的省面.MIF数据进行数据处理,选择合适的编程语言读取数据并通过计算转换坐标,运行绘制出一幅兰伯特等角投影下的中华人民共和国分省图。

​​​​​​​​​​​​​​        实习数据

  1. 数据简介
  1. 用到的数据是省面.MIF文件,用记事本打开后如图1所示。MIF文件为文本性质的文件,用户可以通过相应的文件读写方法实现对文件内容的读写。
  2. 省面.MIF文件头的说明有:Version子句,说明所使用的是VERSION 1、VERSION 2、VERSION 300还是VERSION 450格式;Charset子句,指定在表中创建文本时使用的字符集;Delimiter字句,在引号中指定分隔符; CoordSys子句,注明数据不是以经度或纬度形式保存的;Columns子句,指定列数,然后为每列创建一行,设定列名、列类型,指示字段宽度为256。
  3. MIF文件的数据在文件头之后, Region 1子句可作为读取一个区域的循环开端,下一行是平面坐标点数;Pen子句设定两点间线对象的宽度、图案和颜色;Brush 子句设定区域填充对象的图案、前景颜色和背景颜色,Center子句指定区域中心。

图1 省面.MIF数据

  1. 数据处理

为方便读取,将数据进行如下处理:删去Version到Data的文件头内容;通过查找替换,删去Pen子句和Brush子句的内容;删除Center子句的前两个空格。处理完后结果如图2所示。

图2 数据处理结果

​​​​​​​​​​​​​​        实习内容

  1. 实习环境

使用C#编程语言和VS开发平台进行实习操作。

  1. 实习步骤
  1. 设置可供用户输入第一标准纬线和第二标准纬线的运行界面,并对界面大小、布局进行优化;
  2. 查阅相关资料后,编程实现兰伯特投影反解公式的运算过程,以实现平面坐标到球面坐标的转换;
  3. 处理省面.MIF数据后,编程实现文本文件里所有平面坐标的读取;
  4. 不断调试,选择画笔合适的的宽度和颜色,适当缩小、平移和旋转画布。

​​​​​​​​​​​​​​        实习结果

  1. 通过查阅资料了解到,正轴方位投影适用于极地地区,圆锥投影和圆柱投影适用于沿纬线伸展地区,其中正轴圆锥投影最适用于中纬度地区,而正轴圆柱投影最适用于低纬度和赤道地区。由于我国绝大多数地区属于中纬度地区,根据投影位置的选择特点,中国地图和分省地图最适宜采用正轴等角割圆锥投影,即兰伯特投影。但对于个别省区,如广东省,南海诸岛及南中国海域等位于赤道附近的地区,采用正轴圆柱投影更加合适;对于经差展开比较小的区域采用高斯投影,即正轴等角圆锥投影更合适。
  2. 程序源代码如下所示。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.IO;
  10. using System.Windows.Forms;
  11. using System.Collections;
  12. namespace Grawchina
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.  
  17.         public Form1()
  18.         {
  19.             InitializeComponent();
  20.         }<
  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在等角投影下,地球椭球面上的直线不一定会投影为直线。等角投影会保持角度不变,但会引起形状和大小的变化,因此地球上的直线在投影后可能会现弯曲。这是因为地球是一个椭球体,而等角投影是将三维球面投影到二维平面上,因此在这种投影方式下,地球表面的一些区域必须被拉伸或压缩,以适应二维平面的形状。这种形状变化会导致直线在投影后现曲线。 ### 回答2: 在等角投影下,地球椭球面上的直线在投影后通常不再是直线。等角投影是一种保持角度不变的投影方法,它会将地球上的点按照一定规则映射到平面上。由于地球是一个椭球体,而平面是一个二维形,因此在投影过程中会引入失真。 具体而言,等角投影会使纬线和经线在投影平面上呈现直线的形状。但是除此之外,其他曲线或直线在投影后通常不会保持其形状。这是因为地球表面的其他曲线,如大圆弧或曲线线段,在投影过程中将展开或压缩,导致其在投影平面上呈现曲线、弧线或其他形状。所以,在等角投影下,地球椭球面上的直线投影后一般来说不再是直线。 值得注意的是,不同的等角投影方法可能会导致不同程度的失真。一些等角投影方法,如兰伯特等角投影,可能会保持地球表面上某些特定曲线段上的直线特性,但整体上,除纬线和经线外的大多数曲线投影后仍会呈现曲线形状。因此,在等角投影下,我们不能期望地球椭球面上的所有直线投影后都仍然是直线。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值