前些天做个毕设,使用高德地图API的浏览器和IP定位贼不稳定,之前搜集文献的时候就发现,一直头疼没解决,看百度地图或者高德地图在浏览器上访问也是不稳定,大概原因收集了一下。下图为系统定位图,当在公司网络下是定位成功的。

(一)测试手段:

1,可以定位:网络稳定,IP覆盖全的,有网线的校园网络可以定位。,

2,不可以定位:网络不稳定,开通wifi、热点时候无法使用浏览器定位。

(二)测试能暂时解决这个问题

个人觉得滩上技术难点了,解决了会不会推动社会进步?哈哈,以下是测试的解决方法。方法如下,但是如果用户使用的系统不是win10,还是没有办法解决:

(1)找台win10的电脑,用里面的edge浏览器去访问你的网站,能达到你的效果,就可以虚拟机装个系统。Windows10自带的edge浏览器,这个浏览器可以直接调用Windows系统的内置定位服务,应该能解决问题,贼好用,用WiFi和联网线两种方式都试了,试验了一下,用手机开的热点也是可以定位。

(2)我电脑上有六个浏览器,全都挨个试了一遍,只有ie浏览器或者使用ie内核的浏览器可以定位。

(3)如果有解决问题的兄台,留言交流一下。

(三)定位失败原因

浏览器定位是如何实现的?为什么会有浏览器定位失败的情况?

高德地图开放平台JavaScript API提供的Geolocation定位插件,融合了HTML5 Geolocation定位接口、精确IP定位服务,以及安卓定位sdk定位。其中与安卓定位sdk的结合使用适用于开发安卓系统的H5应用,需同时使用安卓定位sdk和JavaScript API。

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

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

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

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

PART2. getCurrentPosition定位失败的原因有哪些?

1.IP精确定位失败,message包含‘Get ipLocation failed.’信息,精确IP定位服务无法完全覆盖所有IP和用户,故而失败;

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

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

  1. 第一种情况,浏览器不支持原生定位接口,如IE较低版本的浏览器等,message字段包含‘Browser not Support html5 geolocation.’信息;

  2. 第二种情况,用户禁用了定位权限,需要用户开启定位权限,message字段包含‘Geolocation permission denied.’

  3. 第三种情况,浏览器禁止了非安全域的定位请求,比如Chrome、IOS10已陆续禁止,这时候需要升级站点到HTTPS,message字段也是包含‘Geolocation permission denied.’信息。注意Chrome不会禁止localhost等域名HTTP协议下的定位;

  4. 第四种情况,浏览器定位超时,包括原生的超时,可以适当增加超时属性的设定值以减少这一现象,另外还有个别浏览器本身的定位接口就是黑洞,完全没有回应,也会超时返回失败,message字段包含‘Get geolocation time out.’信息;

  5. 第五种情况,确实定位失败,Chrome、火狐以及部分套壳浏览器接入的定位服务在国外,有较大限制,失败率高;

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

PART3. getCurrentPosition定位代码怎么写?

var  geolocation = new AMap.Geolocation();        map.addControl(geolocation);        //geolocation.getCurrentPosition(); //精准定位        geolocation.getCityInfo();  //定位到城市    });

高德地图API定位失败 浏览器定位 IP定位相关推荐

  1. 高德地图api @amap/amap-jsapi-loader封装成方法(定位、点标记、路径规划、搜索等) 适用于vue等框架

    高德地图api 封装成公共方法用于项目中 目前封装的方法有 定位 点标记 比例尺插件 信息窗体 经纬度附近搜索 关键字搜索 交通路径规划(经纬度或地点名) 步行路径规划(经纬度或地点名) 经纬度获取地 ...

  2. VUE项目使用高德地图进行精准定位 高德地图API

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.高德地图API 二.使用步骤 1.引入key 2.创建方法 总结 前言 提示:以下是本篇文章正文内容,下面案例可供 ...

  3. 通过高德地图API实现浏览器定位[以及提高定位精度、获取详细位置信息]

    目录 一.前言: 二.正文: 1.注册高德地图开发者.创建应用 2.借助官方的示例开发 3.对官方的开发示例进行修改 4.获取详细位置信息 5.详细代码 三.结尾:小周接触编程时间不长,刚起步,有更好 ...

  4. 高德地图API之IP定位

    高德地图API之IP定位(替换你的KEY) IP定位API:http://lbs.amap.com/api/webservice/guide/api/ipconfig package com.gdma ...

  5. ios 持续获取定位 高德地图_概述-iOS 定位SDK | 高德地图API

    简介 高德 iOS 定位 SDK 提供了不依赖于地图定位的定位功能,开发者可以无地图显示的场景中便捷地为应用程序添加定位功能. iOS定位SDK提供了单次定位.连续定位.逆地理信息.地理围栏等功能. ...

  6. ios 高德获取定位_概述-iOS 定位SDK | 高德地图API

    简介 高德 iOS 定位 SDK 提供了不依赖于地图定位的定位功能,开发者可以无地图显示的场景中便捷地为应用程序添加定位功能. iOS定位SDK提供了单次定位.连续定位.逆地理信息.地理围栏等功能. ...

  7. uniapp+高德地图api 获取定位信息及详细地址

    引入高德地图js api 高德地图api官方文档 根据官方文档建议,我使用的是JSAPI Loader 并且是通过npm安装的 npm i @amap/amap-jsapi-loader --save ...

  8. android开发之高德地图API篇:1、高德地图API之实时定位+轨迹可视化

    TIME:2020年7月6日 高德地图API之实时定位+轨迹可视化 前言: step1.工程的配置 step2.显示地图 step2.实现静态定位: step3.实时定位 step4.实现轨迹可视化: ...

  9. Vue+高德地图API的使用(定位打卡)

    接上之前的项目 Vue+高德地图API的使用 Vue+高德地图API的使用(插件的使用) 1.页面布局 绘制页面 <div class="Clock"><!-- ...

  10. Android集成谷歌定位sdk,概述-Android 定位SDK | 高德地图API

    什么是定位SDK Android 定位 SDK 是一套简单的LBS服务定位接口,您可以使用这套定位API获取定位结果.逆地理编码(地址文字描述).以及地理围栏功能. 面向的读者 Android 定位 ...

最新文章

  1. vue中过渡动画(类名实现方式)
  2. COM First Teck.
  3. 华北电力大学计算机导论试题,华北电力大学 北京 继电保护历年复试试题.doc
  4. java -cp ***.jar WordCount 无法找到类名解决方案记录
  5. 用python做生物信息数据分析_基于Python的自动获取生物信息数据的软件设计
  6. SpringMVC那点事
  7. Markdown首行缩进解决方法实例
  8. 利用request库请求api
  9. GprMax 3.1.5 建模的in文件编写详解(1)
  10. SCCM SP 1中文版安装前需要更新的内容-Part1
  11. 游戏设计规则探秘之提高动词的健壮性
  12. 数学系之必备参考书+数学系教材推荐
  13. 吃货在东京 -- 记那段吃不饱的日子 之四 台场的日本拉面
  14. MT【276】正切的半角公式
  15. Java问卷调查管理系统(附数据库)
  16. foxmail 163企业邮箱配置
  17. 智能井盖运用5G技术
  18. string和string_view用法指南
  19. 汉诺塔(河内塔)问题(递归)
  20. android webview 炉石,从炉石传说的一个自杀OTK说起

热门文章

  1. CSS Cascading Style Sheet 级联样式表1
  2. windows下tomcat7日志配置
  3. win7网络共享连接计算机需要密码,win7系统共享打印机需要用户名和密码的解决办法...
  4. 魔方软件测试自学,4 分钟!OpenAI 的机器手学会单手解魔方了,完全自学无需编程...
  5. 关于四阶魔方中心块还原
  6. LoadBalancer整合springboot
  7. 博士生导师谈他如何检索文献
  8. Movavi Screen Recorder 10 Mac(全能录屏软件) 中文激活版
  9. 实战:解密拼多多玩法—砍价
  10. 《FireShot》一键滚动截屏整个网页