高德定位 -九游会国际

webapp快捷打包
高德定位
转到模块插件

敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,九游会国际-九游会真人第一品牌

js-sdk 引用方式:

♦ 普通网页 script 方式加载:下载最新版 ,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge

getcurrentposition 获取当前位置

单次定位,国内返回高德坐标系,可以直接标记在高德地图上,海外返回gps坐标。

$("#cnt").hide();
var result = $("#result").text("定位中...");    
$('html,body').animate({scrolltop: $('#view').offset().top}, 1200);
//发起定位单次定位(watch 为 false)
jsbridge.amaploc.getcurrentposition({
  //可选,定位超时时间(秒),默认30秒,建议设置为 8 - 30 之间
  timeout: 30,
  //可选,数字类型,定位模式,默认 1
  //1 高精度定位模式:同时使用网络定位和gps定位,优先返回精度高的定位
  //2 仅设备定位模式:只使用gps定位
  //3 低功耗定位模式:只使用网络定位
  locationmode: 1,
  //可选, 连续定位, 默认 false
  //调用 jsbridge.amaploc.stop() 停止定位
  watch : false,
  //可选,连续定位时间间隔(秒),最低1秒,默认1
  watchinterval: 3,
  //可选,布尔类型, true = 不需要地址信息,默认 false (需要)
  //不需要地址信息时的定位速度更快,消耗更少的流量
  notaddress   : false,
  //可选,连续定位通知栏标题,默认为应用名称
  notifytitle  : "",
  //可选,连续定位通知栏内容
  notifycontent: "持续定位中...",
  //可选,将定位数据 post (content-type: application/json) 发送到你的服务器地址,留空则不发送
  //app 被推到后台以后 html js 页面会暂停运行,页面将无法处理定位数据;
  //如需后台获取位置信息,请提供一个链接地址,由app发起原生请求将定位结果 post 给你的服务器
  //暂不支持传递额外数据,如需鉴权,请将鉴权参数放在 url 链接上
  //如 https://www.example.com/api/location
  posttourl: ""
}, function(succ, data) {
  result.jsonview({
    succ: succ,
    data: data
  });
});
//示例定位结果(模拟数据):
var sample = 
{
  success: true,
  //经度
  longitude: 104.04725,
  //纬度
  latitude: 30.542618,
  //海拔高度
  altitude: 0,
  //速度
  speed: 0,
  //方向角
  bearing: 0,
  //定位精度(米)
  accuracy: 29,
  //室内定位时的建筑物编号
  buildingid: "b0g21y6jxo",
  //室内定位时的楼层
  floor: "",
  //地址
  address: "四川省成都市武侯区天府四街962号靠近佳年华·时代晶座",
  //街道
  street: "天府四街",
  //门牌号
  streetnumber: "962号",
  //区县
  district: "武侯区",
  //市
  city: "成都市",
  //省
  province: "四川省",
  //国家
  country: "中国",
  //城市编码
  citycode: "028",
  //地区编码
  adcode: "510107",
  //定位类型,参见 https://lbs.amap.com/api/android-location-sdk/guide/utilities/location-type/
  locationtype: 5,
  //poi名称
  poiname: "佳年华·时代晶座",
  //aoi名称
  aoiname: "佳年华·时代晶座",
  //gps信号状态
  gpsaccuracystatus: "gps_accuracy_unknown",
  locationdetail: "#id:ela==#csid:901652def094468ab9852bf21112d2fb"
}

getcurrentposition 仅使用 gps 定位

var i = 0;
var cnt = $("#cnt").show().text("");
var result = $("#result").text("定位中...");    
$('html,body').animate({scrolltop: $('#view').offset().top}, 1200);
//需要在室外空旷处才能定位成功
jsbridge.amaploc.getcurrentposition({
  //仅使用 gps 定位
  gpsonly: true
}, function(succ, data){
  result.jsonview({
    succ: succ,
    data: data
  });
});

getcurrentposition 实时连续定位

1. watch 参数设为 true 即为实时连续定位,当用户位置发生变化时会收到回调通知;

2. android 8 以上会在手机状态通知栏放置持续定位的前台服务通知,以降低应用被系统杀掉的概率;部分设备默认禁止了 app 通知,可打包 本地通知 插件,调用 jsbridge.notification.requestauth 检查是否开启了通知权限,如果没有通知权限可调用 jsbridge.appsettings() 引导用户开启权限;

3. android 10 以上系统会申请后台定位权限(access_background_location),用户可选择 “始终允许” 或 “仅在使用该应用期间允许”;

4. android 11 申请后台定位权限时不再出现 “始终允许” 选项,此时只能引导用户进入应用设置授予始终允许后台定位的权限;

5. 调用 jsbridge.appsettings() 可以打开应用设置;

6. 详细说明请参考 。

var i = 0;
var cnt = $("#cnt").show().text("");
var result = $("#result").text("定位中...");    
$('html,body').animate({scrolltop: $('#view').offset().top}, 1200);
//发起定位,开启后请拿着手机走起来
//在室外开启gps定位会更准确
jsbridge.amaploc.getcurrentposition({
  watch: true,
  watchinterval: 3,
  //不需要地址信息时的定位速度更快,消耗更少的流量
  notaddress   : true,
  notifytitle  : "我的app",
  notifycontent: "持续定位中..."
  //, posttourl: "https://www.example.com/api/location"
}, function(succ, data){
  cnt.text("第 "   (  i)   " 次位置回调: ");
  result.jsonview({
    succ: succ,
    data: data
  });
});

stop 停止定位

停止定位

//停止定位
jsbridge.amaploc.stop();

定位结果 (position 回调参数):

网站地图