使用W3C Geolocation API
2011 2 23 11:20 PM 0条评论 250次查看 0顶 0踩
分类:笔记 标签:Javascript, html
IE 9.0+
Firefox 3.5+
Safari 5.0+
Chrome 5.0+
Opera 10.6+
iPhone 3.0+
Android 2.0+
二、geolocation.getCurrentPosition()的用法
/* 获取信息成功时的处理函数 */
function successHandler(pos){
/*
* pos是这样的一个对象:
* {
* coords:{
* latitude:纬度
* longitude:经度
* altitude:海拔
* accuracy:精度
* altitudeAccuracy:海拔精度
* heading:设备的移动方向(0°≤heading<360°)
* speed:设备的移动速度
* },
* timestamp:1298477342721500
* }
*/
}
/* 错误处理函数 */
function errorHandler(e){
switch(e.code){
case e.PERMISSION_DENIED:
//用户或浏览器拒绝提供地理位置时
break;
case e.POSITION_UNAVAILABLE:
//获取位置失败时
break;
case e.TIMEOUT:
//获取位置超时
break;
}
// e.message 是出错信息文字。
}
/* 选项 */
var options = {
//超时时间(毫秒)
timeout:5000,
//位置信息的最长缓存时间(毫秒)
maximumAge:9999,
//是否启用高精度定位
enableHighAccuracy:true
}
//判断浏览器是否支持Geolocation API
if(navigator.geolocation){
//getCurrentPosition接受3个参数,其中后边两个是可选的
navigator.geolocation.getCurrentPosition(
successHandler,
errorHandler,
options
);
}三、geolocation.watchPosition()与clearWatch()的用法
watchPosition(),它一般用在移动设备上,用于连续追踪位置信息,每次位置更新时都会调用一次successHandler。
if(navigator.geolocation){
//watchPosition()接受3个参数,其中后边两个是可选的,与getCurrentPosition()相同。
//调用完成后会立即返回一个数字id,与setTimeout()相似。
var watch_id = navigator.geolocation.watchPosition(
successHandler,
errorHandler,
options
);
//解除追踪,watch_id就是watchPosition()所返回的那个数字。
clearWatch(watch_id);
}参考:
- http://www.w3.org/TR/geolocation-API/
- http://diveintohtml5.org/geolocation.html
- http://www.jsmix.com/html5/try-out-geolocation.html