HTML-Geolocation API

2021-05-06 06:29

阅读:637

标签:版本   imu   navig   高度   www   location   logs   rand   ros   

  前 言

 

 Geolocation API(地理位置应用程序接口)提供了一个可以知道浏览器用户当前位置的方法。且目前看来浏览器的支持情况还算不错(因为新版本的IE支持了该API),这使得在不久之后就可以使用这一浏览器内置的API了。HTML5 Geolocation仅仅是用来检索定位信息的API,至于底层是如何定位的他也不知道,他就相当于一个传信的。

 

1.检测浏览器的支持性。

 在HTML5中,通过window.navigator对象下新增geolocation属性来判断浏览器的兼容性。

 function geolocationSupport()
    {
        if(!navigator.geolocation)
        {
            alert(‘当前浏览器不支持HTML5 Geolocation‘);
        }
        else
        {
            alert(‘当前浏览器支持HTML5 Geolocation‘);
        }
    }
    geolocationSupport();

 

2.获取当前地理位置

 我们使用getCurrentPosition(success(position),error(err),options)方法来获取当前用户的地理位置。

success(position)回调函数是在获取到地理信息时调用的,其中的position参数是一个对象包括: latitude(纬度)、longitude(经度)

accuracy(纬度和经度的精度,以米为单位)

latitudeAccuracy(海拔高度的精度,以米为单位)

heading(设备的前进方向),speed(设备的前进速度以单位m/s)

timestamp(获取位置的时间)。

error(err)回电函数是在获取地理位置失败时调用的,其中err参数有俩个属性:
code和message,code{1:表示用户拒绝了定位服务,2:获取不到位置信息,3:获取信息超时错误},message是字符串,表示错误信息。

opations是一些可选属性的列表包括: enableHighAccuracy(是否要求高精度的地理位置信息),值为true或false。

timeout(对地理信息获取操作做一个超时限制,如果超时,则返回错误),值为数字,单位为毫秒。

maximumAge(对地理位置信息进行缓存的有效时间做一个限制),值为数字,单位为毫秒。

    window.onload = function() {
        var x,y;
        if(navigator.geolocation) {
            document.getElementById("ip").innerHTML = "您当前的位置";
            // 百度地图API功能
            var map = new BMap.Map("container");
            var point = new BMap.Point(x,y);
            map.centerAndZoom(point,12);
            var geolocation = new BMap.Geolocation();
            geolocation.getCurrentPosition(function(r){
                if(this.getStatus() == BMAP_STATUS_SUCCESS){
                    var mk = new BMap.Marker(r.point);
                    map.addOverlay(mk);
                    map.panTo(r.point);
                }
                else {
                    alert(‘failed‘+this.getStatus());
                }
            },{enableHighAccuracy: true})
            return;
        }
    };

 

引入JS:

script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=134db1b9cf1f1f2b4427210932b34dcb">script>

 技术分享

 

3.清除地理位置监听和清除监听
watchPosition 跟上面的getCurrentPosition 是同样的原理,参数,返回值。只不过它是个定时器版本的。
clearWatch就是来清除watchPosition 的。


编者

 @唯芸熙     借鉴   iwebkit

 

HTML-Geolocation API

标签:版本   imu   navig   高度   www   location   logs   rand   ros   

原文地址:http://www.cnblogs.com/ljr001/p/7668763.html


评论


亲,登录后才可以留言!