城室小站 Trick002

城室小站 Trick002

城室小站 Trick002

   

关于坐标系的

大略了解


Trick 002

城室小站 Trick002
城室小站 Trick002



对于mapping来说,这是个非常基本的问题,可对于搞设计出身的我们来说,成天跟CAD这种基本GIS功能非常薄弱的我们来说,这个问题曾经困扰我很久。

WHAT? 我们画的图还有跟资料地图对不上的情况? 而且怎么对也对不上?有时候甚至经常有人不能理解为啥搞GIS的人有时候就出两张几个图层放在一起的地图搞了一下午都没有弄出来。

之所以我把这部分内容称之为一个“trick”,是因为我也没有完全懂,甚至没有懂很多。但我把能继续搞下去所需要了解的一些知识点算是串了起来,在这里给大家分享一下,有点零星但我略作总结。




1

“4326” & “3857”

城室小站 Trick002

大概念来说,坐标系分地理坐标系投影坐标系两大类。前者基本上在讨论地球上的位置,算是讨论个球,后者是把球面问题展平之后进一步讨论。

在地理坐标系的范畴里其实问题比较简单,主要就是WGS 1984坐标系就可以了,也就是我们常说的经纬度,尽管也有其他的一些标准(大概是因为地球不是真正的球,而且是测量的误差随着工业仪器的精准测量会有一定的偏差),但总的来说不会有很多的问题。这个标准看名字应该也可以知道是1984年的行业规范敲定的,而对应的 WGS 则是 World Geodetic System。它的简称也可以是wgs84,据查之前还有wgs60,wgs66,wgs72等几个前代,但总体来说wgs84基本还是一统江湖了,原因也很简单,因为美的的GPS采用了wgs84的标准。更多的细节可以查阅World_Geodetic_System,当然以后北斗的推广和流行可能就不知道会不会改用其他的。具体到咱们国家,还有北京54西安80这两个坐标系,说实话我对他们还是比较陌生的,基本上拿到这类坐标就会用工具去转化成标准的wgs84来操作,否则事情会很麻烦…… 索性他们对于84的转换还是网上一搜就搜到了,很容易。

而对于投影来说,事情就复杂很多,因为球面是不可展平的!所以投影坐标系没有一个如同wgs84那样特别标准的坐标系可以使用。

比如下面这种就是mecator投影,俗称墨卡托投影,原理是把地球塞在圆柱体里面,然后用球心的灯打出去看外面的世界,所以这种投影可以展平成一个矩形面,但是越靠近赤道越准,越靠往两极面积越扯……

城室小站 Trick002

相关介绍:Mercator_projection


其他还有什么等圆锥投影、古德投影、格林登投影等等一大堆。甚至某卫视的某栏目还围绕这方面出了智力题(话说这配图里哪里直观了):

城室小站 Trick002

其他还有高斯克吕格坐标(Gauss–Krüger coordinate system),它和后面提到的UTM很像,只不过他的分割更小,只有3度,UTM是6度(好了其实这些都不重要)。

而作为我这个懒人来说,尽管面对这么多问题,还是希望找个常用的投影坐标系将就着用用,于是就会选择用 WGS84 Web Mercator(Auxiliary Sphere)坐标系。为啥?只是因为google map用了这个方案来显示全球。是不是觉得这个坐标系名称比较复杂?没关系,有个叫EPSG的标准给各种各样的坐标系起好了编号,所以我为了省力就记了俩编号:WGS1984叫EPSG:4326,WGS84 Web Mercator(Auxiliary Sphere)则是叫 EPSG:3857。除此之外,3857这个坐标系竟然还有另一个代码,叫 EPSG: 900913……是的你没有看错,意思是 3857 和 900913 都是指同一个坐标系!其实仔细一看就可以发现geek的恶趣味,因为这个坐标系google 用了,而googlE这个单词的英文写法其实和900913非常像,well就说这么多吧……

另外,如果要比较精确测量距离的话,3857显然是不适用的,它对于越网两极的地形,形变越厉害,各位可以看这个:thetruesize

城室小站 Trick002

这网站把各国的地图可以拉动到跟我们国家差不多维度来做面积比较,还是挺有意思的一个工具。

如果真的要知道两点的距离,并且在地图上直接可测量,个人比较推荐UTM来做测量距离这件事,不过使用起来略复杂。因为UTM压根不是一个投影坐标系,而是一个系列,你需要根据观察对象所处的位置找到它在哪个地区,然后用这个地区的投影坐标系来转换:

城室小站 Trick002

比如你会在这张图上发现上海所处的位置大约在R这一行51列,那就可以去找UTM R51这一格来进行投影转换。(说实话我很少这么干,因为这么精工细作性价比很低)。




2

wgs84, gcj02, bd09

城室小站 Trick002

OK,说完这些,我们来说一些具体localization的问题。特别是14年刚回国那阵子,我发现自己国外带回来处理好的CIMAGE的数据都不能正确的在地图上plot出来,摸索一阵子才知道还有个“火星坐标系”的概念。这个词具体啥意思可以自行百度,总的来说他所指的是GCJ02坐标系(GCJ大约就是国测局的拼音缩写)。GCJ02也是地理坐标系,单位也是度分秒,但和wgs84不同的是,它在原来wgs84上进行了一定的偏移,也算是为国家的地理信息进行了一次加密。我们国内所有的地图供应商都应该采用这一标准进行地图发布,比如大家常用的高德地图、腾讯地图等等。另外百度地图比较奇葩,在gcj02的基础上又加了一次偏,形成了它家独有的bd09坐标……

因为底图偏移了,所以若要在地图上再叠加信息,就要相应的偏移,单点或许还比较简单,但是对于polygon, multipolygon这些复杂图元,大规模批量偏移在数据库里面操作就可费了劲了(自己曾经写这么个玩意儿荒废了一整周)……

anyway,wgs84数据要发出去,必须要至少加密成gcj02,甚至bd09,这一步骤在很多的地图供应商网站上都有接口,而逆过程基本上是禁止的,所以各位基本上不太容易找到这样的接口。另外出于学习与研究的目的,这俩坐标系的互转其实github上有,有心人可以科学上网自行查找,在此就不赘述了。

总而言之,本trick主要是讲一下关于坐标系的一个大略,总结了我对于这方面知识的一些了解与经验,并不侧重于具体实操,因为实操的经验诸位从我上面提到的这些关键词里面去直接搜索就可以找到,个人不太喜欢和欣赏给什么学什么,有兴趣 -> 自己动手 -> 获得收获,才是一个真正意义上学习的过程。


如看官有兴趣进一步沟通,可以在我知乎上留言或者私信,另外也欢迎关注我们的公众号,有公司近期的动态更新。



  

招聘启事


简介

上海城诗信息科技有限公司成立于2017年6月,是一家年轻的科技公司。公司核心技术团队来自于MIT和HARVARD,技术涉及城市规划、大数据、地理信息系统、深度学习、数据可视化、虚拟现实与增强现实等多个领域。公司主营业务为城市影像研究、数据工具开发、定制化城市数据咨询服务及数据可视化分析。公司致力于通过交错结合各自不同的技术背景创造出一些具有社会效益、商业价值的产品。


招聘:小程序开发工程师



薪资:

10k-15k/M


岗位职责:

1. 能理解微信小程序功能需求

2. 按照功能需求设计软件架构与数据库

3. 分模块研发微信小程序功能

4. 负责小程序上线后的快速迭代

5. 负责微信公众平台消息接口开发

6. 负责系统的技术架构和概要设计;

任职要求:

1. 专科及以上学历,计算机相关专业毕业;

2. 熟悉微信公众号及小程序开发流程,负责微信各种接口设计、开发和维护;

3. 根据公司需求,能够独立完成详细设计及编码、进行代码审查;

4. 具备web开发经验,掌握HTML(DIV+CSS)、HTML5、JavaScript/AJAX、Jquery等技术;

5. 至少熟悉或使用过一种以上服务端与客户端的通讯方式,如http、socket等;

6. 熟悉SQL;

7. 熟悉nodejs;

8. 熟悉Linux命令行操作;

9. 对微信公众平台上微网站微应用开发有较深的理解与应用,熟悉微信开发语言环境,能独立开发应用;

10. 有实际的针对微信接口编程经验

11. 有线上项目者优先


联系方式



城室小站 Trick002

请将相关简历发送至shaojinxin@citorytech.com


城室小站 Trick002

上海市普陀区环球港 地铁3/4/13号线金沙江路站5号出口200米逗维空间



欢迎关注知乎账号——【刘浏】

城市规划|互联网|大数据

城室小站 Trick002
城室小站 Trick002

关注城室科技官方公众号,

持续获取最新资讯!

城室小站 Trick002
城室小站 Trick002


原文始发于微信公众号(城室科技):城室小站 Trick002