网站首页 > 基础教程 正文
前言
前面文章中写过类似的文章《手把手教你HTML5实现根据LBS定位到商家两点之间距离多少》,建议有兴趣的小伙伴可以看看。
使用 HTML5 Geolocation API 来构建基于地理位置的应用~
各种浏览器对HTML5 Geolocation 的支持
浏览器 版本 只支持HTTPS版本 IE 9+ - Edge 12+ - Firefox 3.5+ - Chrome 5+ 50+ Safari 5+ 39+ iOS Safari 3.2+ 10.2+ Android Browser 2.1+ 56+ Chrome for Android 57+ 57+ UC Browser for Android 11.4+ -
出于安全考虑,部分浏览器只允许通过HTTPS协议使用 Geolocation API。在HTTP协议下使用Geolocation API 浏览器会抛出异常,在开发阶段,127.0.0.1和localhost 等本地域在两种协议下均可使用。
Geolocation API 通过 navigator.geolocation 全局对象进行访问,第一次访问的时候会询问用户是否允许共享位置。
判断浏览器是否支持 Geolocation API
// 判断浏览器属否支持获取位置
if(navigator.geolocation){
console.log("可以获取");
}else{
console.log("不支持");
}
实例代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
获取用户地理位置
<input type="button" value="点击获取位置" id="btn">
<script>
let btnBtn = document.getElementById('btn')
btnBtn.onclick = () => { // 点击事件
getAdd()
}
// 成功回调
let success = (position) => {
console.log(`获取位置成功:${position.coords}`);
console.log(position.coords); // 获取坐标信息
// coords的常用属性
console.log(position.coords.latitude); // 获取坐标纬度
console.log(position.coords.longitude); // 获取坐标经度
console.log(position.coords.accuracy); // 获取坐标精度,单位为米
console.log(position.timestamp); // 获取位置的时间戳
}
// 失败回调
let error = (positionErr) => {
console.log(`获取位置失败:${positionErr.code}+${positionErr.message}`);
}
let options = {
enableHightAccuracy: false, // 获取高精度的位置信息,可能会增加响应时间,默认是false
timeout: 30000, // 设置超时时间,单位毫秒,如果到达设定的时间没获取到信息则回触发失败回调,默认值为0,无限大
maximumAge: 0 // 设置用户位置信息缓存的最大时间
}
let getAdd = () => {
navigator.geolocation.getCurrentPosition(success, error, options)
}
// 判断浏览器属否支持获取位置
if(navigator.geolocation){
console.log("可以获取");
}else{
console.log("不支持");
}
</script>
</body>
</html>
当获取位置失败时,会调用失败回调(error函数)。返回的参数<positionErr.code 标识错误的原因><positionErr.message错误信息描述> positionErr.code 值
- UNKNOWN_ERROR(0): 其他错误
- PERMISSION_DENIED(1): 用户拒绝分享位置信息
- POSITION_UNAVAILABLE(2): 获取用户位置信息失败
- TIMEOUT(3): 获取用户位置信息超时
推荐文章
《手把手教你HTML5实现根据LBS定位到商家两点之间距离多少》
作者:蓝海00
链接:https://www.jianshu.com/p/d0b0b6120055
猜你喜欢
- 2024-11-08 Cordova+Vue实现混合开发,超详细
- 2024-11-08 Android WebView 详解 1 android webview ua
- 2024-11-08 前端必须会的基本知识技巧! 前端必须会的基本知识技巧有哪些
- 2024-11-08 [Python数据采集]超越 Selenium:探索 Playwright 的强大自动化功能
- 2024-11-08 使用Hbuilder构建跨平台的移动App
- 2024-11-08 如何使用Playwright优化测试性能 playwright安装
- 2024-11-08 前端开发79条知识点汇总 前端开发79条知识点汇总
- 2024-11-08 未来网站开发必备:14个让你惊艳的JavaScript Web API!
- 2024-11-08 web前端tips:HTML5部分新特性介绍
- 2024-11-08 7 个你不知道的秘密 JavaScript Web-API
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)