在 html5 中,哪个方法用于获得用户的当前位置

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-22
在 html5 中,哪个方法用于获得用户的当前位置


H5edu HTML5开源项目实例地图

"可以用Geolocation
Geolocation API主要是用来获取用户的地理位置。
工作流程:
通过浏览器请求你的同意à是否同意共享现在的位置
navigator.geolocation.getCurrentPosition(success, error, options);
这个方法接收三个参数,
第一个参数是用户允许浏览器共享位置后的回调方法,该方法有一个参数,里面包含了用户当前的位置信息。
// success,是一个函数,获取用户当前地址就是在这个函数中实现的
code:
function success (position){
// 获取用户的经度,纬度
// position.coords.latitude position.coords.longitude
// 经纬度的信息精度(单位:米)
// position.coords.accuracy
}
第二个参数是用户拒绝分享位置,或者是连接超时等原因造成获取位置失败时的回调方法。
// error,也是通过函数实现的,在这个函数中,要实现什么操作呢,处理错误。如果用户拒绝分享位置,或者是连接超时等原因造成获取位置失败,就在这个函数中做出相应的处理。
// 在这个方法中有两个参数,分别是code和message,code表示错误代码,message,就是返回的错误信息。
第三个参数是geolocation的选项对象,它包含了3个可选属性。
enableHighAccuracy是否尝试读取更精确的纬度和经度;
timeout设置获取位置信息时的最长连接时间;
maximumAge设置缓存本次位置的时长,以便下次读取。 写这么多不容易,选我最佳啊,再分享你个学习的video,视频的系列名称叫做 《Buid New World》里面第七集叫:HTML 5 Audio Video 标签和更多特性"

<!DOCTYPE html>
<html>
<body>
<p id="demo">点击这个按钮,获得您的坐标:</p>
<button onclick="getLocation()">试一下</button>
<script>
/*    例子解释:
    检测是否支持地理定位
    如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。
    如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象
    showPosition() 函数获得并显示经度和纬度 */
    var x=document.getElementById("demo");
    function getLocation()
    {
        if (navigator.geolocation)
        {
            navigator.geolocation.getCurrentPosition(showPosition);
        }
        else{x.innerHTML="Geolocation is not supported by this browser.";}
    }
    function showPosition(position)
    {
        x.innerHTML="Latitude: " + position.coords.latitude +
            "<br />Longitude: " + position.coords.longitude;
    }
</script>
</body>


navigator.geolocation用于获取基于浏览器的当前用户地理位置,提供了3个方法:
void getCurrentPosition(onSuccess,onError,options);
//获取用户当前位置
int watchCurrentPosition(onSuccess,onError,options);
//持续获取当前用户位置
void clearWatch(watchId);
//watchId 为watchCurrentPosition返回的值
//取消监控
onSuccess方法成功时调用的(必选),onError方法失败是调用的(可选),options其他参数(可选)
options:
options = {
enableHighAccuracy,   //boolean 是否要求高精度的地理信息
timeout,         //表示等待响应的最大时间,默认是0毫秒,表示无穷时间
maximumAge        /应用程序的缓存时间
}
onsuccess方法中会返回position对象,通过这个对象可以获取地理位置的相关信息