定位功能(Geolocation )是HTML5的新特性,因此只能在支持HTML5的浏览器上运行,特别是手持设备(如iphone)的地理定位更加精确。首先我们要检测用户设备上的浏览器是否支持地理定位,如果支持,则获取地理信息。这个特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。所以在访问该应用时,会提示是否允许地理定位,选择允许即可,JS代码如下:
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition,showError);
}else{
alert("浏览器不支持地理定位。");
}
}
从上面的代码可以知道,如果用户设备支持地理定位,则运行getCurrentPosition()方法。如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象,getCurrentPosition()方法的第二个参数showError用于处理错误,它规定当获取用户位置失败时运行的函数。
我们先来看函数showError(),它规定获取用户地理位置失败时的一些错误代码处理方式,JS代码如下:
function showError(error){
switch(error.code) {
case error.PERMISSiON_DENIED;
alert("定位失败,用户拒绝请求地理定位");
break;
case error.POSITION_UNAVAILABLE:
alert("定位失败,位置信息是不可用");
break;
case error.TIMEOUT;
alert("定位失败,请求获取用户位置超时");
break;
case error.UNKN0WN_ERR0R:
alert("定位失败,定位系统失效");
break;
}
}
再来看函数showPosition(),调用coords的latitude和longitude即可获取到用户的讳度和经度,JS代码如下:
function showEosition(position){
var lat = position.coords.latitude; //纬度
var lag = positdon.coords.longitude; //经度
alert('纬度:'+lat+',经度:'+lag);
}
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>