【技术重温】html之重点(六)

来源:互联网 发布:超级玛丽安卓源码 编辑:程序博客网 时间:2024/06/08 18:58

JS定位

核心的定位代码都是通过第三方提供,我们都是使用他人已经写好的对象函数而已

参考:https://www.cnblogs.com/milkmap/p/6138519.html


Geolocation.getCurrentPosition获取精确位置的流程:

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

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


定位失败原因:

    第一种情况,浏览器不支持原生定位接口,如IE较低版本的浏览器等,通过navigator.geolocation对象是否存在判断;
    第二种情况,用户禁用了定位权限,需要用户开启定位权限,返回error.PERMISSION_DENIED;
    第三种情况,浏览器禁止了非安全域的定位请求,比如Chrome、IOS10已陆续禁止,这时候需要升级站点到HTTPS,返回error.PERMISSION_DENIED。注意Chrome不会禁止localhost等域名HTTP协议下的定位;
    第四种情况,浏览器定位超时,包括原生的超时,可以适当增加超时属性的设定值以减少这一现象,另外还有个别浏览器本身的定位接口就是黑洞,完全没有回应,也会超时返回失败,返回error.TIMEOUT;
    第五种情况,确实定位失败,Chrome、火狐以及部分套壳浏览器接入的定位服务在国外,有较大限制,失败率高,返回error.UNKNOWN_ERROR;


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


 
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 兔牙喵喵喵在线高清 兔牙网 兔牙喵喵猫在线播放 龅牙兔八哥 兔牙喵喵在线播放高清1 兔牙喵喵全集在线 兔牙萌萌 兔牙如何矫正 爆牙 牙床突出 门牙下面的牙叫什么 弄牙 牙没掉 又长出一颗新牙怎么办 牙列拥挤 接牙的全过程 畸形牙 牙不齐 暴牙 整暴牙 有点龅牙怎么自己矫正 兔牙矫正需要多少钱 兔牙矫正 瓜子牙 兔牙怎么矫正 兔子牙怎么矫正 兔子牙矫正多少钱 兔牙妹 兔牙妹妹 大兔牙 兔子牙怎么办 兔牙和龅牙的区别 兔牙女 兔牙可以矫正吗 兔牙是什么 卡通兔子牙 兔牙女明星 兔牙妹阿川 门牙大 牙齿往里凹 牙齿错位 牙齿外突