http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=113.540124&y=23.517846
from=0 代表传入真实经纬度
to=4 代表转换成百度纠偏后的经纬度
输出json格式:
{"error":0,"x":"MTEzLjU1MTgwNzMy","y":"MjMuNTIxMjMzOTEwNjQ2"}
x、y分别是纠偏后的经纬度值,base64编码格式,大家可根据base64编码转换成明码,如果是在百度地图上定位则不需要转换,他们API支持这格式。
众所周知地球是一个不规则椭圆体,GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定。 基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面。基准面是在椭球体基础上建立的,椭球体可以对应多个基准面,而基准面只能对应一个椭球体。 意思就是无论是谷歌地图、搜搜地图还是高德地图、百度地图区别只是针对不同的大地地理坐标系标准制作的经纬度,不存在准不准的问题,大家都是准的只是参照物或者说是标准不一样。谷歌地图采用的是WGS84地理坐标系(中国范围除外),谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系,百度采用的是BD09坐标系,而设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,为什么不统一用WGS84地理坐标系这就是国家地理测绘总局对于出版地图的要求,出版地图必须符合GCJ02坐标系标准了,也就是国家规定不能直接使用WGS84地理坐标系。所以定位大家感觉不准确很多又叫出版地图为火星地图其实只是坐标系不一样而已。
这就是为什么设备采集的经纬度在地图上显示的时候经常有很大的偏差,远远超出民用GPS 10米偏移量的技术规范,于是我们就有了谷歌地图纠偏 腾讯搜搜纠偏 混合地图纠偏 百度谷歌互转存在的价值。
那如何对谷歌地图纠偏、搜搜soso地图纠偏或者对百度地图纠偏呢,如果用算法目前没有太好的算法直接转换,所以大家采用的都是比对的方法吧地球划分成若干个小块找到地图的偏差量记录下来,然后根据任意经纬度找寻最接近的偏差量加上偏差量就可以实现不同地图之间的经纬度转换。现在有0.01度纠偏经纬度信息,可以提供任意格式,可以直接把经纬度偏移量调整回来。
百度地图纠偏信息包含中国海域一共29,699,997条纠偏数据,谷歌地图只包含中国陆地一共12,597,551条纠偏数据,基站数据移动和联通的共340万数据。
移动联通基站数据字段说明: MCC:国家 (460是中国) MNC:0是移动,1是联通 LAC:小区号 CELL:基站号 LNG:纬度 LAT:经度 O_LNG:纠偏后的纬度(用于google地图显示) O_LAT:纠偏后的经度(用于google地图显示)PRECISION:基站半径范围单位米 ADDRESS:详细地址中文描述 REGION:省份 CITY:城市 COUNTRY:国家
以上摘自http://www.haotsp.com/
之所以说这个是因为前些日子做的项目有这样的一个需求,展示的是百度地图,然后想利用百度地图上取到经纬度的点,用高德地图的api逆地理编码获取当前位置的文字信息。一开始以为全球的经纬度都是确定值的嘛,大家共用的。其实不然,由于每个地图使用的坐标系不同,我伟大的祖国为了保密需要,规定不能直接使用WGS84地理坐标系,于是应用于中国的各个地图就会在原来坐标的基础上经过一个加密的加偏算法,把加偏过的坐标呈现给你,而不同地图的加偏算法又是不一样的,有的甚至是多次加偏。也就是说同样你是在人民广场,用百度地图和谷歌地图取到的坐标值是不一样的。
经研究发现,百度地图的坐标系为BD09,高德地图坐标为GCJ02,这样就存在不同坐标系的坐标之间转换的问题了,查api吧,然后又发现无论百度地图还是高德地图,api列表里都没有提这个事情。但是上网一查,还是发现了他们都有个隐藏类:CoordinateConvert,但是这个类只提供了转向他们自己坐标系的方法,比如说:
1
2
3
4
5
6
7
8
9
10
11
//百度api
CoordinateConvert.fromGcjToBaidu(GeoPoint geoPoint)
//从gcj02坐标系转到bd09坐标系
CoordinateConvert.fromWgs84ToBaidu(GeoPoint geoPoint)
//从wgs84坐标系转到bd09坐标系
//高德api
//从wgs84坐标系转到gcj02坐标系
CoordinateConvert.fromGpsToAMap(double arg0, double arg1)
CoordinateConvert.fromSeveralGpsToAMap(String arg0)
CoordinateConvert.fromSeveralGpsToAMap(String arg0)
而因为我是展示的百度地图,有要获取百度地图上的中心点的经纬度然后在作为参数调用高德地图api的需求,而百度地图并未提供bd09坐标系转出的api(也可以理解,因为如果这样的话,相当于没加密啊,自己将加密算法写出来,再给个解密的api不是有毛病么,不能不把国家的规定放眼里嘛,百度也说有深层次的需求要以公司名义给他们发邮件什么的,但是一般来说一个小安卓项目客户不会那么兴师动众,而且据群众反映,邮件的效果也不怎么好),所以一时做了罢。
但是柳暗花明又一村了,虽然无法将百度地图上的任意点转为gcj02坐标系的点,但是百度地图还是在他们的定位api里提供了方法,使得应用在获取当前位置的时候,可以获取以“gcj02”为坐标系的点:
1
2
LocationClientOption option = new LocationClientOption()
option.setCoorType("gcj02")//设置坐标类型
这样以来,就可以用高德地图获取位置信息了,虽然说只能有当前位置这一个点是取成gcj02坐标的点是比较囧的o(╯□╰)o ,还有,别忘了,取得的当前点要转化成bd09的坐标系之后,再展示在百度地图上,不然是会有偏差的。
另外比较一下百度地图和高德地图(因为害怕谷歌地图在大陆地区的服务受限问题等等,所以没考虑使用谷歌地图,也就没怎么研究)。
百度地图在页面上的展示方面做的还是很好的,包括页面的缩放,信息的标注等等,相比之下高德地图就会在某些安卓版本的某些机器上出现在放缩的时候地图信息展示的不够清晰不够明确的情况,而且在定位时,百度的地位相对准确,因为我们公司的网络服务器不在公司办公所在地,所以高德地图有时候定位就定位到服务器的地址去了,百度从我使用至今还没出现过这样的错误。
但是百度地图在poi搜索这一块,在我看来是相对薄弱的,百度地图的poi搜索在不输入关键字的时候,是不能做模糊搜索的,而且也不能根据类型搜索(比如仅搜索饮食,搜索学校之类的),而在高德地图里这些就做到了。而且在逆地理编码时,高德地图获取的结果是相对比百度地图更丰富的。
点击阅读全文
打开CSDN APP,看更多技术内容
ios - 百度地图和高德地图坐标的区别
一、在地图开发中,我们一般解除的三种坐标系 1.WGS-84坐标系(原始坐标系),它是国际GPS记录仪记录下来的经纬度.Google和高德地图定位的经纬度都是基于WGS-84坐标系的,但是国内是不允许直接使用WGS-84坐标系标注的,必须经过加密后才能使用2.GCJ-02坐标系,又名"火星坐标系",是我国国测局独创的坐标系,是基于WGS-84基础上进行加密形成的新坐标系.在国内,是必须至少...
继续访问
(转)关于百度地图和高德地图,关于地图坐标系
原文作者: 深白Andy 原文地址: [url]http://my.eoe.cn/gueryue/archive/15390.html[/url] 众所周知地球是一个不规则椭圆体,GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定。 基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面。基准面是在椭球体基础上...
继续访问
最新发布 地图--WGS84 高德坐标 百度坐标的相互转换(好用推荐)
地图 WGS84 高德坐标 百度坐标的相互转换
继续访问
Android 高德百度地图坐标的区别
1.高德、搜搜、google中国皆采用gcj02坐标系,即国测局提供的坐标系 google全球采用的是wgs84坐标系(国际经纬度坐标系) 百度使用bd09坐标系,实际上是对gcj02的基础上再次的加偏(非线性加偏),无法通过算法来脱偏,只有通过加偏数据库来进行,所以现实中无法对百度或高德直接的坐标进行算法转换,只有通过各自自身的脱偏接口方能够实现,而且百度或高德的转换api都被隐藏起
继续访问
百度地图和高德地图坐标系的互相转换
原文地址:http://blog.csdn.net/a13570320979/article/details/51366355 一。在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的;但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用; 2.GCJ-02坐标系,又名“火星坐标系”,是我国国测局独创
继续访问
坐标体系
第一种分类: 1、 GPS,WGS-84,原始坐标体系。一般用国际标准的GPS记录仪记录下来的坐标,都是GPS的坐标。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。GPS坐标形式如图,度分秒形式的经纬度: 2、 GCJ-02,国测局02年发布的坐标体系。又称“火星坐标”。在中国,必须至少使用GCJ-02的坐标体系。比如谷歌,腾讯,高德都在用这个坐标
继续访问
常用椭球参数整理
常用椭球参数的整理
继续访问
高德地图AMap.convertFrom()转码问题
代码如上,因为取到的数据是gps的,需要转码为高德地图,通过高德提供的AMap.convertFrom()进行转码,测试1400条数据,运行5s等待时间过长,请问是否有其他的是实现方式?...
继续访问
广州坐标系转换大地2000_如何将百度坐标转换为国家2000坐标系?
登录软件官网:www.gissaas.com 下载并安装 GIS数据转换器。注册会员即可免费使用。 2. 添加待转换的文件点击”添加“按钮,选择一个或多个待转换的文件,软件支持批量转换。软件支持DWG、DXF、SHP、MDB、KML、KMZ、GPX、GeoJson、EXCEL、TXT、CSV、GeoTiff、Image(img)、Bitmap(bmp)、Png格式的数据文件。 3. 选择导出格...
继续访问
aMap略记
地图的使用
继续访问
百度地图/高德地图大批量坐标转换结果返回顺序问题
转载请注明出处:https://www.cnblogs.com/Joanna-Yan/p/9894712.html 项目需求:设备采集到的GPS坐标信息,需提供实时、历史轨迹的查看功能。这些点坐标除经纬度信息外还携带了其它的信息,比如:速度、方向、解状态等。原始的GPS坐标需要转换成百度地图/高德地图坐标后才能在相应的地图上显示,否则存在较大的位置偏差。 前端人员在高德地图上显示多个点坐...
继续访问
leaflet百度坐标转天地图坐标(bd09转大地2000)(leaflet篇.56)
听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html><html><head><meta charset=utf-8 /><meta name="referrer" content="no-referrer"/><title>Histo
继续访问
高德地图坐标系(GCJ-02)与百度坐标系(BD-09)互相转换
一:代码段(高德转百度) @Slf4j public class CoordinatesConvertUtil { private static double x_pi = 3.14159265358979324 * 3000.0 / 180.0/** * 高德地图坐标转化为百度坐标 * @param cordinatesVo */ ...
继续访问
热门推荐 高德,百度,Google地图定位偏移以及坐标系转换
一。在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的;但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用; 2.GCJ-02坐标系,又名“火星坐标系”,是我国国测局独创的坐标体系,由WG
继续访问
关于高德百度地图坐标系问题
目前市面上比较常见的互联网地图的坐标系主要有这样几种:GCJ-02、BD-09、WGS84、CGCS2000。 WGS84,原始坐标体系。主要有Google Earth在用,。 GCJ-02是由国测局制定的互联网地图坐标系,又叫火星坐标,最常见的互联网地图坐标系,在中国能见到的互联网 地图基本都是这种坐标了,比如高德地图、腾讯地图、百度地图、Google地图(中国范围)。 BD-09是百度地...
继续访问
使用js实现百度地图与高德地图经纬度的转换
在uniapp开发app中,因为后台使用的是百度地图获取的经纬度,但是我是使用的uniapp自带的获取当前经纬度的api,获取的是高德的经纬度,这就导致,两个不同地图在获取经纬度,显示地图信息的时候会有偏差。不同地图之间经纬度的差异,请参考:https://blog.csdn.net/weixin_33503186/article/details/116098472。
继续访问
调用高德地图API,因为异步导致后续数据获取不到,只需一个Promise即可
最近在做项目里需要用到高德地图相关 *** 作,调用高德地图转换坐标系 AMap.convertFrom(),因为异步导致后续数据获取不到。最后异步请求解决了该问题。 //Promise.then处理异步api new Promise((resolve, reject) =>{ let elsePoint1 = [37.1455,130.56556]// 将其他坐标系值转换为高德坐标系值
继续访问
如何将影像地图转换为国家2000坐标系
一、影像获取 在图新地球中可以免费下载(不用邀请,永久免费,非试用)各类影像和地图,这里我们以谷歌地图为例进行下载。 下载结果如下: 二、坐标系转换 这里借助Global Mapper(下文简称gm)进行投影坐标系的转换,我们先将刚才下载的tif格式的影像拖入gm: 这里我们可以看到右下角显示的投影坐标为wgs84-web墨卡托投影: 在菜单栏中,我们打开工具菜单下的配置功能: 点开进入投影配置界面: 这里因为gm的参数库中缺少国家2000坐标系的信息,所以无法直接通
继续访问
(转)高德百度坐标系转换方法
(转)高德百度坐标系转换方法 原文: http://blog.sina.com.cn/s/blog_bd048c480101e27i.html 在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统。大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际共识。但在我国,出于国家安全考虑,国...
继续访问
百度地图坐标系和高德坐标系的相互转换
GCJ-02是由中国国家测绘局制订的地理信息系统的坐标系统。它是一种对经纬度数据的加密算法,即加入随机的偏差。国内出版的各种地图系统(包括电子形式),出于国家安全考虑,必须至少采用GCJ-02对地理位置进行首次加密。国内腾讯地图和高德地图都采用了GCJ-02火星坐标系。 BD-09坐标系: 百度坐标系,也就是在GCJ-02的基础上,进行了BD-09二次加密措施生成的一种坐标系。 //BD-09(百度)坐标转换成
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)