ios地图sdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
坐标转换
下载开发文档
坐标系类型

目前国内主流坐标系类型主要有三种:wgs84、gcj02、bd09;

wgs84

为一种大地坐标系,也是目前广泛使用的gps全球卫星定位系统使用的坐标系;

gcj02

是由中国国家测绘局制订的地理信息系统的坐标系统,是由wgs84坐标系经加密后的坐标系;

bd09

百度坐标系,在gcj02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

百度地图sdk使用的坐标类型
百度地图sdk在国内(包括港澳台),输入、输出默认使用bd09坐标;注意:定位sdk默认输出是使用gcj02坐标。
百度地图sdk支持一次全局声明为gcj02坐标类型,即全应用支持输入gcj02坐标,返回gcj02坐标。
海外地区,输入为wgs84坐标。
为什么需要转换坐标

百度地图的服务,国内(包括港澳台)使用bd09坐标,国外使用wgs84坐标。若使用非bd09坐标直接叠加在百度地图上,因坐标值不同,展示位置就会偏移。

例如:

在国内(包括港澳台):poi使用wgs84或gcj02坐标数值,直接显示在百度地图上,poi展示位置就会偏移,因此通过其他坐标(wgs84、gcj02)调用服务时,需先将其他坐标转换为bd09,再访问百度地图数据。
在国外:poi使用wgs84坐标数值,则无需转换,百度地图国外即使用wgs84坐标。
非百度坐标系,如何转换成百度坐标系
通用坐标转换方法: 手动将输入的wgs84、gcj02坐标转换为bd09。适用于所有使用百度地图的开发者,是转换为百度bd09坐标的官方基础算法。
自动坐标转换方法:支持一次全局声明gcj02坐标类型,全应用内会自动执行gcj02到bd09的坐标转换,即直接输入gcj02坐标,返回gcj02坐标。
通用经纬度坐标转换方法

开发者可以自行转换坐标类型,支持wgs84ll->bd09ll, gcj02ll->bd09ll, bd09ll->gcj02ll的经纬度坐标转换。

注意:请勿使用其他非官方转换方法!!!

转换方法如下:

//坐标转换需导入工具功能包baidumapapi_utils.framework
#import<baidumapapi_utils/bmkutilscomponent.h>
// 国测局坐标类型的原始坐标
cllocationcoordinate2d gcj02coord =cllocationcoordinate2dmake(39.90868,116.3956);
// 转为百度经纬度类型的坐标
cllocationcoordinate2d bd09coord =bmkcoordtrans(gcj02coord,bmk_coordtype_common,bmkcoordtype_bd09ll);
声明全局坐标类型

全局设置地图sdk与开发者交互时的坐标类型。地图sdk默认使用bd09ll(bmk_coordtype_bd09ll)坐标。如需使用gcj02坐标,传入参数值为bmk_coordtype_common即可。本方法不支持传入wgs84(bmk_coordtype_gps)坐标。

开发者通过调用设置全局坐标方法(setcoordinatetypeusedinbaidumapsdk)设置的全局坐标类型后,意味着开发者和地图sdk约定传入和返回的坐标类型均为设置的类型;比如:定位传入的坐标,检索返回的坐标。

设置方法如下:

//设置为gcj02坐标
[bmkmapmanager setcoordinatetypeusedinbaidumapsdk:bmk_coordtype_common];
注意:请在appdelegate中设置全局坐标,设置后请严格遵守约定,否则会出现经纬度与地图上展示的不一致的问题。未设置此项请确保传入坐标均为bd09ll(百度经纬度坐标)

上一篇

上下车提醒

下一篇

距离计算

本篇文章对您是否有帮助?

网站地图