gps坐标偏移转换的那些事儿 下载本文

GPS坐标偏移、转换的那些事儿!

开篇的话 “相同的经纬度坐标在地图上显示会有偏移”您有没有遇到相似的情形?各种坐标体系之间如何转换?到底有哪些坐标体系?什么是火星坐标?

GPS是怎么定位坐标的 现在全球有四个卫星定位系统:美国的全球定位系统GPS(Global Positioning System),俄罗斯的格洛纳斯GIONASS, 欧盟的伽利略系统,我国的北斗。每个系统都有几个部分:星载部分、控制部分、以及用户部分。每个卫星在运行中,发送电磁波信息、包含时间、位置等等,用户部分根据定位装置接收信号,然后进行方程解算,由于要更多的解因子,所以GPS系统下,一般三颗卫星信号锁定后才能计算三差解,也就是粗略定位结果了。一、坐标体系 常见的坐标体系有哪些:1)GPS坐标(wgs84)wgs84 :WorldGeodetic System 1984,(全世界最流行的基准标准系统) ,是由美国国防部制图局建立,于1987年取代了当时GPS所采用的坐标系统(WGS-72坐标系统)。WGS-84坐标系的坐标原点位于地球的质心,Z轴指向BIHl984.0定义的协议地球极方向,X轴指向BIHl984.0的起始子午面和赤道的交点。GPS系统直接通过卫星定位获得的坐标,一般由经度和纬度两个参数组成,也叫经纬度。由0°经线和赤道确定,地球从格林尼治向东、西各划分180

个经度;从赤道起,向南、北也各划分90个纬度。单位是六十进制(度:分:秒,字母表示方向)或十进制(正/负十进制度)的。谷歌地球,googleearth上取到的,是GPS坐标,而且是度分秒形式,如图:

2)GCJ02GCJ-02是国内最广泛使用的坐标体系。是由中国国家测绘局制订的地理信息系统的坐标系统。它是一种对经纬度数据的加密算法,即加入随机的偏差,就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。所有的电子地图、导航设备,都需要加入国家保密插件:第一步,地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成“火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有的GPS公司,只要需要汽车导航的,需要用到导航电子地图的,都需要在软件中加入国家保密算法,将COM口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标。这样,GPS导航仪和导航电子地图就可以完全匹配,GPS也就可以正常工作了。比如谷歌中国,腾讯,高德都在用这个坐标体系。3)其他坐标体系一般都是由GCJ-02进过偏

移算法得到的。这种体系就根据每个公司的不同,坐标体系都不一样了。比如,图吧、百度和搜狗就使用自己的坐标体系,与其他坐标体系不兼容。百度定位SDK可以返回三种坐标系,分别是bd09, bd09ll和gcj02,其中bd-09能无偏差地显示在百度地图上。bd09ll 百度又在gcj02的技术上将坐标加密就成了bd09ll坐标。现在,您明白了吗:在各种web端平台,或者高德、腾讯、百度上取到的坐标,都不是GPS坐标,都是GCJ-02坐标,或者自己的偏移坐标系。比如,你在谷歌地图API,高德地图API,腾讯地图API上取到的,都是GCJ-02坐标,他们三家都是通用的,也适用于大部分地图API产品,以及他们的地图产品。例外,百度API上取到的,是BD-09坐标,只适用于百度地图相关产品。例外,搜狗API上取到的,是搜狗坐标,只适用于搜狗地图相关产品。例外,谷歌地球,googleearth上取到的,是GPS坐标,而且是度分秒形式的经纬度坐标,在国内不允许使用,必须转换为GCJ-02坐标。二、坐标格式与转换 1)坐标格式A、经纬度。这个是球面坐标,对于北京来说,就是(116.388171,39.935961)这样的坐标。比如腾讯、高德、百度都是这样的经纬度坐标。谷歌是经纬度顺序写反的经纬度坐标。所有坐标体系的原点,都是非洲,如图:B、墨卡托坐标。是一种投影坐标, 又称为高斯-克吕格投影

(Gauss-KrugerProjection),它不是用经纬度来表示的,数