地图坐标系WGS-84、GCJ-02、BD-09的相互转换

2018年7月21日 0 条评论 7.84k 次阅读 2 人点赞

一、地图坐标系解释

        在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系:

  1. WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的。但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用。

  2. GCJ-02坐标系,又名“火星坐标系”,是我国国测局独创的坐标体系,由WGS-84加密而成,在国内,必须至少使用GCJ-02坐标系,或者使用在GCJ-02加密后再进行加密的坐标系,如百度坐标系。高德和Google在国内都是使用GCJ-02坐标系,可以说,GCJ-02是国内最广泛使用的坐标系。

  3. 百度坐标系:bd-09,百度坐标系是在GCJ-02坐标系的基础上再次加密偏移后形成的坐标系,只适用于百度地图。(目前百度API提供了从其它坐标系转换为百度坐标系的API,但却没有从百度坐标系转为其他坐标系的API)。

二、坐标系转换(C#版本)

    以下为WGS-84、GCJ02、BD-09的坐标系之间相互转换的方法:

展开或折叠代码

    C#版本的WGS-84坐标系转为GCJ-02坐标系,(亲测可用):

三、QT/C++版本的坐标转换

创建头文件,QGCTransform.h:

创建源文件,QGCTransform.cpp,转换后的GPS经纬度存储在结构体“gps_t”中,代码如下:

引用原文
  1. 高德,百度,Google地图定位偏移以及坐标系转换

文章来源:源代码,欢迎分享,转载请保留出处。

原文地址:https://www.vcblog.top/article/399/

技术重在于积累,不要灰心,希望在明天!

文章评论(0)