地图(Gis)中的坐标系

地图(Gis)中的坐标系

文章目录

  • 地图(Gis)中的坐标系
  • 前言
  • 1.什么是坐标系(地图投影)
    • 1.1坐标系介绍
    • 1.2地理坐标系
    • 1.3投影坐标系
    • 1.4为什么要有这么多坐标系
    • 1.5什么是EPSG
    • 1.6不同坐标系的数据要如何转换
  • 2.坐标系在项目中的应用
    • 2.1地图框架和坐标系的确定
    • 2.2 Gis数据坐标系
    • 2.3 其他可能遇到的问题
  • 3.参考文献


前言

最近暂时离开的三维Gis的开发,转身投入到了二维Gis的开发,研究二维地图最好的一点终于不用考虑模型建模,贴图,着色器,粒子特效等三维方面甚至是计算机图形学的东西了,可以更加专注的研究GIS和业务相关。
近期遇到项目要求使用兰伯特和墨卡托坐标系,在和公司遥感算法小妹沟通的时候,发现她对坐标系这块也是一知半解。一开始我还比较疑惑,后来想想,虽然我是学Gis专业,但是真的理解这些也是在工作中慢慢学习和成长的。
这篇文章的主要目的是授人以渔,但是没有比较硬核的科普,主要介绍一下坐标系在地图(Gis)项目中的重要性,如何选择还有如何应用等,我认为比较实用的东西,并且尽量写一些其他文章没有的内容。
下面内容主要以我是我自己的理解,如果出现错误欢迎指正。


1.什么是坐标系(地图投影)

1.1坐标系介绍

在开发GIS项目或者涉及到GIS相关的模块的时候,我们第一步最主要的是要确定和统一地图数据使用的坐标系,因为坐标系的确定,会影响到后续一系列的功能开发和数据处理。比较严重的情况会导致所有数据重新处理,甚至是项目无法开发。例如,客户或者甲方提供了poi点等数据,却不告诉你坐标系是什么,很有可能和已有的谷歌地图,天地图怎么也对不上,这样的话,后续的功能也无法开发。

那么坐标系这么重要,什么是坐标系呢?坐标系分地理坐标系和投影坐标系。首先我们先分别来看它们概念。

地图(Gis)中的坐标系_第1张图片

地理坐标系:以参考椭球中心为原点,起始子午面和赤道面为基准面的地球坐标系。使用大地的经度纬度和高度来描述位置。

地图(Gis)中的坐标系_第2张图片

投影坐标系:投影坐标系在二维平面中进行定义。与地理坐标系不同,在二维空间范围内,投影坐标系的长度、角度和面积恒定。投影坐标系始终基于地理坐标系,而后者则是基于球体或旋转椭球体的。
定义可能看不懂,但是只要知道使用经纬度的是地理坐标系,使用米或者千米或者其他单位的就是投影坐标系。

如果不知道经纬度是啥样子,再简单一点,x和y的值在[-180,+180]和[-90,+90],那么他就是地理坐标系(经纬度为单位),如果x和y的值很大,大概在万或者百万以上,那么这个肯定是投影坐标系。只要不是太离谱的数据基本都适用。

1.2地理坐标系

地理坐标系大家应该好理解就是地球上的点都用经纬度进行表示,为什么在180和90直接呢。直接看下图。

地图(Gis)中的坐标系_第3张图片
地图(Gis)中的坐标系_第4张图片

纬线和经线一样是人类为度量方便而假设出来的辅助线,定义为地球表面某点随地球自转所形成的轨迹。任何一根纬线都是圆形而且两两平行。纬线的长度是赤道的周长乘以纬线的纬度的余弦,所以赤道最长,离赤道越远的纬线,周长越短,到了两极就缩为0。从赤道向北和向南,各分90°,称为北纬和南纬,分别用“N”和“S”表示。经度分东西,指南北,纬度分南北,指东西。

上面直接复制于百度百科,大概理解就可以了。那么为什么有不同的地理坐标系呢?因为采用的椭球不同,总所周知,地球是椭圆形的,但是也没有大家网上看的那么离谱(其实地球还是很圆的)。但是这微小的变化导致地球各处的常量不同,例如引力等。所以不同国家不同应用场景就会使用不同坐标系。例如中国一开始是使用北京54,其主要来源于前苏联的克拉索夫斯基椭球,在中国使用的时候经常不准。最后经过发展变成了现在的china2000。当然这里还涉及到大地水准面,椭球等地理信息概念,这里不再讨论,可详见其他更专业的文章。
详细请看:https://blog.csdn.net/qq_34149805/article/details/65634252

1.3投影坐标系

投影坐标系算是老大难,因为投影的方式多,应用场景多,所以导致投影坐标系特别多。理解起来也很费劲。简单来说就是在地心放一个灯泡,然后在我们用一个纸围着地球,然后大陆,海等等地物的影子就投到了纸上,接着展开的纸,这个纸上的地图就是投影坐标系的地图。下图来源https://www.cnblogs.com/onsummer/p/12081889.html
地图(Gis)中的坐标系_第5张图片
为什么要费那么大劲儿搞投影呢,因为球是无论如何也不能无损的展开成有个平面的,不信话可以拿橘子皮试试。为了大家不人均抱个地球仪,前辈们也是绞尽脑汁,但是大部分投影坐标系有个问题,就是形变,例如上图用的墨卡托投影,南北极会变形严重,南极大陆已经大离谱了,有些无良营销号还拿这种地图来瞎搞科普,实属可恶。 另外上文说的地理坐标系在实际应用(除三维地球外)上会采用经纬度直投的方式来使用。

经纬度直投,经纬度等间隔直投的特点是相同的经纬度间隔在屏幕上的间距相等,没有复杂的坐标变换。但是只是在低纬度地区长度、角度、面积、形状变化比较小,越向高纬度,水平距离变长越大,很小的纬圈都变得和赤道一样长。同时要素自身会变形,长方形会变成上宽下窄的倒梯形。

上文来源https://blog.csdn.net/qq_32202099/article/details/113185220

1.4为什么要有这么多坐标系

比较深入接触到GIS行业后,肯定有疑问,为什么要搞这么多坐标系啊,大家用一个不好吗。这好吗,这确实不好。一个原因在地理坐标系章节有提及。其次不同行业对地图的需求也不同。投影坐标系章节大家知道投影后经常有形变等问题,这会导致面积,两点连线角度,距离等等都会产生很大变化。所以为了满足不同行业需求就产生了很多不一样的坐标系,例如航海航空需要两点连线角度准确,那么他们一般会使用兰伯特等投影,这种投影的学名叫做“等角正轴搁圆锥投影”,看名字就能知道他大概是如何生成的。这种坐标系就可以保证两点连线角度不会因为形变而改变,使用这种坐标系的地图导航,驾驶员设定好行驶角度,就可以“无人驾驶”了。

当然还有很多坐标系都是为了解决一些使用上的问题,所以在跨行业集成的时候,常常出现数据坐标系不同,需要转换的情况。这么的坐标系难道都要学习背下来吗,其实不用的,前人已经帮咱们归纳总结好了,通过EPGS编号基本都可以找到。

1.5什么是EPSG

EPSG的全称是European Petroleum Survey Group,中文名称为欧洲石油调查组织,http://epsg.io。搞石油自然是离不开地图的,而我们从上文知道,地图又分出了这么多坐标系和投影,那么他们为了更好的管理和互相转换这些坐标系的地图数据,于是就给常见和通用的坐标系都赋予了一个唯一的编号,方便管理和查询。例如地图开发常用的坐标系WGS84,编号就是4326,http://epsg.io/4326,giser直接为了方便交流也就称其为epsg4326或者简称为4326。同理更常用的Pseudo-Mercator 坐标系的EPSG编号为3857,http://epsg.io/3857,交流沟通的时候就常称呼其为3587坐标系。

1.6不同坐标系的数据要如何转换

首先要确定数据坐标系和目标坐标系,最好要的两个坐标系的EPSG编号。有的客户或者甲方甚至同事他们不太懂GIS相关知识。很有可能出现下面的情况,最开始的生成数据的人说我这个数据是wgs84 web-Mercator投影的,等他们口口相传到你这里可能就变成了这个是84坐标系的,虽然没传歪,但是84坐标系这么多,就算是试一下常用的也很耽误时间,如果是小众坐标系,那就问题多了去。如果是说是3857的就很明确,如果有问题,直接甩给数据方,让他们确定坐标系后再进行后续工作。

有了明确坐标系后,就可以通过arcgis或者其他GIS软件进行坐标系转换工作了,如果需要动态转换,需要proj4,这个放在下面详细介绍,软件操作就不多介绍了。 如果没有EPSG编号呢,这个分两个情况。

情况一,大家不知道EPSG是什么,坐标系是常用坐标系,那么也是可以在软件里面搜索坐标系直接转换的。
情况二,地方坐标系,火星坐标系,百度坐标系,首先和客户或者数据提供方确定,如果他们说不出来,问问是否为地方坐标系,火星坐标系,还是百度坐标系,如果是这三个坐标系,那么恭喜你进入的地狱模式。

地方坐标系,各个地方为数据保密和精度问题,都会自创一套坐标系,基本上是用3857进行魔改,如果要转的话需要七参数转换或者配准。地方坐标系的七参数一般不会给到,如果给了七参数,建议找GIS大神处理。没有七参数的话,那么剩下还有一个方法的就是配准了。配准需要提供一套对应的坐标,来进行配准,具体过程不具体讨论了。所以尽量还是让数据方提供常见坐标系的数据来进行系统开发。

2021-12-7 补充:年轻了,qgis可以转换火星坐标系和百度坐标系,链接:https://blog.csdn.net/weixin_36123300/article/details/112243349

火星坐标系(GCJ02),国家加密的坐标系,如果范围小也可以配准解决,转换参数别想了,除非你想让国家管吃管住,具体可参考https://www.cnblogs.com/onsummer/p/12081889.html中的4.5. 假坐标系统:GCJ02与BD09

百度坐标系(BD09),在火星坐标系上又进行了偏移,可以通过配准解决,但是除非必要,能不用就不用,具体参考同上。

其他未知坐标系,没有配准解决不了的,如果有,那么说明你控制点不够多,误差不够小。但是不推荐使用,费时费力,最后成果误差往往还非常大。

总而言之,一定一定要用常见坐标系,所有数据都要往常见坐标系去转换,并且统一坐标系,用了乱七八糟的坐标系,那就是进了深坑。

2.坐标系在项目中的应用

这个章节主要是分享一下我的一些工作经验。正如开头所说,坐标系对于地图相关项目真的是十分重要,希望我这些经验能帮大家少踩一些坑。

2.1地图框架和坐标系的确定

地图框架和坐标系可能会相互影响,例如cesium是个三维gis框架,那么他对地理坐标系支持的最好,例如4326。而leaflet或者openlayer这种二维地图框架对大部分坐标系都支持的很好,那么坐标系的选择范围就会更大一些。
具体选择的话,需要看结合需求和公司的整体规划,但是主要遵循两个原则。
第一,二维地图可以完成的项目或者需求,就不要用三维去做。(三维的坑我能写一车)
第二,尽量选择常见坐标系作为基础坐标系。

2.2 Gis数据坐标系

地图框架和坐标系确定后,项目的基础就已经构建好了。接下来就会开始进入到下面开发,地图开发离不开地理信息数据,数据的坐标系遵循一个原则即可,所有地理信息数据的坐标系全部转换为之前确定好的坐标系。当然最好是能直接提供相同的坐标系的数据。如果需要转换可以查看上文的不同坐标系的数据要如何转换。

2.3 其他可能遇到的问题

1.除非必要,不要更换确定好的坐标系。
2.如果使用互联网底图例如天地图,谷歌等,那么坐标系只能选择4236,3857,4490
3.如果数据上图出现问题,可以借助arcgis,supermap等软件来对错误进行排查。
4.尽量减少地图模块的直接操作的功能尤其是三维,不然交互逻辑的代码会很复杂。

如果还遇到了什么问题,可以在评论区留言,我能解决的,尽量帮你解决。我一直觉得Gis只是计算机科学的一个分支领域,现在却变成了做技术的不了解Gis,觉得Gis太难理解,做Gis的又觉得技术太难太深不想接触。希望我的一点点努力,能帮助大家成为双修(计科和Gis)人才。

3.参考文献

百度百科:地理坐标系
百度百科:经纬度
投影和坐标系统那点事
你必须知道的地理坐标系和投影坐标系
聊聊GIS中的坐标系|再版
聊聊GIS中的坐标系|再版 识别各种数据的坐标系及代码中的坐标系
GIS基础一: GIS中的WGS84地理坐标系和墨卡托投影坐标系

你可能感兴趣的:(三维gis,二维gis,gis,街景地图,arcgis)