世界地图并不是世界的真实样貌!甚至误差非常大

现在所用的世界地图并不是世界的真实样貌,甚至误差大的离谱。

地球属于三维球体,想完整地表现到二维平面上是不可能的,必须牺牲一些真实属性。因为三维降到二维肯定存在扭曲失真,这是维度差异所决定的,不可避免。

我们现在所用的世界地图选择牺牲面积大小,保留角度和形状,这种独特的方式绘制世界地图也被称为“墨卡托投影法”。

或许学过地理的读者会比较熟悉,墨卡托投影法就是假想在地球内部中心位置放上一个点光源,这个光源所释放的光线会将地表每一个位置都投影到一个圆柱面上(如上图),我们将这个圆柱面展开就是一张长方形的世界地图了。

如果这种描述方法太抽象,我们可以这样理解:把地球比作一个大西瓜,拿一把大刀,将这个西瓜切成12等分,每一份就是上图中这样,然后将他们边缘的切口连接起来。这时出现了一个问题,图中只有赤道位置的这一个点相互连接,越远离赤道的位置,相互之间分开的距离就越大。这时强行将远离赤道的地方左右拉伸,然后连接在一起,这样三维的一个球体就变成了二维的平面了,也就是我们现在的世界地图了。

由此得知,赤道位置是没有被拉伸的,是最真实的;而靠近两极的位置是被拉伸最严重的。这就造成了越远离赤道的国家,国土面积在地图上就显得越大。有些国家的误差甚至达到了10多倍!

在墨卡托投影法下,最经典的误差案例就是非洲和格陵兰岛。上图中红色箭头指向的就是格陵兰岛和非洲,我们可以从世界地图中看到这两块区域的面积是差不多的。但查阅数据资料发现:格陵兰岛面积216万平方公里,非洲面积3022万平方公里,两者竟相差了14倍!

我们都知道格陵兰岛是世界最大的岛屿,如果真的像我们在地图上看到的那样,它的面积跟非洲差不多的话,那它早就晋升为大陆了,就不能称之为岛屿了。所以,这就是墨卡托投影的弊端,我们从地图上看到的国家面积是不能直接比较大小的。不仅如此,世界地图上的比例尺也是不精准的,因为面积发生改变,长度肯定也会有所改变。高纬度形变大,低纬度形变小,所以用同一个比例来统一衡量,肯定是不准确的。

世界地图的绘制方法千奇百怪,墨卡托投影法属于舍弃面积,保留其它属性。那么另一种非主流的地图绘制法高尔-皮德斯投影就属于舍弃形状,保留面积。上图中,我们可以看到这种绘制方法下的世界地图,非洲的面积在图上差不多是14个格陵兰岛,这也和实际情况符合。但陆地形状却已经严重扭曲了。

无论用哪种绘制方法都会产生属性的缺失,选择最适合我们的世界地图才是关键的。400多年前为了满足航海需要,墨卡托发明了墨卡托投影法,以扭曲地图为代价,使经纬线在平面的地图上相互垂直,航海家们只需要将起点和终点在平面上连成一条直线,就可以知道航线与经纬线的角度,这才方便确定方位,我们称之为等角航线。

说到这里,聪明的读者已经发现,平面地图上的直线,反映到地球三维的球形上,其实是一条曲线,所以说等角航线在行驶过程中,实际是一条曲线,并不是最短路径。几百年前的航海家,在墨卡托投影下的地图中走了远路,但定位精准,最终都能到达目的地。

我们平常在地图上看到飞机的航线是曲线也是这个道理,这才是真实情况下的最短路径。飞机实际飞行过程在地球三维的球面上,这个三维空间的最短的路径,在二维面上就变成了一条曲线,也叫大圆航线。

在墨卡托地图发明以前,存在过上千种奇形怪状的地图,这些都是人类文明进步的曲折路。

303

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

error MSB6006: cmd.exe exited with code 3

利用vs2012和qt5.5.1,在编译例子时发生如下错误: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(172,5): error MSB6006: “cmd.exe”已退出,代码为 3。 图片如下: 解决办法如下&#x…

OSGI(面向Java的动态模型系统)

http://baike.baidu.com/subview/362847/6280632.htm?fraladdin 转载于:https://www.cnblogs.com/suifengbingzhu/p/4104109.html

JQuery方法

1、replace var str "I am a man"; str.replace(a,b); 说明:jquery的replace()函数默认替换第一项; var re new RegExp(a,g); str.replace(re,b); 说明:RegExp是正则表达式对象, g表示替换全部 2、json与对象的转换 v…

数学天才用5万字让你读懂:微积分!

前面接连发了三篇麦克斯韦方程组的文章(积分篇、微分篇和电磁波篇),从理论上来说,讲麦克斯韦方程组不讲微积分是不行的,因为人家本来就是一组积分方程和一组微分方程。 但是,为了让更多人,尤其是…

指定一个actor对pawn不可见

1. 把一个staticmesh作成一个actor 2. 给actor添加一个tag 3. 在pawn的beginPlay里面查找这个actor,并设置actor的owner为pawn,然后调用set owner no see

oracle中DECODE与CASE的用法区别

对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断。Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能。而CASE是9i以后提供的语法,这个语法更加的灵活,提供了IF THEN ELSE…

error C4668: 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”

一般为Windows中的宏和UE4冲突所致,需要用如下头文件包裹冲突的头文件: #include "Windows/AllowWindowsPlatformTypes.h" #include "Windows/PreWindowsApi.h" #include "冲突的头文件" #include "Windows/PostWi…

Delphi XE7实现的任意位置弹出菜单

Delphi XE7中目前还没有弹出菜单组件,这个弹出菜单应用很普遍,在JAVA开发的安卓程序中很简单就可以用上了,应该说是一个标准控件。看了一些例子,但是都不能满足我想在任意位置弹出菜单需求,于是自己在网上找了一个例子…

计算曲线的长度

若一条平面曲线可表达成标准方程 那么它的长度就是: 其中a、b为x的上下限。 若平面曲线可表达成参数方程 那么它的长度就是:

MATLAB 求曲线长度

1. 求曲线长度积分公式 2. 已知曲线方程 3. 已知系数,曲线方程为 y 0.0001 * x 0.0005 * x 20 4. 已知曲线的x的起点和终点 -90.78 ,90.78 5. matlab中定义曲线方程 >> syms x; >> y 20 0.0005 * x ^ 2 0.0001 * x ^ 3; 6. matlab中…

C++调用matlab dll

1. 编写matlab函数 2. 命令行输入 mex -setup 选择 mex -setup C 3. 命令行输入 mbuild -setup 选择 mex -setup C -client MBUILD 4. 命令行输入 mcc -W cpplib:add -T link:lib add.m -C 第一个add为生成的dll名称,第二个add为m文件名称,m文…

java方法使用

1 在方法中可以调用同一个类中的方法和属性,但是不能定义方法。system.out语句只能在方法中 2 方法重载:(1)同一个类中 (2)方法名相同 (3)参数列表的类型不同或者个数不同 代码&am…

rapidxml在qt linux(gcc)下写xml文件出错

在linux(gcc)下使用qt写入xml出错,代码如下: 错误如图:这里写图片描述 在网上找了好久没有找到答案,最后在http://stackoverflow.com/questions/14113923/rapidxml-print-header-has-undefined-methods找到…

UE4 插件大坑

正常如果在工程中创建C类,UE4都会自动给类前面添加一个“工程名_API”的宏,但是插件中的C类不会添加。 这样如果在主工程C中调用插件中的C类就会报链接错误,因此需要自己手动添加“插件名_API”这个宏。

MFC工具栏增加EditBox和Button

1. 在资源视图中增加EditBox, Button控件,ID分别为ID_EDIT_SEED, ID_BTN_SEED 2. 在CMainFrame中增加成员变量 CMFCToolBarEditBoxButton *m_editSeed; CMFCToolBarButton *m_btnSeed; 3. 在CMainFrame::OnCreate中创建控件 m_editSeed new CMFCTo…

Windows 2003 服务器安全设置-批处理 (附参考链接)

长期维护windows服务器终结出来的安全设置批处理与大家分享,复制以下全部内容用记事本另存为bat或者cmd执行分隔符号echo. echo ------------------------------------------------------ echo. echo ........... echo. net share c$ /delete net share d$ /delete …

利用curl验证ssl网站(webservice)

curl的用法: http://linux.about.com/od/commands/l/blcmdl1_curl.htm DER格式的cert转换为PEM格式(curl只接受PEM格式): openssl x509 -inform der -in cert.cer -out cert.pem curl命令示意: curl --cacert rootca.p…

接口隔离原则

定义 接口隔离原则(Interface Segregation Principle, ISP),定义为: Clients should not be forced to depend upon interfaces that they don’t use. (客户端不应该依赖它不需要的接口。)The dependency of one class to anoth…