文章目录

  • 一、国内的常用坐标系
    • 1.1 坐标系简介
    • 1.2 国内各地图厂家坐标系
    • 1.3位置数据坐标系分析
  • 二、坐标系介绍
    • 2.1 WGS-84坐标系:
    • 2.2 CGCS2000
    • 2.3 GCJ02 坐标系
    • 2.4 BD09坐标系
    • 2.5.墨卡托投影法
    • 2.6. Pseudo-Mercator投影
    • 2.7BD09MC投影
    • 2.8. UTM投影
  • 三、各厂家地图偏移说明
    • 3.1 为什么天地图没有偏移
    • 3.2 为什么谷歌地球没有偏移
    • 3.3 为什么谷歌卫星地图(国外服务器)没有偏移?
    • 3.4为什么必应卫星地图没有偏移?
    • 3.5为什么OpenStreetMap地图没有偏移?

一、国内的常用坐标系

1.1 坐标系简介

  • WGS84\GCJ02\CGCS2000\BD09是地心坐标系,坐标表现形式为经度、纬度。
  • Pseudo-Mercator\UTM\BD09MC是投影坐标系,坐标表现形式为x、y。
  • WGS84\CGCS2000是原始坐标系,GCJ02\BD09是加密坐标系。

1.2 国内各地图厂家坐标系

厂商 国内 国外
天地图 CGCS2000和Pseudo-Mercator投影坐标系 CGCS2000和Pseudo-Mercator投影坐标系
谷歌 已停用
街道图是GCJ-02,数据来源于高德,两者互通
卫星图采用的是全84坐标系,导致在我国区域谷歌地图的街景和卫星图不重合
WGS84坐标系和Pseudo-Mercator投影坐标系
OSM WGS84坐标系和Pseudo-Mercator投影坐标系
百度 BD09和BD09MC投影坐标系(包括港澳台)
1)BD09是在GCJ-02坐标系基础上再次加密
2)支持WGS-84、GCJ-02转换成BD09,反向不支持,并且批量转换一次有条数限制
WGS-84
高德 GCJ-02和Pseudo-Mercator投影坐标系
1)WGS-84->GCJ-02(高德有接口提供,反过来没有)
2)MapABC 是高德集团底下的图盟公司,主要面向大众型企业或政府机关,并提供付费的有偿服务,
3)Amap和MapABC,数据和服务都是共享的
腾讯 GCJ-02和Pseudo-Mercator投影坐标系
Bing 街道:GCJ-02
卫星图:WGS84或CGCS2000
WGS-84

1.3位置数据坐标系分析

  • 国内Android系统手机采集的AGPS数据是GCJ02坐标系的,GPS数据应该为WGS84;
  • RTK和一些PDA设备采集的GPS数据是WGS84坐标系的;
  • IOS系统手机采集的AGPS数据是WGS84坐标系的;
  • GPS芯片原生得到的是坐标是84坐标,在我国,必须要得到授权后,才可以得到并使用02坐标系的加密方式,并且可以在我国02坐标系下进行使用。而国内几家大公司的地图的sdk,由于得到了国家的许可,提供了相应的sdk,可以通过调用sdk的方式得到02坐标系下的坐标值;
  • 北斗芯片获取的定位数据是CGCS2000坐标系的。

二、坐标系介绍

2.1 WGS-84坐标系:

 全称,World Geodetic System-1984,既1984年的全球坐标系统。
 美国GPS系统使用的是WGS84坐标系,受益于GPS系统的发展,现在全球用的最多的坐标系就是WGS84坐标系,它的EPSG编码是4326。(EPSG是大地基准面、空间参考系统、地球椭球体、坐标转换和相关度量单位的公共注册中心,它为每个坐标系都分配有一个编码)。
 WGS84坐标系的坐标原点为地球质心,地心空间直角坐标系的Z轴指向BIH (国际时间服务机构)1984.0定义的协议地球极(CTP)方向,X轴指向BIH 1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系。
 WGS84坐标系的EPSG编码为4326,赤道半径为6378137,扁率为1/298.257223565,是目前应用最为广泛的坐标系统,只要跟GPS定位相关,使用的都是WGS84坐标系,谷歌、OSM也用的WGS84坐标系,很多软件(QGIS、ARCGIS)、前端脚本库(leaflet、mapbox、openlayer),在没有特别声明的时候,默认数据使用是WGS84坐标。

2.2 CGCS2000

 China Geodetic Coordinate System 2000,2000国家大地坐标系,是我国当前最新的国家大地坐标系,它的EPSG编码为,4490。
 2000国家大地坐标系的原点为包括海洋和大气的整个地球的质量中心;2000国家大地坐标系的Z轴由原点指向历元2000.0的地球参考极的方向,该历元的指向由国际时间局给定的历元为1984.0的初始指向推算,定向的时间演化保证相对于地壳不产生残余的全球旋转,X轴由原点指向格林尼治参考子午线与地球赤道面(历元2000.0)的交点,Y轴与Z轴、X轴构成右手正交坐标系。采用广义相对论意义下的尺度。
 相较于WGS84,CGCS2000坐标系的区别主要在于,它采用的是2000年的地球物理和大地测量的结果平差计算而设定的,坐标系Z轴指向历元2000的地球参考极方向,这些差异对高精数据有影响,但对于精度在10m以上的数据来说,这些差异可以忽略不计。
 很多软件和框架都还没有兼容CGCS2000坐标系,我们在使用CGCS2000坐标系的数据的时候,可以设置为WGS84坐标系,这样也便于传输和查阅。
天地图采用的是CGCS2000坐标系
既非高精度的大多数情况下,我们可以认为WGS84坐标系=CGCS2000坐标系,2000坐标系与WGS84坐标系偏差不大,因为CGCS2000坐标系与WGS84坐标系的原点、尺度、定向及定向演变的定义都是相同的,参考椭球的参数略有不同而已。相同的坐标点,在CGCS2000与WGS84下,经度是相同的,只在纬度上存有0.11mm上下的区别,可以忽略掉。

2.3 GCJ02 坐标系

 为了数据安全和保密,通过地形图非线性保密处理算法(俗称火星加密)加密过的WGS84坐标系,俗称国测局坐标系,或火星坐标系

 GCJ02坐标系与WGS84坐标系之间的偏差大概在50-700m左右。

 目前国内大部分地图底图和矢量数据(除了LBS服务的坐标数据,还包括Android手机的定位数据)都使用GCJ02坐标系,为了使GCJ02坐标系的底图与数据和WGS84坐标系的底图与数据适配,通常会使用坐标系纠偏算法,将坐标系统一。

 各种形式的纠偏算法,JavaScript、java、python等,都可以在网上搜索到,数据处理和webgis开发,坐标系纠偏与数据融合统一是很重要的环节。

 通过对原始数据和加偏后的数据进行分析,猜测加偏的算法大概是,使用克拉索夫斯基椭球的参数,将原始坐标对应经线和纬线上的偏差转为弧度后,与原始坐标相加,形成加偏坐标。

 这个算法非常优秀,它既能保证GCJ02坐标系,相对于WGS84坐标系的线性单调性;又能保证GCJ02坐标系在伪距墨卡托投影下,相对于WGS84坐标系在伪距墨卡托投影下的线性单调性;既能保证数据在加偏后,仍能维持实际的空间相对位置,又能保证数据可以无损的纠偏回去。

 GCJ02坐标系是一种加密坐标系,目前国内大部分地图底图(高德、腾讯)和矢量数据(图商的LBS服务和Android手机的定位数据)都使用的是GCJ02坐标系,GCJ02的加密算法非常精妙,地图底图和矢量数据在使用之前,需要将坐标系进行统一。

2.4 BD09坐标系

 D09坐标系是百度地图使用的地心坐标系,2009年,百度地图在GCJ02的基础上,做了二次加密,形成了BD09坐标系。坐标系的命名规则是首写字母+年份,BD09是2009年提出的,GCJ02是2002年提出的,CGCS2000是2000年提出的,WGS84是1984年提出的。)
 BD09坐标系大概是先将GCJ02坐标转为极坐标后,添加一个常量做偏移值,再将偏移后的极坐标转回到直角坐标。
 这种加偏算法,仅能保证相对于GCJ02坐标系的线性单调性,无法保证投影后的线性单调性,所以百度地图的墨卡托投影需要分区域进行。
 百度地图提供WGS84、GCJ02坐标系向BD09坐标系的转换API;在前端,百度地图也支持声明数据坐标系,以自动适配百度地图底图。
 除了百度自己的API外,网上也能搜索到BD09、GCJ02、WGS84坐标系之间的转换方法
 因为在GCJ02坐标系的基础上,又做了一次加密,所以百度地图与其他地图的数据兼容性变得很不好。但作为国内硕果仅存的还在做街景的商业地图平台,加之其与echart开源JavaScript库的良好结合,我们很多时候,还需要使用百度地图,这时候,虽然麻烦,但还是需要对它的底图和数据进行坐标系统一。
 BD09坐标系是在GCJ02坐标系基础上二次加密而成,仅有百度地图在用,但百度地图有街景、有三维、有echart,很多情况下,我们需要使用百度地图的底图和数据,这时候,就需要对坐标系进行统一了,百度地图webAPI和js API都支持坐标系的转换。

2.5.墨卡托投影法

 在说其他投影坐标系之前,我们先来了解一下墨卡托投影法,因为它是所有网络地图投影的基础。
 墨卡托投影法,又称麦卡托投影法、正轴等角圆柱投影,是一种等角的圆柱形地图投影法。
本投影法得名于法兰德斯出身的地理学家杰拉杜斯·墨卡托,他于1569年发表长202公分、宽124公分以此方式绘制的世界地图。在以此投影法绘制的地图上,经纬线于任何位置皆垂直相交,使世界地图可以绘制在一个长方形上。由于可显示任两点间的正确方位,航海用途的海图、航路图大都以此方式绘制。在该投影中线型比例尺在图中任意一点周围都保持不变,从而可以保持大陆轮廓投影后的角度和形状不变(即等角);但墨卡托投影会使面积产生变形,极点的比例甚至达到了无穷大。


 在制作小比例尺地图的时候,近似认为地球是正球体,将上述中的x和y乘以地球半径,即可形成对应地点的墨卡托投影相对坐标,在制作大比例尺地图的时候,要考虑到地球扁率。
墨卡托投影法是一种等角圆柱形地图投影,它的投影公式计算简单,可以将地球投影到一张长方形图上,它是Web-Mercator投影的基础。

2.6. Pseudo-Mercator投影

 Pseudo-Mercator又称Web-Mercator,是墨卡托投影的一种变体,是WGS84坐标系的伪距墨卡托投影,是网络地图应用的标准投影。自从2005年,谷歌地图使用Web-Mercator投影发布自己的瓦片地图起,后续的图商OSM、高德、腾讯、百度都沿袭了这种投影方法发布自己的地图。它的EPSG编码为3857。
 墨卡托投影在大比例下会考虑地球扁率,但Web-Mercator在所有比例尺下都使用球面公式,会导致局部地区的地图偏离同一比例尺下的椭球面墨卡托地图。离赤道越远,偏差就越明显,在地面上可以达到40 km。
 因为很多人不知道Web-Mercator和墨卡托投影有这样的差别,导致两者经常被乱用,为了避免投影乱用,致使数据混淆,很多官方机构规定正规途径禁用Web-Mercator投影。
 通常情况,Web-Mercator投影仅在网络地图上使用。
Web-Mercator投影公式与标准球面墨卡托的公式基本相同,但将世界坐标调整为左上角为(0, 0),右下角为(256, 256)的正方形,假设地图投影在一个256像素*256像素的图幅上:

 其中x和y是像素坐标,λ是经度,φ是纬度,pixel是像素,zoom level是地图瓦片比例尺层级。
 Web-Mercator投影的数据覆盖范围在经度[-180°,180°],纬度[-85.051129°, 85.051129°]之间,这有两个好处,其一是避免将极点投影到无穷远处,其二是能将整个投影地图变成正方形;虽然它会把部分南北极地区截掉,但毕竟,除了极为特殊的情况外,企鹅和北极熊不看网络地图。
Web-Mercator投影的缺点是变形失真比较严重,不适用于大比例尺、高精度数据的显示;但优点也很明显,投影公式计算简单,投影结果是正方形,切图方便,坐标结果是各层级的像素坐标。
Web-Mercator投影坐标系是网络地图的投影坐标系,几乎所有的网络地图都使用这种投影,它的投影结果是正方形的,计算简单,切图方便。

2.7BD09MC投影

 BD09MC是BD09坐标系的Web-Mercator投影坐标系。
 前文已经说过,GCJ02坐标系是WGS84坐标系的加密结果,GCJ02坐标系相对于WGS84坐标保证了投影后的线性单调性,所以GCJ02坐标系可以直接使用Web-Mercator投影,但作为GCJ02坐标系的二次加密结果BD09坐标系没有做到投影后的线性单调性,为了保障投影后的线性单调性,百度地图基于Web-Mercator投影进行了修改,加入了常量矩阵,分区域对投影结果进行纠正。
 因为BD09坐标系采用极坐标加常量的方法进行偏移,所以BD09MC投影不是基于正球体的,而是椭球,其椭球赤道半径a=6378206m,极半径b=6356584.314245179m,数据覆盖范围与Web-Mercator投影一致。
 BD09MC投影坐标系与Web-Mercator投影坐标系之间的转换可参见:https://blog.csdn.net/sinat_41310868/article/details/113791826。
 地图底图瓦片栅格的转换,考虑到精度要求不需要太高,通常情况下,仅需进行瓦片中心点坐标的平移即可。
 因为BD09坐标系是极坐标加常量加密,无法保证投影后的线性单调性,所以BD09MC投影坐标系需要在BD09坐标系进行Web-Mercator投影后,进行坐标纠正。因为精度不需要太高,地图瓦片的坐标纠正,仅需进行瓦片中心点坐标的平移即可。

2.8. UTM投影

 Universal Transverse Mercator,通用横轴墨卡托投影,是一种国际标准化的地图投影法。使用笛卡尔坐标系,标记南纬80°至北纬84°之间的所有位置,它的坐标基础是WGS84坐标系,因为UTM是一种分度带投影,所以不同经度区间的UTM投影坐标系的EPSG编码不同。
 UTM采用网格编码,每个网格的编码经度在前,纬度在后。
 经度区间,每6°被编排为一经度区间。每一个经度区间均以一个数字表示,由西向东数以01至60编排。
 纬度区间,从南纬80°开始,每8°被编排为一个纬度区间,而最北的纬度区间(北纬74°以北)则被延伸至北纬84°,以覆盖世界上大部分陆地。每一个纬度区间均以一个英文字母表示,由南向北数以C至X编排。
具体情况如下图︰

 在网格编码的基础上,某一点的UTM坐标表示为该点所在的网格编码,加上该点由网格西南角起向北和向东的距离(细分网格数)。
 坐标可由不同位数的数字组成,根据精确度而定。
 如下图,假设在一个大网格(例如17T)中,网格被不断以1010的尺度被细分(第一次细分为100100)。
 A点的UTM细分坐标为17T 11 83,B点的UTM细分坐标为17T 106 827,C点的细分坐标为17T 1085 8255。

 通常,一些自动驾驶项目采集的高精地图数据(点云、街景)是UTM投影坐标系的。某些网站上的卫星影像和自然资源数据,也使用UTM投影编码进行索引。
 UTM是通用横轴墨卡托投影,以细分网格的方式表示地球上的区间,一些高精地图数据使用的是UTM投影坐标系,某些网站上的卫星影像和自然资源数据,也是用UTM投影编码进行索引。
UTM投影坐标系经常应用在无人驾驶及高精地图上面

三、各厂家地图偏移说明

3.1 为什么天地图没有偏移

 天地图是在国测局主导下生产建设的地图,是为了促进地理信息资源共享和高效利用,提高测绘地理信息公共服务能力和水平,改进测绘地理信息成果的服务方式,更好地满足国家信息化建设的需要,为社会公众的工作和生活提供方便。这样一个关乎国家民生的地图,你说能随意偏移吗,有必要偏移吗?
 那么为什么其它百度或高德等公众地图就一定要用GCJ-02加密呢?制作过地图或搞过测绘的朋友一定了解,对于国家一些重要的机构是不能出现在地图中的(有地图测绘相关的法律法规),比如一些军事管理区或国防战备设施等,它就像一柄利剑,且能随意示人?对于这些敏感的重要信息,国家天地图肯定是可以进行了严格管控的,但对于其它商用地图,在监管困难的情况下,于是就制定了GCJ-02标准,这就是商用地图必须要采用GCJ-02加密的根本原因。

3.2 为什么谷歌地球没有偏移

 谷歌地球(GoogleEarth)是针对全球的,坐标完全没有偏移,由于没有详细的标注信息,服务器不在国内,且也不是主要针对国内用户,因此ZF也没有对其采取强硬措施,但现在谷歌地球(GoogleEarth)越来越难登录,一般需要采取翻墙才能访问,这是不争的事实。

3.3 为什么谷歌卫星地图(国外服务器)没有偏移?

 Web版谷歌地图分两种,一种是谷歌国外服务器在线地图,通过map.google.com访问,一个是谷歌国内服务器在线地图,通过map.google.cn访问。而谷歌国外服务器在线地图,也分三种,分别是谷歌卫星地图、谷歌电子地图和谷歌地表地形图。
谷歌卫星地图同谷歌地球(GoogleEarth)一样,谷歌国外服务器在线地图的卫星地图,由于服务器不在国内,且也不是主要针对国内用户,因此卫星地图是没有偏移的,也没有详细的标注信息,而且访问也需要翻墙才可以。它与谷歌地球(GoogleEarth)卫星影像的主要区别是采用的坐标系是WGS84 Web墨卡托投影且有Google水印,而谷歌地球(GoogleEarth)卫星影像采用的是WGS84地球坐标系且没有Google水印,它们的共同点是坐标都没有偏移。
对于谷歌电子地图和谷歌地表地形图而言,由于有详细的标注信息,也在国家的管控下进行了GCJ-02加密。

3.4为什么必应卫星地图没有偏移?

 必应卫星地图的情况与谷歌卫星地图(国外服务)基本相同,投影为WGS84 Web 墨卡托且坐标没有偏移,而必应电子地图还是有偏移的。

3.5为什么OpenStreetMap地图没有偏移?

 OpenStreetMap是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图,相对于其它主流地图来讲,可能影响力还没有这么大,国内用户用得相对较少,信息的详细程序也比较有限,因此ZF还没有对其进行管控。

国内常用地图坐标系总结相关推荐

  1. java常用地图坐标系转换工具类,支持谷歌,腾讯,百度等主流的地理坐标转换

    package com.shen.springboot.redis.util;import java.util.ArrayList; import java.util.HashMap; import ...

  2. arcgis 投影坐标系转地理坐标系_空间坐标与投影系统系列(二):国内常用投影坐标系...

    上一篇我们介绍了空间坐标和地图投影.本篇我们以国内常用的54,80,2000坐标系统为例,介绍各坐标系统的区别与联系. 一.我国常用坐标系 我国大中比例尺地图均采用高斯-克吕格投影,其通常是按6度和3 ...

  3. 地图坐标系大全:常用地图坐标系详解与转换指南

    介绍地图坐标系的基本概念和原理 地图坐标系是用于描述地图上位置的数学模型.它可以用来表示地球表面上的任意一个点,使得这个点的位置可以在地图上精确定位.不同的地图坐标系采用不同的基准面和投影方式,因此会 ...

  4. 国内地图坐标系介绍及常见地图(百度、高德、凯立德)之间的坐标系转换

    一.国内地图坐标系简介 1.  WGS84(地图坐标) 美国GPS使用的是WGS84的坐标系统.GPS系统获得的坐标系统,基本为标准的国际通用的WGS84坐标系统 2.  GCJ-02(火星坐标) G ...

  5. 国内最常用的坐标系大全

    WGS84坐标系(GPS坐标系) WGS-84坐标系(World Geodetic System一1984 Coordinate System)是一种国际上采用的地心坐标系.坐标原点为地球质心,其地心 ...

  6. 国内主要地图瓦片坐标系定义及计算原理

    国内主要地图瓦片坐标系定义及计算原理 作者 CntChen 关注 2016.05.10 20:05* 字数 3144 阅读 1571评论 0喜欢 9 本文将介绍瓦片坐标相关知识,并提供高德地图.百度地 ...

  7. 有关国内地图坐标系之间相互转换

    IOS定位与坐标系算法 在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统.大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的 ...

  8. 地图坐标系之间的转换(百度地图、GCJ、WGS84)

    文章目录 文章参考 坐标系介绍 常见坐标系 WGS84坐标系(标准的GPS坐标) WGS84 Web墨卡托(平面地图) GCJ02经纬度投影(火星坐标系) GCJ02 Web 墨卡托投影 BD09 经 ...

  9. 常见地图坐标系以及转换方法、转换工具

    l 为什么要进行坐标系转换? 因为国内对地理坐标有特殊的政策,GPS获取的原始坐标不能在互联网上对外提供,所有电子地图必须对位置做偏移处理,这就导致从底层接口得到的坐标展示在地图上会有偏移.这种偏移不 ...

  10. PHP 不同地图坐标系经纬度转换 GCj02 WGS84 BD-09

    PHP 不同地图坐标系经纬度转换 GCj02 WGS84 BD-09 在项目中需要根据坐标计算距离,结果发现地图坐标不一致需要转换一下,在网上找到大佬写的一篇文章,亲测有效,原文地址: https:/ ...

最新文章

  1. 用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)
  2. oracle top用法
  3. 好程序员大数据笔记之:Hadoop集群搭建
  4. 科大星云诗社动态20210529
  5. 【渝粤教育】广东开放大学 教育心理学 形成性考核 (42)
  6. 【Python包】安装teradatasql提示找不到pycryptodome模块错误(pycrypto,pycryptodome和crypto加密库)...
  7. openjdk怎么执行java命令_Ubuntu 18.04 上使用 OpenJDK 安装并运行 Tomcat
  8. malloc()与 alloc()区别(转)
  9. 【Axure电商原型】电商APP高保真原型+移动端通用版电商app模板+用户中心+会员体系+内容推荐+社区体系+运营推广+订单流程+运营活动+订单管理+售后及服务+秒杀专区+特惠推荐+高保真移动端电商
  10. HTML限制输入个数,如何使用CSS(或jQuery,如果需要)限制输入HTML输入的字符数?
  11. python 用法 argparse.ArgumentParser()用法解析
  12. 编写高效优雅Java程序
  13. 【优化算法】爬虫搜索算法(RSA)【含Matlab源码 1838期】
  14. Java开源大全 网站
  15. 数据库的那些乱七八糟烦人的锁(数据库锁机制有这一篇就够了)
  16. 设计模式之单例模式:饿汉模式(懒汉模式)及优缺点分析
  17. 最新最全的云开发入门教程,微信小程序云开发,云函数,云数据库学习,微信小程序云开发扩展功能学习
  18. 坚果种类和营养价值排名
  19. 2020 东京奥运会直播/回放观看途径
  20. pagefile.sys从C盘移到其他盘

热门文章

  1. python 修改文件名有特殊符号_Linux删除包含特殊符号文件名的文件
  2. python控制风扇_Python语音控制普通风扇实现教程
  3. vba手机号码归属_手机号码归属地查询
  4. Linux 查看CPU温度
  5. 如何用软文打造口碑营销?
  6. 高中数学平面解析几何解题技巧-直线与圆锥曲线的位置关系-习题
  7. 贝叶斯因果网络_因果关系和贝叶斯网络
  8. mysql 增加分区_MySql数据分区操作之新增分区操作
  9. 恶意软件清理助手 v2.50 Build 005
  10. littlevgl抗锯齿_「VGL」Littlevgl 显示汉字 - seo实验室