html5定位

主要流程:

  • 检测是否支持地理定位
  • 如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。
  • 如果getCurrentPosition()运行成功,利用它得到的经纬度,结合百度地图api显示

返回属性为:

coords.latitude 十进制数的纬度
coords.longitude 十进制数的经度
coords.accuracy 位置精度
coords.altitude 海拔,海平面以上以米计
coords.altitudeAccuracy 位置的海拔精度
coords.heading 方向,从正北开始以度计
coords.speed 速度,以米/每秒计
timestamp 响应的日期/时间

粗浅代码如下:

(未转换为百度地图使用的坐标所以精度不是很好)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
        body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
        #allmap{height:500px;width:100%;}
        #r-result{width:100%; font-size:14px;}
</style>
<title>基于html5的定位demo</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=MRLGAx0pQMKPSxn2Yx1vIc7Xrd6Xfeo2"></script>
</head>
<body>
    <div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
    //因手机号无法验证谷歌账号无法申请秘钥,故采用百度地图API

    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(Success,Error,{
        // 指示浏览器获取高精度的位置,默认为false
        enableHighAccuracy: true,
        // 指定获取地理位置的超时时间,默认不限时,单位为毫秒
        timeout: 5000,
        // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
        maximumAge: 3000
    });
    }else{
        alert("Your browser does not support Geolocation!");
    }
    function Error(error){
        //break;
        console.error(error);
        var msg=‘‘;
        switch (error.code) {
        case error.PERMISSION_DENIED:
            msg = "用户拒绝对获取地理位置的请求。"
            break;
        case error.POSITION_UNAVAILABLE:
            msg = "位置信息是不可用的。"
            break;
        case error.TIMEOUT:
            msg = "请求用户地理位置超时。"
            break;
        case error.UNKNOWN_ERROR:
            msg = "未知错误。"
            break;
    }
    document.write(msg);
    }
    function Success(position){
        var map = new BMap.Map("allmap");//显示地图
        map.centerAndZoom(new BMap.Point(116.331398,39.897445),11);
        map.enableScrollWheelZoom(true);
        //获取当前位置经纬度
        var longitude =position.coords.longitude;
        var latitude = position.coords.latitude;
        if(longitude!= "" && latitude!= ""){
            map.clearOverlays();
            var new_point = new BMap.Point(longitude,latitude);
            var marker = new BMap.Marker(new_point);  // 创建标注
            map.addOverlay(marker);              // 将标注添加到地图中
            map.panTo(new_point);
        }
    }
</script>
时间: 2024-11-13 01:33:15

html5定位的相关文章

利用HTML5定位功能,实现在百度地图上定位

利用HTML5定位功能,实现在百度地图上定位 代码如下: <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>HTML5定位</title>     <script type="text/javascript" src="http://lib.sinaapp

html5定位getLocation()

HTML5 Geolocation API 用于获得用户的地理位置. 如果用户不允许定位,那么用户信息是不可用的. 获取用户的位置:getCurrentPosition() 返回数据如下 返回用户当前位置: watchPosition() 返回用户的当前位置,并继续返回用户移动时的更新位置. clearWatch()用于停止 watchPosition() 方法 <!DOCTYPE html> <html> <head> <meta http-equiv=&quo

利用HTML5定位功能,实现在百度地图上定位(转)

原文:利用HTML5定位功能,实现在百度地图上定位 代码如下: 测试浏览器:ie11定位成功率100%,Safari定位成功率97%,(add by zhj :在手机上测试(用微信内置浏览器打开),无论使用WIFI还是移动4G联网, 定位精度都是蛮高的,误差在几十米内) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

html5定位并在百度地图上显示

在开发移动端 web 或者webapp时,使用百度地图 API 的过程中,经常需要通过手机定位获取当前位置并在地图上居中显示出来,这就需要用到html5的地理定位功能. navigator.geolocation.getCurrentPosition(callback); 在获取坐标成功之后会执行回调函数 callback; callback 方法的参数就是获取到的坐标点:然后可以初始化地图,设置控件.中心点.缩放等级,然后给地图添加point的overlay: var map = new BM

html5 定位

需要实现的功能:移动端的网页,能定位到中文地址. 百度地图能实现这样的功能. 之前精度差得原因是,我用自己的mac做服务器,用手机来浏览定位,这样只能定位到mac 的地址,mac上浏览器的地址就没准了.估计以后上线的话,就正常了. Google地图怕不稳定. 代码 /* * 定位函数 */ var locPos = function(){ // 百度地图API功能 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPo

html5手机端定位

由于项目需要,不得不研究一下手机端的定位. 起初想到的是HTML5定位,本地测试下来,安卓没什么问题,IOS报错,提示不支持http协议.由于后端除了经纬度,还需要城市名之类的详细数据,便调研了一下高德地图.高德地图确实好用,拿到的数据很全面.很快调试完上了测试服务器,结果意外发现一个问题--就是在4G的情况下,微信和QQ直接就是无法获取位置!坑啊,无奈只能转换思路,利用微信JSSDK定位和QQ的接口分别获取到经纬度之后,通过高德地图查询位置的详细信息,当然在浏览器下还是直接利用高德地图来定位.

让HTML5来为你定位(转)

add by zhj: 本文得到的经纬度没有转化为高德坐标系的经纬度就直接去查询了,查询结果是有偏差的.在原文的评论中,有些博友也提到了这个问题. 这里有一篇文章:利用HTML5定位功能,实现在百度地图上定位,才是正确的,在手机上测试(用微信内置浏览器打开),无论使用WIFI还是移动4G联网, 定位精度都是蛮高的,误差在几十米内. 要想获取地理位置,分成两步,先获取经纬度,这是html5的新功能,具体实现各个浏览器自己想办法,比如chrome和firefox就是用的google的位置服务,对于f

Javascript学习总结 - html5实现定位地理位置

简述 最近在苦逼学习Javascript,并且是有任务需要去完成的,因此就有一个想法要总结记录一下自己的学习成果.这次的总结主题是html5实现定位地理位置的任务,结合原生的Javascript实现此功能. html5 什么是html5? 万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改版本,2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准规范终于制定完成,命名为html5. HTML5草案的前身名为 Web Applications

【高德地图API】从零开始学高德JS API(七)——定位方式大揭秘

摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为wifi定位和基站定位,都是通过获取wifi或者基站信息,然后查询对应的wifi或者基站位置数据库,得到的定位地点.定位数据库可以不断完善不断补充,所以,越定位越准确.本文详细描述了,如果使用高德JS API来实现位置定位.城市定位的方法,包含了IP定位,浏览器定位,检索定位等多种网络定位方法.当然,如果您的手机有GPS功能,那么使用浏览器定位的时候,会自动获取GPS信息,使