国内各州图API坐标序列相比较与转移88bifa必发娱乐

支出LBS的朋友看看

一、各样坐标系的梗概

分明地球是一个不规则椭圆体,GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的概念则由特定椭球体及其相应的转换参数确定。
基准面是使用特定椭球体对特定地段地球表面的临界,由此每个国家或地面均有各自的基准面。基准面是在椭球体基础上确立的,椭球体可以对应多个基准面,而基准面只好对应一个椭球体。意思就是不管谷歌地图、搜搜地图仍旧高德地图、百度地图不一致只是对准差其余海内外地理坐标系标准营造的中纬度,不存在准不准的难点,大家都是准的只是参照物或者说是标准不平等。谷歌(谷歌)地图选用的是WGS84地理坐标系(中国范围除去),谷歌(Google)中国地图和搜搜中国地图选拔的是GCJ02地理坐标系,百度应用的是BD09坐标系,而装备一般包括GPS芯片或者北斗芯片取得的经纬度为WGS84地理坐标系,为啥不合并用WGS84地理坐标系那就是国家地理测绘总局对于出版地图的渴求,出版地图必须符合GCJ02坐标系标准了,也就是国家规定不能一直动用WGS84地理坐标系。所以一定大家觉得不标准很多又叫出版地图为金星地图其实只是坐标系不等同而已。那就是为何设备采集的经纬度在地图上浮现的时候时不时有很大的过错,远远不止民用GPS
10米偏移量的技能专业。

上述参考自:haotsp.com

总结:

WGS84坐标系:即地球坐标系,国际上通用的坐标系。

GCJ02坐标系:即水星坐标系,WGS84坐标系经加密后的坐标系。

BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系。

搜狗坐标系、图吧坐标系等,估摸也是在GCJ02基础上加密而成的。


二、各类地图API选择的坐标系

API坐标系

百度地图API百度坐标

腾讯搜搜地图API水星坐标

博客园搜狗地图API搜狗坐标*

阿里云地图API火星坐标

图吧MapBar地图API图吧坐标

高德MapABC地图API火星坐标

灵图51ditu地图API金星坐标

注1:百度地图使用百度坐标,帮助从地球坐标和金星坐标导入成百度坐标,但无能为力导出。并且批量坐标转换一回只好转换20个(待验证)。

注2:搜狗地图帮助直接体现地球坐标,帮衬地球坐标、金星坐标、百度坐标导入成搜狗坐标,同样,搜狗坐标也无从导出。

个人觉得:接纳自家坐标系列,而不选取国内通用的罗睺坐标种类,实在是自寻短处。当然,百度是因为做的十足大、丰硕好,所以很不可理喻,也为日后一统天下而不让别人瓜分之而做准备吗。搜狗尽管用本人坐标连串,但能将地球坐标直接导入,此举也属唯一。而图吧地图不知底学什么加密方法,在此之前用地球坐标用的精美的,现在用图吧自己的坐标,难道是因为给百度做过因而也来了那般一招?或者沿用百度?不得而知。

正文的意在:做地图开发的时候,不希望被一家地图API迁就,所以利用木星坐标是正确的挑选,希望本文可以对选取使用什么人家API的开发者提供一些声援啊。就我个人而言,我绝不会使用非罗睺坐标连串的地图API,尽管百度地图API很好很有力确实很吸引自己。

上述参考自:http://rovertang.com/labs/map-compare/


三、种种坐标系的并行转换

1.水星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转移算法,其中bd_encrypt将
GCJ-02 坐标转换成 BD-09 坐标,bd_decrypt反之。


2.地球坐标系 (WGS-84) 到金星坐标系 (GCJ-02) 的变换算法

WGS-84 到 GCJ-02 的转换(即 GPS 加偏)算法

以上参考自:http://www.xue5.com/Mobile/iOS/679842.html


3.百度在线转换API

恳请之后会回来一串Json

什么样状态,经纬度居然还加密?那接下去也只可以见招拆招了

到此处也基本上好了,首要的代码都写出来了,其余的您就融洽写吗。

如上参考自:http://scalpel.me/archives/136/


四、重点啊,原来百度有停放转换方法,那下能够不囿于于百度平昔SDK了

在百度地图中得到WGS-84坐标,调用如下方法:

BMapManager.getLocationManager().setLocationCoordinateType(MKLocationManager.MK_COORDINATE_WGS84);

那样从百度api中取得的坐标就是WGS-84了,然则那种坐标假若呈现到百度地图上就会偏移,也就是说取出一个坐标,原封不动的显得上去就偏移了,所以为了显得也是健康就需求在绘制到百度地图上事先转换成BD-09。

转移成BD-09,调用方法:

GeoPoint wgs84;

GeoPoint bd09 =
CoordinateConvert.bundleDecode(CoordinateConvert.fromWgs84ToBaidu(wgs84));

此间其实不领会为什么要规划成CoordinateConvert.fromWgs84ToBaidu(wgs84)再次来到了一个Bundle,所以还亟需CoordinateConvert.bundleDecode()再转成GeoPoint。


IOS端进行的转换


推荐阅读:

FacebookPaper使用的第三方库(强烈推荐)

iOS/Mac
开发博客列表(不断更新中)

作为一个iOS开发要看的网站,一定对您有效的,相信我!

增长iOS开发成效的主意和工具

IM系统架构设计之浅见

nil、Nil、NULL和NSNull的理解

相关文章