• 技术文章 >web前端 >H5教程

    HTML5的地理定位如何使用

    php中世界最好的语言php中世界最好的语言2018-03-26 17:02:28原创1217
    这次给大家带来HTML5的地理定位如何使用,HTML5地理定位使用的注意事项有哪些,下面就是实战案例,一起来看一下。

    地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用。今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理及各个浏览器的数据精度情况。

      在访问位置信息前,浏览器都会询问用户是否共享其位置信息,以 Chrome 浏览器为例,如果您允许 Chrome 浏览器与网站共享您的位置,Chrome 浏览器会向 Google 位置服务发送本地网络信息,估计您所在的位置。然后,浏览器会与请求使用您位置的网站共享您的位置。

      HTML5 Geolocation API 使用非常简单,基本调用方式如下: 

     if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(locationSuccess, locationError,{
            // 指示浏览器获取高精度的位置,默认为false
            enableHighAccuracy: true,
            // 指定获取地理位置的超时时间,默认不限时,单位为毫秒
            timeout: 5000,
            // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
            maximumAge: 3000
        });
    }else{
        alert("Your browser does not support Geolocation!");
    }

      locationError为获取位置信息失败的回调函数,可以根据错误类型提示信息:

     locationError: function(error){
        switch(error.code) {
            case error.TIMEOUT:
                showError("A timeout occured! Please try again!");
                break;
            case error.POSITION_UNAVAILABLE:
                showError('We can\'t detect your location. Sorry!');
                break;
            case error.PERMISSION_DENIED:
                showError('Please allow geolocation access for this to work.');
                break;
            case error.UNKNOWN_ERROR:
                showError('An unknown error occured!');
                break;
        }
    }

      locationSuccess为获取位置信息成功的回调函数,返回的数据中包含经纬度等信息,结合Google Map API 即可在地图中显示当前用户的位置信息,如下:

     locationSuccess: function(position){
        var coords = position.coords;    
        var latlng = new google.maps.LatLng(
            // 维度
            coords.latitude,
            // 精度
            coords.longitude
        );  
        var myOptions = {  
            // 地图放大倍数  
            zoom: 12,  
            // 地图中心设为指定坐标点  
            center: latlng,  
            // 地图类型  
            mapTypeId: google.maps.MapTypeId.ROADMAP  
        };  
        // 创建地图并输出到页面  
        var myMap = new google.maps.Map(  
            document.getElementById("map"),myOptions  
        );  
        // 创建标记  
        var marker = new google.maps.Marker({  
            // 标注指定的经纬度坐标点  
            position: latlng,  
            // 指定用于标注的地图  
            map: myMap
        });
        //创建标注窗口  
        var infowindow = new google.maps.InfoWindow({  
            content:"您在这里<br/>纬度:"+  
                coords.latitude+  
                "<br/>经度:"+coords.longitude  
        });  
        //打开标注窗口  
        infowindow.open(myMap,marker); 
    }

      经过测试,Chrome/Firefox/Safari/Opera四个浏览器获取到的位置信息都是一摸一样的,估计都是用的同一个位置服务,数据如下:

      而IE浏览器的和上面几款浏览器获取到的数据不一样,数据如下:

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    H5中History模式的使用详解

    localstorage和sessionstorage使用记录

    indexeddb数据库的使用详解

    以上就是HTML5的地理定位如何使用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:HTML5 h5 使用
    上一篇:input[type='date']自定义样式与日历校验功能 下一篇:如何设置H5的表单验证失败提示语
    Web大前端开发直播班

    相关文章推荐

    • 为什么html5将主宰在线视频?• 小强的HTML5移动开发之路(3)——HTML5与HTML4比较• HTML5教程-Web存储• phonegap使用方法介绍(八)操作数据库• 避免常见的六种HTML5错误用法 (5-6)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网