所有分类
  • 所有分类
  • 后端开发
HTML5 获取地理位置信息的注意事项及实战案例

HTML5 获取地理位置信息的注意事项及实战案例

这次给大家带来用Geolocation获取地理位置信息,用Geolocation获取地理位置信息的注意事项有哪些,下面就是实战案例,一起来看一下。Html5中提供了地理位置信息的API,通过浏览器来获取用户当前位置。

一、Geolocation是什么,怎么玩?

跟你们分享个非常好用的小技能–Geolocation。这个HTML5里面的厉害工具,能在网页中悄悄找到你的具体位置!想一想你在电脑前,浏览器像个音响大侦探在默默帮你追踪位置。是不是超赞的?利用它,你可以搞出各种各样的位置相关服务,比如说找家近的餐厅、看看朋友在哪之类的。但是得记住,用之前,浏览器得先问问你好不好意思知道你在哪儿?你点点头答应,他才能开始行动哟。

二、怎么用Geolocation?简单三步走!

用Geolocation很简单,主要就是GetCurrentPosition这个方法,这家伙有3个好朋友:一个是成功后庆祝(回调函数),一个是失败后安慰(回调函数),还有一个是调整定位精度的选择项。比如你想在百度地图上标出自己在哪儿,只需要跑下这段代码,然后看,地图上马上出现个红点儿,告诉你“原来你在这儿!”不过,有的时候定位会有点误差,比如我上次就在宿舍里,结果地图上却是离我好几百米远的大学校门口,真是尴尬死了。

三、实战案例:我在百度地图上的小冒险

实际操作起来,我就给大家说说我上次用Geolocation在百度地图上找自己位置的趣事!当时用百度地图的API,还加了个convertor.js文件,这玩意儿就是用来换算坐标滴。最后跑出来的结果,发现我居然被定位到了大学城的某个地方,其实我人可是在华工宿舍!有那么点小误差,但是,这不也是挺好玩的么?每次开地图都感觉像在寻找神秘岛屿似的,期待能发现新的宝藏。

HTML5 获取地理位置信息的注意事项及实战案例

四、注意事项一:隐私保护,别大意!

用geolocation时,隐私可得当回事儿。虽然浏览器会让你点同意,不过咱自己心里还得有点谱不是?别忘了,位置信息泄露出去可是能惹出不少乱子。因此,无论是开发人员还是普通用户,处理这种小道消息都得小心翼翼才行。比方说,尽量避免在公共Wi-Fi下用这个功能,或者把浏览器的隐私设置弄明白,保证你的位置信息不被随随便便地就卖了。

五、注意事项二:定位精度,你得知道!

nbsp;html>
    
        H5地理位置Demo
        
        
        
        
    
    
        

        

          if (window.navigator.geolocation) { var options = { enableHighAccuracy: true, }; window.navigator.geolocation.getCurrentPosition(handleSuccess, handleError, options); } else { alert("浏览器不支持html5来获取地理位置信息"); } function handleSuccess(position){ // 获取到当前位置经纬度 本例中是chrome浏览器取到的是google地图中的经纬度 var lng = position.coords.longitude; var lat = position.coords.latitude; // 调用百度地图api显示 var map = new BMap.Map("map"); var ggPoint = new BMap.Point(lng, lat); // 将google地图中的经纬度转化为百度地图的经纬度 BMap.Convertor.translate(ggPoint, 2, function(point){ var marker = new BMap.Marker(point); map.addOverlay(marker); map.centerAndZoom(point, 15); }); } function handleError(error){ }

定位不准真心恼人!有的时候你明明就在A地,地图上却显示在B地,误差甚至能达到好几百米。特别是在城里,高楼大厦多,还有各种信号干扰,都可能让定位出岔子。所以,用Geolocation的时候别太过相信它,心里要有点数。要是你需要精确度较高的定位,还是换个专业点儿的工具。

六、注意事项三:兼容性问题,别忽视!

兼容性问题挺烦人的。有些浏览器不支持地理定位,比如那些比较旧或市井里不常见的浏览器。所以,要是你想搞个地理定位相关的应用,先看看目标用户用啥浏览器。否则到时候人家没法用你的作品,那可就丢人了。

七、注意事项四:错误处理,别慌张!

说到错误处理,这可是必须得做的事。如果你使用了地理定位功能,可能会面临一些麻烦,例如用户不愿分享位置、定位时间过长、网络连接中断等情况。这时候,你得有应对办法,像是提醒用户再次授权,或者给出默认的地点信息。记住,出了错别急,耐心解决即可。

八、小结:Geolocation,不只是定位那么简单

(function() { // 闭包
    function load_script(xyUrl, callback) {
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = xyUrl;
        // 借鉴了jQuery的script跨域方法
        script.onload = script.onreadystatechange = function() {
            if ((!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
                callback && callback();
                // Handle memory leak in IE
                script.onload = script.onreadystatechange = null;
                if (head && script.parentNode) {
                    head.removeChild(script);
                }
            }
        };
        // Use insertBefore instead of appendChild to circumvent an IE6 bug.
        head.insertBefore(script, head.firstChild);
    }
    function translate(point, type, callback) {
        var callbackName = 'cbk_' + Math.round(Math.random() * 10000); // 随机函数名
        var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from=" + type
                + "&to=4&x=" + point.lng + "&y=" + point.lat
                + "&callback=BMap.Convertor." + callbackName;
        // 动态创建script标签
        load_script(xyUrl);
        BMap.Convertor[callbackName] = function(xyResult) {
            delete BMap.Convertor[callbackName]; // 调用完需要删除改函数
            var point = new BMap.Point(xyResult.x, xyResult.y);
            callback && callback(point);
        }
    }
    window.BMap = window.BMap || {};
    BMap.Convertor = {};
    BMap.Convertor.translate = translate;
})();

说白了,Geolocation就是个特实用的东西,用它可以轻松得知我们在哪儿,还能开发很多好玩的应用!但是在用这玩意儿时,别忘了隐私保护啊、定位精准度啊、兼容性啥的,还有那些小地方处理好了才行。只要这家伙弄明白了,那你就能随心所欲地用Geolocation,让它给你带来更多惊喜。

好啦朋友们,今天我们聊到这儿关于地理定位(Geolocation)的话题就告一段落。你们有用过吗?又没碰到过哪些好玩或者尴尬得说不出口的事儿?赶紧来评论区说说你发的小插曲!别忘了给我点个赞还有分享出去,让大家都能一起来体验这奇妙的位置探索旅程!

原文链接:https://www.icz.com/technicalinformation/web/2024/06/18476.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?