JS-API的Geolocation定位插件,融合了HTML5 Geolocation定位接口、精确IP定位服务,以及安卓定位sdk定位。其中与安卓定位sdk的结合使用适用于开发安卓系统的H5应用,需同时使用安卓定位sdk和JS-API。

Geolocation.getCurrentPosition获取精确位置的流程是什么样的?

1、在PC端,因为原生接口成功率很低,JS-API会优先调用精确IP定位服务,在IP定位失败的时候,尝试使用浏览器原生定位接口进行定位,如果原生定位接口也定位失败,则返回error事件或回调error信息。定位成功之后我们会对浏览器定位的经纬度结果进行向高德坐标的转化,并对所有有效定位结果融合地址信息后返回complete事件或者回调complete信息。

2、在移动端,如果开发者开启了sdk辅助定位,那么安卓手机上我们会优先尝试调用sdk的定位接口,失败之后优先调用浏览器原生定位接口进行定位,浏览器定位失败之后尝试进行精确IP定位,如果以上三种定位全部尝试失败则返回error事件或回调error信息,否则和PC端的一样,定位成功之后进行高德坐标转化和地址融合。

3、我们在定位的回调或者事件响应中返回了message字段,message字段明确指出了每一步的成功和失败原因。

如果没有拿到message如何获取定位失败错误信息?

可以通过如下方法获取定位失败信息,之后根据定位错误信息参考下一节的说明。//可以拷贝如下代码,使用alert输出定位失败信息//解析定位错误信息functiononError(data) {

alert(JSON.stringify(data));

document.getElementById('tip').innerHTML = '定位失败';

}

getCurrentPosition返回的message原因解析:

1、Get ipLocation failed:IP精确定位失败,精确IP定位服务目前无法完全覆盖所有用户IP,失败率在5%左右;

2、sdk定位失败:请检查sdk的key是否设置好,以及webview的定位权限及应用和系统的定位权限是否开启。

3、浏览器定位失败,有多种情况:

1)Browser not Support html5 geolocation:浏览器不支持原生定位接口,如IE较低版本的浏览器等;

2)Geolocation permission denied:用户禁用了定位权限,需要用户开启设备和浏览器的定位权限,并在浏览器弹窗中点击“允许使用定位”选项。

3)Geolocation permission denied:浏览器禁止了非安全域的定位请求,比如Chrome、IOS10已陆续禁止,这时候需要升级站点到HTTPS。注意Chrome不会禁止localhost等域名HTTP协议下的定位。

4)Geolocation permission denied:Access to geolocation was blocked over secure connection with mixed content,也就是在Https的页面中引用的http的资源。

5)Get geolocation time out:浏览器定位超时,包括原生的超时,可以适当增加超时属性的设定值以减少这一现象,另外还有个别浏览器(如google Chrome浏览器等)本身的定位接口是黑洞,通过其请求定位完全没有回应,也会超时返回失败。

6)Get geolocation failed:定位失败,Chrome、火狐以及部分套壳浏览器接入的定位服务在国外,有较大限制,失败率高。

注释:如果定位到城市即可满足需求,建议大家改用Geolocation.getCityInfo方法,可以根据IP返回用户所在城市的基本信息,包括省、市名称、adcode、citycode、城市中心点,城市矩形边界等信息。

高德地图定位失败_高德开放平台相关推荐

  1. 高德地图定位失败_常见问题

    Android 设备在黑屏的分钟后可能会发生多种情况: 应用程序切后台后进程资源被系统回收,导致不能持续定位. 解决办法: 1.对于原生Android系统可采用google给出的提升后台应用进程优先级 ...

  2. android 地图定位失败,Android 高德地图定位遇到的异常

    最近项目中集成了高德地图定位功能,使用都是正常按照高德开发文档来的,目前出现的问题是退出整个应用程序时(应用的主界面显示地图同时开启了实时定位),报错误如下: 12-26 10:21:56.739 2 ...

  3. android高德地图获取海拔_高德地图如何查经纬度和海拔

    展开全部 高德地图测海拔的具体方法如下: 1.第一步打636f70793231313335323631343130323136353331333366306564开高德地图的网页,找到并点击下方那行小 ...

  4. 高德h5定位误差_#高德地图api移动端定位失败解决方案 #H5 原生Geollocation接口Chomre浏览器的坑...

    侧重:本文探索了 http 协议下,pc + 移动端定位解决方案 IOS版本: ios14 原生Geolocation 接口: Document Show my location function g ...

  5. 高德地图定位误差_【“怼”上了,四川景区一度建议别用高德地图】导航定位错误引用户到封闭区域,致拥堵!高德地图道歉,已更正!...

    导航错误,致景区拥堵 10月4日下午,青城山都江堰景区与高德地图"怼"上了.该景区官方公众号"青城山都江堰"发文称,近来,青城山都江堰景区频繁接到游客反映,使用 ...

  6. 谷歌浏览器-高德地图定位失败geolocation time out

    最近使用高德地图进行定位,经常出现geolocation time out.浏览器用的是谷歌,后来,换了火狐浏览器,正常定位,真是日了狗了. 去官网查询了一下https://lbs.amap.com/ ...

  7. 高德地图 定位失败,10: 定位服务启动失败 解决办法

    问题: 在使用高德地图的时候,根据官方API的代码写出demo后,定位服务无效,并且提示 定位失败,10: 定位服务启动失败.如下图: 解决办法: 在AndroidManifest中添加 <se ...

  8. 谷歌--高德地图定位失败geolocation time out

    最近使用高德地图进行定位,经常出现geolocation time out.浏览器用的是谷歌,后来,换了火狐浏览器,正常定位,真是狗了. 去官网查询了一下 果然是谷歌浏览器有问题,大概和...有关系. ...

  9. 高德h5定位误差_高德地图定位JS API不准确问题

    到网上找了个解决高德偏移量的代码 https://blog.csdn.net/woshimu... 我的是ip定位 转换过的定位就准确了 this.map.plugin('AMap.Geolocati ...

最新文章

  1. 五千万美元注资孵化器,ETC能实现绝地反击吗?
  2. asp.net Repeater取得CheckBox选中的某行某个值的c#写法
  3. java环境json哪些事?
  4. PM2.5环境检测系统的设计与分析
  5. 【ZOJ - 3210】A Stack or A Queue? (模拟)
  6. Python数据库 -- SQL语句的语法问题(即对于字符串的特殊处理)
  7. 自动化测试介入的时机
  8. html调用js文件函数_函数式编程中的战斗机(三)--elm调用javascript的flags方式
  9. @ 剑指offer(python)最小的k个数
  10. Pandas RuntimeWarning: More than 20 figures have been opened. Figures created plt.close()也不起作用
  11. ADS1292R的使用
  12. 安卓java百度地图api文档_Android调用百度地图API 实时定位代码
  13. 点赞动画,鼠标点击动画
  14. Go语言经典库使用分析(六)| Negroni 中间件(二)
  15. Linux基本指令之网络通信命令
  16. vb.net 教程 20-4 库存管理系统3.14 出库单操作(FormStorageOutOrder)
  17. vs2015下pthread的使用
  18. ToB 产品拆解—Temu 商家管理后台
  19. 杜洋-面包板入门电子制作——启发您的电子技术基础
  20. vb调用lisp中vlx函数_CAD二次开发,lisp程序生成应用程序VLX,如何在CAD里面创建一个快捷图标,点击快捷图标就可以调用程序...

热门文章

  1. 开源项目推荐:我个人中意的Python/C++/.Net数学库(★精品收藏★)
  2. python模块,库
  3. 构造器是什么?构造器有什么用?
  4. 使用JQuery删除html页面中的元素
  5. 【古琴】初学者选择练习琴的六条准则
  6. 江南大学计算机技术复试科目,江南大学计算机专硕考哪些科目
  7. 电脑不接扩展屏时,打开应用后,窗口跑到屏幕外,怎末办?
  8. 无符号数与有符号数比较(易懂实用)
  9. 超鸿蒙是什么意思,帝垣的组词_拼音_意思_近反义词(造句)
  10. Pytest操作中间件