一、国内地图坐标系简介

1、  WGS84(地图坐标)

美国GPS使用的是WGS84的坐标系统。GPS系统获得的坐标系统,基本为标准的国际通用的WGS84坐标系统

2、  GCJ-02(火星坐标)

GCJ-02是由中国国家测绘局制订的地理信息系统的坐标系统。它是一种对经纬度数据的加密算法,即加入随机的偏差。国内出版的各种地图系统(包括电子形式),出于国家安全考虑,必须至少采用GCJ-02对地理位置进行首次加密。

所有的电子地图所有的导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成“火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有的GPS公司,只要需要汽车导航的,需要用到导航电子地图的,统统需要在软件中加入国家保密算法,将COM口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标,这样,GPS导航仪和导航电子地图就可以完全匹配,GPS也就可以正常工作。

在国内发行的地图都使用GCJ02进行首次加密,

地图 坐标系
百度地图 百度坐标(BD-09)
腾讯搜搜地图 火星坐标
图吧MapBar地图 图吧坐标
高德MapABC地图API 火星坐标
凯立德地图 火星坐标(转为K码)

I、 百度坐标:在GCJ02基础上,进行了BD-09二次加密措施,API支持从WGS/GCJ转换成百度坐标,不支持反转。

II、凯立德K码:

a) K码将地图分成了四块进行编码,中心点在内蒙的阿拉善左旗境内,该点的K码是7uy1yuy1y。以该点为中心分别在东西方向和南北方向画一条线当横纵(XY)坐标轴,那么第一象限(即东北方向的那块)的K码的第1位全部都是5,第2象限的K码的第一位全是6,第3、4象限的K码的第一位分别全是7、8。并且该点有4个K码,即用四个K码定位都是这一点,这四个K码分别是7uy1yuy1y、80000uy1y、500000000、6uy1y0000。   

b) K码的第2-5位表示东西方向上的坐标,第6-9位代表南北方向上的坐标。实际上K码就是一个凯立德特有的34进制数,(26个字母加10个阿拉伯数字,再去掉不用的小写L和O共34个字符),这个34进制数从左向右从低位向高位排列(我们常用的10进制是从右向左由低位向高位排列),其中第2-5位东西方向上的数每一个单位代表2.5m左右,南北方向上的数每一个单位代表实际距离3米左右。比如80000uy1y向东约2.5米的点的K码就是81000uy1y,向东约34×2.5m的点的K码就是80100uy1y

c)K码与火星坐标可相互转换。

二、坐标系转换

1、地球坐标系(WGS)到火星坐标系(GCJ-02)的转换算法

var M_PI = 3.14159265358979324;
var a = 6378245.0;
var ee = 0.00669342162296594323;
var x_pi = M_PI * 3000.0 / 180.0;
function out_of_china(lat,  lon) {if (lon < 72.004 || lon > 137.8347)return true;if (lat < 0.8293 || lat > 55.8271)return true;return false;
}function wgs2gcj_lat(x, y) {var ret1 = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y+ 0.2 * Math.sqrt(Math.abs(x));ret1 += (20.0 * Math.sin(6.0 * x * M_PI) + 20.0 * Math.sin(2.0 * x* M_PI)) * 2.0 / 3.0;ret1 += (20.0 * Math.sin(y * M_PI) + 40.0 * Math.sin(y / 3.0 * M_PI)) * 2.0 / 3.0;ret1 += (160.0 * Math.sin(y / 12.0 * M_PI) + 320 * Math.sin(y * M_PI/ 30.0)) * 2.0 / 3.0;return ret1;
}function wgs2gcj_lng(x, y) {var ret2 = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1* Math.sqrt(Math.abs(x));ret2 += (20.0 * Math.sin(6.0 * x * M_PI) + 20.0 * Math.sin(2.0 * x* M_PI)) * 2.0 / 3.0;ret2 += (20.0 * Math.sin(x * M_PI) + 40.0 * Math.sin(x / 3.0 * M_PI)) * 2.0 / 3.0;ret2 += (150.0 * Math.sin(x / 12.0 * M_PI) + 300.0 * Math.sin(x / 30.0* M_PI)) * 2.0 / 3.0;return ret2;
}function wgs2gcj(poi) {if (out_of_china(poi.lat, poi.lng)) {return poi;}var poi2 = {};var dLat = wgs2gcj_lat(poi.lng - 105.0, poi.lat - 35.0);var dLon = wgs2gcj_lng(poi.lng - 105.0, poi.lat - 35.0);var radLat = poi.lat / 180.0 * M_PI;var magic = Math.sin(radLat);magic = 1 - ee * magic * magic;var sqrtMagic = Math.sqrt(magic);dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * M_PI);dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * M_PI);poi2.lat = poi.lat + dLat;poi2.lng = poi.lng + dLon;return poi2;
}

2、火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法

// 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法
function gcj2bd(poi) {var poi2 = {};var x = poi.lng, y = poi.lat;var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);poi2.lng = z * Math.cos(theta) + 0.0065;poi2.lat = z * Math.sin(theta) + 0.006;return poi2;
}function bd2gcj(poi) {var poi2 = {};var x = poi.lng - 0.0065, y = poi.lat - 0.006;var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);poi2.lng = z * Math.cos(theta);poi2.lat = z * Math.sin(theta);return poi2;
}

3、火星坐标系 (GCJ-02) 与凯立德K码 的转换算法

var codes = "0123456789abcdefghijkmnpqrstuvwxyz";
function __decode(pch)
{var v = 0;for (var i = 3; i >= 0; --i)v = v * 34 + (codes.indexOf(pch.charAt(i)));v = v * 250 / 9;return v;
}function __encode(v)
{var pch = "";v = v * 9 / 250;for (var i = 0; i < 4; ++i){pch += codes.charAt(v % 34);v /= 34;}return pch;
}function DecodeLon(k)
{var lon = __decode(k.substring(1, 5));if (k.charAt(0) == '5' || k.charAt(0) == '8')lon += 35000000;lon += 70000000;return lon/1000000.0;
}function DecodeLat(k)
{var lat = __decode(k.substring(5, 9));if (k.charAt(0) <= '6')lat += 35000000;lat += 5000000;return lat/1000000.0;
}function Encode(lat, lon)
{lat = parseInt(lat*1000000);lon = parseInt(lon*1000000);var k;lon -= 70000000;lat -= 5000000;if (lat > 35000000)if (lon <= 35000000)k = "6";elsek = "5";elseif (lon <= 35000000)k = "7";elsek = "8";if (lon > 35000000)lon -= 35000000;if (lat > 35000000)lat -= 35000000;k += __encode(lon);k += __encode(lat);return k;
}

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

  1. 2013 12 android 凯立德秋季高清旗舰 百度云,凯立德导航常用工具软件(2013.4.12更新下载链接)...

    本帖最后由 xinc 于 2013-4-12 10:59 编辑 凯立德导航常用工具软件,建议下载备用,全部软件无密码,以前找这些软件还真费了点事,现在分享给GPSHK的朋友. 这些软件都比较简单,很容 ...

  2. 【地图知识】城际通+凯立德+高德 各地图的介绍和比较.让你更清楚的了解地图

    http://www.xici.net/#u16193481/d88258571.htm 当前,中国取得导航电子地图资质的有:四维图新,高德,灵图,畅想,瑞图万方,武汉吉奥,凯立德,易图通,这八家企业 ...

  3. 凯立德地图导航2020年最新版车载_明明有车载导航,为什么很多人还是选择用手机导航?有5个原因...

    提到导航,你首先会想到什么导航产品呢? 如果是高德导航.百度导航之类的,那你主要用手机导航. 但是如果除了高德导航和百度导航之外,你还能随口说出四维图新导航.凯立德导航,甚至是道道通导航之类的话,那你 ...

  4. 凯立德导航地图文件的作用分项说明(转帖留存)

    凯立德导航地图文件的作用分项说明 , , , , 凯立德导航地图在国内市场占用率及普及率都相当高,作为一款操作简捷直观,画面靓丽的界面地图,自然会得到广大用户的信赖与支持. 同时,由于凯立德地图更新速 ...

  5. 408自装或4S店加装的凯立德导航升级地图技术贴

    轉自:408自装或4S店加装的凯立德导航升级地图技术贴 注:本贴教程仅用作技术交流分享,根据本贴刷坏导航的,楼主概不负责! 升级凯立德导航,从升级过程来看,了解了不少,特此发帖来说说 首先看看自己凯立 ...

  6. c3520 宝骏凯立德地图_凯立德2018车载导航地图-2018年05月凯立德高清优化版C2939-C7M05-3H21J22最新版 - 极光站...

    2018年05月凯立德高清优化版C2939-C7M05-3H21J22是凯立德2018车载导航地图!经常使用凯立德的,可以下载最新版本.3H21J22春季版,非常不错.在这里,小编为你提供懒人包百度网 ...

  7. 凯立德地图 将地理坐标转换为经纬度

    前言:因项目需求以及客户提出的要求要将百度地图更换为凯立德地图,因此就牵扯到经纬度转换的问题,凯立德官方文档对这方面提供的信息少,没有找到合适的解决方案,所以在几经周折总算是找到一个比较委托的解决办法 ...

  8. 2012年1月凯立德地图普高清全分辨率懒人包P1750-D5616-2721J09(完美破解,已上路实测,永久下载地址)...

    2012年1月凯立德普高清全分辨率懒人包P1750-D5616-2721J09(完美破解,已上路实测,永久下载地址) 目前唯一一款普高清全分辨率懒人包,全自动扫描端口.速率,下载解压后立即使用. [更 ...

  9. 凯立德GPS导航地图的文件说明

    以下是凯立德的文件的说明,更换地图只需要更换4个主要地图文件和POI_DATA文件夹就OK,图示以3.5寸的P0019-C5003为例,其它版本方法相同 NAVIBG.CLD NAVIMAP.CLD ...

最新文章

  1. EfficientNet模型的完整细节
  2. c# for 应输入;
  3. laydate兼容bootstrap
  4. c语言过程中的理论杂篇。
  5. go微服务框架-gomicro试用
  6. 用终端访问路由器设置端口开发_Serial for Mac(全功能串行终端管理软件)
  7. MySQL高级 - 内存优化 - InnoDB内存优化
  8. 使用jstack查看某个Java进程内的线程堆栈信息
  9. 美团与饿了么“鸡同鸭讲”后,又可以通过设置继续使用支付宝了?
  10. 高斯消元 zoj 3645 poj 1222/XOR消元
  11. 面试简历上的项目经验
  12. 局域网上网流量监控_NAT下网络流量监控解决方案
  13. python用海龟画圆的代码_python海龟画圆代码
  14. vue中SEO(搜索引擎优化)
  15. 求助!微信公众号页面部分手机加载后空白!
  16. 解救MacBook Pro老电脑显卡
  17. Django实现单点登录(SSO)
  18. Python实现矩阵奇异值分解(SVD)
  19. 中国最美的、令人震撼的10大名山
  20. NCE(Noise Contrastive Estimation) 与negative sampling

热门文章

  1. 微信开放平台第三方接口集成
  2. Address 172.16.40.216 maps to localhost, but this does not map back to the address
  3. 使用Oh my Posh设置Windows PowerShell主题要点
  4. 基于国产龙芯 CPU 的气井工业网关研究与设计(一)
  5. 电脑系统下载的镜像文件在哪里图解
  6. 连连支付将引中金入股 或为A股上市IPO铺路
  7. SAP License:ERP顾问与猎头的亲密接触之跳槽者必看
  8. 史上最全最实用HBuilder快捷键大全
  9. S7-1200PLC与昆仑通态触摸屏以太网通信的具体方法和步骤(图文)
  10. Java原理性基础知识整理[详细]