h5地理位置API

h5地理位置API

地理API允许javascript程序向浏览器询问用户的真实地理位置,支持地理位置API的浏览器在访问前总是会询问用户是否允许。

获取用户地理的途径有:

1、ip地址书上说不准确,很多时候获取的是ISP机房的位置,但是获取非常方便,没有什么限制。但是实际上我觉得在中国,ip地址还是比较准确的,基本上上能精确到小区或大楼的标准。

2、GPS   非常准确,但是需要在户外,且需要很长时间搜索卫星。最主要的很多设备比如笔记本电脑基本都是不带GPS的,新的智能手机倒是都有。

3、WiFi基站mac地址。(猜测是连接位置已知的公共WiFi的时候,通过Mac地址识别WiFi接入点,从而定位)这种定位的精度还是很不错的,而且还可以在室内定位。不过由于这种位置公开的wifi比较少,此种方法的适用范围比较少。

4、 GSM或CDMA基站通过基站定位,精度随基站密度变化,精度一般,还是只有手机能用。看来地理位置API还是手机上比较有实用性。

5、用户指定位置  这个就不是HTML5的范畴了。

使用getCurrentPosition获取用户的位置

 1        if(navigator.geolocation){
 2            navigator.geolocation.getCurrentPosition(showPosition,showError);
 3         }else{
 4            alert(‘该浏览器不支持地理位置!‘);
 5         }
 6
 7         function showPosition(position){
 8            var lat=position.coords.latitude;
 9            var lng=position.coords.longitude;11         }
12         function showError(error){
13           switch(error.code)
14           {
15             case error.PERMISSION_DENIED:
16                 alert("用户拒绝对获取地理位置的请求。")
17                 break;
18             case error.POSITION_UNAVAILABLE:
19                 alert("位置信息是不可用的。")20                 break;
21             case error.TIMEOUT:
22                 alert("请求用户地理位置超时。")23                 break;
24             case error.UNKNOWN_ERROR:
25                 alert("未知错误。")26                 break;
27          }  }

支持地理位置的API的浏览器会定义navigator.geolocation。此属性拥有三个方法的对象:

navigator.geolocation.getCurrentPosition()  获取用户当前位置

navigator.geolocation.watchPosition()  获取并不断监视当前位置,一当有更改就会触发指定函数

navigator.geolocation.clearWatch()      停止监听用户位置

上面的代码可以知道,如果用户设备支持地理定位,则运行 getCurrentPosition() 方法。如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象,getCurrentPosition() 方法的第二个参数showError用于处理错误,它规定当获取用户位置失败时运行的函数。其实,除了前两个参数之外getCurrentPosition()还接受第三个参数,该参数为一个配置对象。该对象的属性指定是否需要高精度的位置信息,该位置的过期时间,以及系统在多长范围内获取位置信息。

    

 1            opts={
 2  2              enableHightAccuracy:false,//获取高精度位置
 3  3              maximumAge:30000,  //过期时间
 4  4              timeout:15000   //15s的等待时间
 5  5         }
 6  6             if(navigator.geolocation){         navigator.geolocation.getCurrentPosition(showPosition,showError,opts);
 7  7         }else{
 8  8            alert(‘该浏览器不支持地理位置!‘);
 9  9         }
10 10
11 11         function showPosition(position){
12 12         }
13 13         function showError(error){
14 14
15 15         }

接着就是在地图上显示坐标位置(百度地图):

在使用百度地图前,你必须先获取一下秘钥,点击这里

 1       <!DOCTYPE html>
 2       <html>
 3       <head>
 4       <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
 5       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6       <title>Hello, World</title>          <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=vjxRk3m3YYQ4uglexlrOxEVwGc2Nw6kF">
 7       <style type="text/css">
 8       html{height:100%}
 9       body{height:100%;margin:0px;padding:0px}
10       #container{height:100%}
11       </style>           </head>
12       <body>         <div id=‘container‘></div>
13       <script>
14       var lat,lng;
15       if(navigator.geolocation){
16         navigator.geolocation.getCurrentPosition(showPosition);
17       }else{
18         document.getElementById("container").innerHTML="该浏览器不支持地理位置!";
19       }
20       function showPosition(position){
21        lat=position.coords.latitude;
22        lng=position.coords.longitude;
23        // alert("纬度"+latlonX+"<br/>经度"+latlonY);
24       }
25       var map = new BMap.Map("container");          // 创建地图实例
26       var point = new BMap.Point(lat,lng);          // 创建点坐标
27       map.centerAndZoom(point, 15);                 // 初始化地图,设置中心点坐标和地图级别
28     </script>
29     </body>
30     </html>

其中,位于BMap命名空间下的Map类表示地图,通过new操作符可以创建一个地图实例。其参数可以是元素id也可以是元素对象(这里是container)。

地图添加到container容器里,所以要确保container容器在页面有宽和高,所以设置了style,如上,ak是你申请的秘钥。

时间: 2024-10-12 13:24:18

h5地理位置API的相关文章

PhoneGap Geolocation结合百度地图api获取地理位置api

一.使用百度地图API 1.地址:http://developer.baidu.com/map/ 2.在js DEMO中获取反地址解析的DEMO 3.修改这个DEMO的密钥,去创建应用就能创建密钥,然后复制密钥到这个页面即可 4.使用PhoneGap Geolocation 获取地理位置获取到的经度和纬度赋值给point即可 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <

PhoneGap Geolocation 获取地理位置 api

一. PhoneGap Geolocation 对象介绍 1.使应用程序可以访问地理位置信息.geolocation 对象提供了对设备 GPS 传感器的访问.Geolocation 提供设备的位置信息,例如经度和纬度. 2.位置信息的常见来源包括全球定位系统(GPS),以及通过诸如 IP 地址.RFID.WiFi 和蓝牙的 MAC 地址.和 GSM/CDMA 手机 ID 的网络信号所做的推断. 3.不能保证该 API 返 回的是设备的真实位置信息.这个 API 是基于 W3C Geo locat

H5 JS API 02

1.1 网络状态 我们可以通过window. navigator.onLine来检测,用户当前的网络状况,返回一个布尔值,这个不能实时的通知. addEventListener 进行绑定online从没网络到有网络的时候调用 addEventListener 进行绑定.offline从有网络到没网的时候调用 事件是给window绑订的 1.2 地理定位 HTML规范中,增加了获取用户地理信息的API,这样使得我们可以基于用户位置开发互联网应用,即基于位置服务 (Location Base Ser

h5地理位置对象navigator.geolocation

地理位置对象可以用于基于地图的应用,一般手机的位置信息是通过GPS或者基站来获取,而pc则是通过IP地址来获取,准确度没有移动设备高. 地理位置对象navigator.geolocation下有有两个方法,分别是getCurrentPosition()单次定位请求和watchPosition()多次定位请求. 1.navigator.geolocation.getCurrentPosition(function(),function(),{}); 三个参数依次为请求成功的回调,失败的回调,数据收

地理位置(Geolocation)API 简介

一.开篇简述 Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法.且目前看来浏览器的支持情况还算不错(因为新版本的IE支持了该API),这使得在不久之后就可以使用这一浏览器内置的API了.该API接口提供的用户地理位置信息还算蛮详细的,经纬度啊,海拔啊,精确度,移动速度啊都是可以获取的. 据我个人的了解,其位置的获取是通过收集用户周围的无线热点和您 PC 的 IP 地址.然后浏览器把这些信息发送给默认的位置定位服务提供者,也就是谷歌位置服务,由它

地理位置信息API

首先研究window.navigater对象 window.navigator用来查询一些关于运行当前脚本的应用程序的相关信息.For example, 1 alert("You're using " + navigator.appVersion); 该段代码将查询返回当前浏览器的版本号.此外,navigator对象还有navigator.appName(返回浏览器的正式名称), navigator.cookieEnabled(返回布尔值表明浏览器是否启用cookies)等各种属性以及

Html5 Geolocation获取地理位置信息(转)

Html5中提供了地理位置信息的API,通过浏览器来获取用户当前位置.基于此特性可以开发基于位置的服务应用.在获取地理位置信息前,首先浏览器都会向用户询问是否愿意共享其位置信息,待用户同意后才能使用. Html5获取地理位置信息是通过Geolocation API提供,使用其getCurrentPosition方法,此方法中有三个参数,分别是成功获取到地理位置信息时所执行的回调函数,失败时所执行的回调函数和可选属性配置项. 如下Demo演示了通过Geolocation获取地理位置信息,并在百度地

html5获取地理位置和定位

1.H5地理位置定位功能 首先判断用户浏览器是否支持该功能,目前大多数现代浏览器均支持,获取位置信息需用户授权同意 function getLocation(){ if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(showPosition,showError); }else{ alert("浏览器不支持地理定位."); } } 2.showPosition()获取用户经度纬度 function sh

h5新特性

  CSDN博客 Gane_Cheng HTML5新特性浅谈 发表于2016/10/17 21:25:58  7809人阅读 分类: 前端 转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/52819118 http://www.ganecheng.tech/blog/52819118.html (浏览效果更好) 2014年10月29日,W3C宣布,经过接近8年的艰苦努力,HTML5标准规范终于制定完成. HTML5将会取代