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

本章主要是介绍geolocation API来获取用户的地理位置信息。附带页面上使用Google地图的基本方法(这我就不讲了,google有很好的API使用说明书)。

Geolocation是window.navigator对象新增加的属性。Geolocation API存在三个方法。

1.获取地理位置

2.持续监视当前地理位置的信息

3.停止获取用户的地理位置信息

获取当前地理位置信息

1.可是使用getCurrentPosition方法来获取用户地理位置信息,使用方法是:

1
void getCurrentPosition(onSuccess, onError,options);

onSuccess是返回获取地理位置成功时做什么;onError是返回获取地理位置失败时;oprtions是一些可选属性(书上这么说的,我知道的还有一个超时的属性)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* 一个完整的获取地理位置信息代码段 */
navigator.geolocation.getCurrentPosition(
        /*成功获取片断*/
    function(position){
        var latitude = position.coords.latitude;//获取当前位置的纬度
        var longitude = position.coords.longitude;//获取当前位置的精度
        document.getElementById('map').value = '纬度:'+latitude+'精度:'+longitude;
    },
    /*获取地质位置错误片断*/
    function(error){
        var errorType={1:'位置服务器拒绝',2:'获取不到位置',3:'获取信息超时'};
                   alert(errorType[error.code]+":获取地理位置错误,请检查您的网络是否通畅!");
    },
     /* 超时处理*/
    {
     /*设置缓存有效时间是2分钟,单位是毫秒*/
        maximumAge:60*1000*2,
     /*5秒内没有回获取信息视为超时*/
        timeout:5000
    }
);

如果获取地理位置成功的话,position有这样几个属性:

latitude 当前地理位置的纬度

longitude 当前地理位置的精度

altitude 当前海拔高度  不能获取时为null

accuracy 获取的纬度或经度的精度(以米为单位)

altitudeAccurancy 获取海拔高度的精度(以米为单位)

heading 设备的前进方向。用面朝正北方的顺时针旋转角度来表示(不能获取时为null)

speed 设备的前进速度(单位:米/秒)

timestamp 获取地理时间

如果获取地理位置失败的话,Error对象有以下属性:

code属性有三个值(1.用户拒绝了位置服务 2.获取不到位置信息 3.获取信息超时错误)

(还没弄明白,后面是书的原文)message属性:包含了一个字符串,在该字符串中包含了错误信息

再来看看最后一个可以省略参数包含那些属性

enableHighAccuracy 要求高精度的地理位置,这个参数在很多设备上没有用,所以大多数把设为默认

maximumAge 对地理位置的获取操作做一个超时限制(单位毫秒)

持续监视当前地理位置信息

使用watchPosition方法来持续获取用户信息当前地理位置,它会定期自动获取,该方法定义如下:

1
int watchCurrentPosition(pnSuccess,onError,options);

该方法三个参数的说明和使用方法和getCurrentPosition方法一样。返回一个数字,这个数字的使用方法与javasctipt脚本中setInterval方法的返回值参数类似。

停止获取用户的地理位置信息

可以使用

1
vodi clearWatch(watchId);

watchId是调用上面的getCurrentPosition方法监视时返回的参数。
posted @   游子善心  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示