baiduLocation

来自于:官方

startLocation stopLocation getLocation

概述

注意:本模块已停止更新,请使用优化升级版 bmLocation

baiduLocation 封装了百度地图定位的 SDK。百度地图定位 SDK 是为移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用百度定位SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。该套SDK免费对外开放,接口使用无次数限制。在使用前,您需先申请密钥(ak)才可使用。任何非营利性应用请直接使用,商业目的产品使用前请参考使用须知。在您使用百度地图Android SDK之前,请先阅读百度地图API使用条款

不能同时添加的模块:baiduMap,aMap

开发者使用本模块之前需先去百度地图开放平台申请开发者账号,创建自己的 APP 从而获取 ak,本模块所需的 ak 与 baiduMap 模块、bMap 模块所需的密钥可以共用。 baiduLocation - 图1 baiduLocation - 图2

使用此模块之前必须先配置 config 文件,配置方法如下:

  • 名称:baiduLocation
  • 参数:apiKey
  • 配置示例:
  1. <feature name="baiduLocation">
  2. <param name="apiKey" value="f7Is0dWLom2q6rV3ZfFPZ1aa" />
  3. </feature>
  • 字段描述:

    apiKey:在百度地图开放平台申请的 ak(iOS平台上的key)

【注意】 该模块从 1.0.6 版本开始,Android端需要添加此配置在config.xml中才可使用此模块

  1. <meta-data
  2. name="com.baidu.lbsapi.API_KEY"
  3. value="WP99x2mSUWEysZxUaMh0GiGCYhBV8CQI" />

如果不配置 config.xml 则模块会去读 baiduMap 模块的 key(其实两个key都是在百度地图开放平台申请的同一个key)。但 baiduMap 模块现已停止更新,用bMap模块替换。所以最好还是每个模块单独配置每个模块的key,模块之间相互独立,互不干涉依赖。

注意:getLocation 接口无法设置 accuracy、filter、autoStop 这些参数,当调用getLocation 时,模块底层会先做个判断,如果已经调用过 startLocation 并且已经定位成功获取位置信息,则将此位置信息返回(所以这个位置信息有很大可能不是实时的)。若没调用过startLocation 则模块内部自己先 startLocation,此时 accuracy、filter、autoStop 这些参数取默认值。定位到信息后则返回定位到的信息。所以建议先调用 startLocation 再getLocation。 baiduLocation - 图3 baiduLocation - 图4

模块接口

startLocation

开始定位

startLocation({params}, callback(ret, err))

params

accuracy:

  • 类型:字符串
  • 描述:(可选项)精度
  • 默认:100m
  • 取值范围:
    • 10m
    • 100m
    • 1km
    • 3km

filter:

  • 类型:数字
  • 描述:(可选项)位置更新所需最小距离(单位米)
  • 默认:1.0

autoStop:

  • 类型:布尔
  • 描述:(可选项)获取到位置信息后是否自动停止定位
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;操作成功状态值
  3. longitude:116.213, //数字类型;经度
  4. latitude:39.213, //数字类型;纬度
  5. accuracy: 65, //数字类型;本次定位的精度,仅支持 iOS 平台
  6. timestamp:1396068155591 //数字类型;时间戳
  7. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:"" //字符串类型;错误描述
  3. }

示例代码

  1. var baiduLocation = api.require('baiduLocation');
  2. baiduLocation.startLocation({
  3. accuracy: '100m',
  4. filter: 1,
  5. autoStop: true
  6. }, function(ret, err) {
  7. if (ret.status) {
  8. alert(JSON.stringify(ret));
  9. } else {
  10. alert(JSON.stringify(err));
  11. }
  12. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopLocation

停止定位

stopLocation()

示例代码

  1. var baiduLocation = api.require('baiduLocation');
  2. baiduLocation.stopLocation();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getLocation

获取位置信息

getLocation(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. longitude:116.213, //数字类型;经度
  3. latitude:39.213, //数字类型;纬度
  4. accuracy: 65, //数字类型;本次定位的精度,仅支持 iOS 平台
  5. timestamp:1396068155591 //数字类型;时间戳
  6. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:"" //字符串类型;错误描述
  3. }

示例代码

  1. var baiduLocation = api.require('baiduLocation');
  2. baiduLocation.getLocation(function(ret, err) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. } else {
  6. alert(JSON.stringify(err));
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本