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

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
更新时间:2020-06-23
坐标系类型

目前国内主流坐标系类型主要有三种: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的经纬度坐标转换。

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

转换方法如下:

objective-c
swift
//坐标转换需导入工具功能包baidumapapi_utils.framework
#import 
// 国测局坐标类型的原始坐标
cllocationcoordinate2d gcj02coord = cllocationcoordinate2dmake(39.90868, 116.3956);
// 转为百度经纬度类型的坐标
cllocationcoordinate2d bd09coord = bmkcoordtrans(gcj02coord, bmk_coordtype_common, bmkcoordtype_bd09ll);
//在桥接头文件bmkswiftdemo-bridging-header中添加坐标转换需导入工具功能包baidumapapi_utils.framework
#import 
// 国测局坐标类型的原始坐标
let gcj02coord = cllocationcoordinate2dmake(39.90868, 116.3956)
// 转为百度经纬度类型的坐标
let bd09coord = bmkcoordtrans(gcj02coord, bmk_coord_type.coordtype_common, bmk_coord_type.coordtype_bd09ll)
声明全局坐标类型

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

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

设置方法如下:

objective-c
swift
//设置为gcj02坐标
[bmkmapmanager setcoordinatetypeusedinbaidumapsdk: bmk_coordtype_common];
bmkmapmanager.setcoordinatetypeusedinbaidumapsdk(bmk_coord_type.coordtype_common)

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

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消

"));
网站地图