找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1378|回复: 0

第十一章 获取地理位置信息-《HTML5+CSS3权威指南》

[复制链接]
发表于 2013-4-10 17:30:56 | 显示全部楼层 |阅读模式 来自 北京市
本章主要是介绍geolocation API来获取用户的地理位置信息。附带页面上使用Google地图的基本方法(这我就不讲了,google有很好的API使用说明书)。
Geolocation是window.navigator对象新增加的属性。Geolocation API存在三个方法。
1.获取地理位置
2.持续监视当前地理位置的信息
3.停止获取用户的地理位置信息
获取当前地理位置信息
1.可是使用getCurrentPosition方法来获取用户地理位置信息,使用方法是:
1
void getCurrentPosition(onSuccess, onError,options);




onSuccess是返回获取地理位置成功时做什么;onError是返回获取地理位置失败时;oprtions是一些可选属性(书上这么说的,我知道的还有一个超时的属性)。
01
/* 一个完整的获取地理位置信息代码段 */

[backcolor=rgb(248, 248, 248) !important]
02
navigator.geolocation.getCurrentPosition(

03
        /*成功获取片断*/

[backcolor=rgb(248, 248, 248) !important]
04
    function(position){

05
        var latitude = position.coords.latitude;//获取当前位置的纬度

[backcolor=rgb(248, 248, 248) !important]
06
        var longitude = position.coords.longitude;//获取当前位置的精度

07
        document.getElementById('map').value = '纬度:'+latitude+'精度:'+longitude;

[backcolor=rgb(248, 248, 248) !important]
08
    },

09
    /*获取地质位置错误片断*/

[backcolor=rgb(248, 248, 248) !important]
10
    function(error){

11
        var errorType={1:'位置服务器拒绝',2:'获取不到位置',3:'获取信息超时'};

[backcolor=rgb(248, 248, 248) !important]
12
                   alert(errorType[error.code]+":获取地理位置错误,请检查您的网络是否通畅!");

13
    },

[backcolor=rgb(248, 248, 248) !important]
14
     /* 超时处理*/

15
    {

[backcolor=rgb(248, 248, 248) !important]
16
     /*设置缓存有效时间是2分钟,单位是毫秒*/

17
        maximumAge:60*1000*2,

[backcolor=rgb(248, 248, 248) !important]
18
     /*5秒内没有回获取信息视为超时*/

19
        timeout:5000

[backcolor=rgb(248, 248, 248) !important]
20
    }

21
);



如果获取地理位置成功的话,position有这样几个属性:
latitude 当前地理位置的纬度
longitude 当前地理位置的精度
altitude 当前海拔高度  不能获取时为null
accuracy 获取的纬度或经度的精度(以米为单位)
altitudeAccurancy 获取海拔高度的精度(以米为单位)
heading 设备的前进方向。用面朝正北方的顺时针旋转角度来表示(不能获取时为null)
speed 设备的前进速度(单位:米/秒)
times**p 获取地理时间
如果获取地理位置失败的话,Error对象有以下属性:
code属性:有三个值(1.用户拒绝了位置服务 2.获取不到位置信息 3.获取信息超时错误)
(还没弄明白,后面是书的原文)message属性:包含了一个字符串,在该字符串中包含了错误信息
再来看看最后一个可以省略参数包含那些属性
enableHighAccuracy 要求高精度的地理位置,这个参数在很多设备上没有用,所以大多数把设为默认
maximumAge 对地理位置的获取操作做一个超时限制(单位毫秒)
持续监视当前地理位置信息
使用watchPosition方法来持续获取用户信息当前地理位置,它会定期自动获取,该方法定义如下:
1
int watchCurrentPosition(pnSuccess,onError,options);



该方法三个参数的说明和使用方法和getCurrentPosition方法一样。返回一个数字,这个数字的使用方法与javasctipt脚本中setInterval方法的返回值参数类似。
停止获取用户的地理位置信息
可以使用
1
vodi clearWatch(watchId);




watchId是调用上面的getCurrentPosition方法监视时返回的参数。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-5-4 10:01 , Processed in 0.047506 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表