f***@126.com
f***@126.com
  • 发布:2017-06-15 14:17
  • 更新:2019-03-04 18:10
  • 阅读:3755

watchPosition获取位置报错("message":position retrieval timed out)

分类:HTML5+

调用方法如下:

function watchPos() {   
        window._watchId = plus.geolocation.watchPosition( function ( p ) {  
            console.log(p);  
            postPos(p);  
        }, function ( e ) {  
            alert(JSON.stringify(e));   // timed out的错误就是这里弹出来的  
        }, {geocode:true,enableHighAccuracy:true,provider:'baidu',maximumAge:60000,timeout:15000} );  
}

以前都没有发生这种情况,是从昨天开始的。很奇怪
appkey已经配置,plus.geolocation.getCurrentPosition可以正常使用
测试了无论使用badiu,amap,system都会返回{"code":3,"message":"Position retrieval timed out."}

2017-06-15 14:17 负责人:无 分享
已邀请:
青椒茄子

青椒茄子

今天刚好遇见这个问题,记录下我的解决方法:
1、正式打包之前,请引入map模块;
2、在manifest.json中配置高德或百度地图的key;
3、使用getCurrentPosition获取位置信息时,对第三个参数options配置,如下:

 {  
        provider: mui.os.ios?"system":"baidu",  
        geocode: true,  
        timeout: 5000,  
        coordsType: mui.os.ios?"wgs84":"gcj02"  
 }

上面参数解释:
1、ios使用system自带的定位服务即可,返回GPS坐标即wgs84
2、android由于system自带的定位服务支持不完善,引入了百度或高德Map模块(在manifest.json配置), 返回gcj02坐标
3、返回结果时请根据平台自行进行坐标转换,坐标转化查看工具:gpsutil.js
4:android平台provider选择baidu是因为调试基座默认引入的是百度map,以减少调试成本;

wanghui

wanghui - php开发工程师,会vue

这个问题我也遇到了,之前也是没问题的,安卓没有此问题,ios使用plus.geolocation.watchPosition后获得成功2次之后就提示超时了

  • 2***@qq.com

    你好 请教一下这个超时问题最后怎么解决的呢

    2019-11-28 11:59

该问题目前已经被锁定, 无法添加新回复