• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 用Geolocation获取地理位置信息

用Geolocation获取地理位置信息

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含Geolocation,地理位置,信息等相关知识,匿名希望在学习及工作中可以帮助到您
这次给大家带来用Geolocation获取地理位置信息,用Geolocation获取地理位置信息的注意事项有哪些,下面就是实战案例,一起来看一下。

Html5中提供了地理位置信息的API,通过浏览器来获取用户当前位置。基于此特性可以开发基于位置的服务应用。在获取地理位置信息前,首先浏览器都会向用户询问是否愿意共享其位置信息,待用户同意后才能使用。

Html5获取地理位置信息是通过Geolocation API提供,使用其getCurrentPosition方法,此方法中有三个参数,分别是成功获取到地理位置信息时所执行的回调函数,失败时所执行的回调函数和可选属性配置项。

如下Demo演示了通过Geolocation获取地理位置信息,并在百度地图上显示当前位置(通过调用百度地图API)。实验结果发现位置被定位到了大学城内环东四路入口处,与本人所在位置(华工学生宿舍)偏差还是有点大的,达到200-300米左右。

代码如下所示(其中convertor.js为百度地图提供的坐标转化文件):

<!DOCTYPE html>
<html>
    <head>
        <title>H5地理位置Demo</title>
        <script src="http://api.map.baidu.com/api?v=1.3" type="text/javascript">
        </script>
        <script type="text/javascript" src="convertor.js">
        </script>
    </head>
    <body>
        <p id="map" style="width:600px; height:400px">
        </p>
    </body>
    <script type="text/javascript">
        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){
        
        }
    </script>
</html>

convertor.js文件:

(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;
})();

相信看了本文案例你已经掌握了方法,更多精彩请关注微课江湖其它相关文章!

推荐阅读:

分页查询的使用详解

JS的可折叠面板使用详解

以上就是用Geolocation获取地理位置信息的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • Html5 Geolocation获取地理位置信息实例
  • 利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
  • html5指南-4.使用Geolocation实现定位功能
  • html5指南-7.geolocation结合google maps开发一个小的应用
  • HTML5的Geolocation地理位置定位API使用教程
  • 用Geolocation获取地理位置信息
  • 解析HTML5 geolocation的实例教程
  • HTML5-Geolocation APIs的示例代码
  • html5 navigator.geolocation基于浏览器获取地理位置代码案例
  • html5指南(4)-使用Geolocation的详解

相关文章

  • 2018-12-03html5生成柱状图(条形图)效果的实例代码
  • 2018-12-03html5 footer标签怎么用?footer标签的用法实例
  • 2018-12-03HTML5应用-生日快乐动画的实现
  • 2018-12-03H5中设置或返回音频/视频的默认播放速度的属性defaultPlaybackRate
  • 2018-12-03html5将来会取代native app 吗,我现在学native app,比如android,会不会白学了,以后被淘汰?
  • 2018-12-03关于网络画板的10篇文章推荐
  • 2018-12-03html5 canvas有什么用?HTML5最新的canvas元素详解
  • 2018-12-03详解HTML5中的<aside>元素与<article>元素_html5教程技巧
  • 2018-12-03如何实现一个简单的跑酷游戏?(代码详解)
  • 2018-12-03html5中在可拖动的元素或选取的文本移出放置目标时执触发的事件ondragleave

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 分享HTML5实现弹出框的效果示例
    • 如何在 HTML 页面上显示出有交互的统计图?
    • 详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
    • 使用html5 canvas创建太空游戏的示例
    • HTML5如何实现视频直播功能
    • HTML5 script元素async、defer异步加载使用介绍
    • HTML5 WebSocket实现聊天室的代码示例
    • H5同层Video播放器接入实例分享
    • HTML5 visibilityState属性详细介绍和使用实例_html5教程技巧
    • 概述HTML5的强大与未来发展

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有