html5--geolocation实践

html5太强大了,新功能我就不废话了。看下一个geolocation的实例吧

应用geolocation获取用户的地理位置(原文链接http://www.ibm.com/developerworks/cn/web/1208_wangjian_html5geo/index.html

  1 <!DOCTYPE html>
  2 <head>
  3     <meta charset="utf-8">
  4     <title>HTML5 Geolocation距离跟踪器</title>
  5 </head>
  6
  7 <body onload="loadDemo()">
  8
  9 <h1>HTML5 Geolocation距离跟踪器</h1>
 10
 11 <p id="status">该浏览器不支持HTML5 Geolocation。</p>
 12
 13 <h2>当前位置:</h2>
 14 <table border="1">
 15 <tr>
 16 <td width="40" scope="col">纬度</th>
 17 <td width="114" id="latitude">?</td>
 18 </tr>
 19 <tr>
 20 <td>经度</td>
 21 <td id="longitude">?</td>
 22 </tr>
 23 <tr>
 24 <td>准确度</td>
 25 <td id="accuracy">?</td>
 26 </tr>
 27 </table>
 28
 29 <h4 id="currDist">本次移动距离:0 千米</h4>
 30 <h4 id="totalDist">总计移动距离:0 千米</h4>
 31
 32
 33 <script type="text/javascript">
 34
 35     var totalDistance = 0.0;
 36     var lastLat;
 37     var lastLong;
 38
 39     function toRadians(degree) {
 40       return this * Math.PI / 180;
 41     }
 42
 43
 44     function distance(latitude1, longitude1, latitude2, longitude2) {
 45       // R是地球半径(KM)
 46       var R = 6371;
 47
 48       var deltaLatitude = toRadians(latitude2-latitude1);
 49       var deltaLongitude = toRadians(longitude2-longitude1);
 50       latitude1 = toRadians(latitude1);
 51       latitude2 = toRadians(latitude2);
 52
 53       var a = Math.sin(deltaLatitude/2) *
 54               Math.sin(deltaLatitude/2) +
 55               Math.cos(latitude1) *
 56               Math.cos(latitude2) *
 57               Math.sin(deltaLongitude/2) *
 58               Math.sin(deltaLongitude/2);
 59
 60       var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
 61       var d = R * c;
 62       return d;
 63     }
 64
 65
 66     function updateStatus(message) {
 67         document.getElementById("status").innerHTML = message;
 68     }
 69
 70     function loadDemo() {
 71         if(navigator.geolocation) {
 72             updateStatus("浏览器支持HTML5 Geolocation。");
 73             navigator.geolocation.watchPosition(updateLocation, handleLocationError, {maximumAge:20000});
 74         }
 75     }
 76
 77     function updateLocation(position) {
 78         var latitude = position.coords.latitude;
 79         var longitude = position.coords.longitude;
 80         var accuracy = position.coords.accuracy;
 81
 82         document.getElementById("latitude").innerHTML = latitude;
 83         document.getElementById("longitude").innerHTML = longitude;
 84         document.getElementById("accuracy").innerHTML = accuracy;
 85
 86         // 如果accuracy的值太大,我们认为它不准确,不用它计算距离
 87         if (accuracy >= 500) {
 88             updateStatus("这个数据太不靠谱,需要更准确的数据来计算本次移动距离。");
 89             return;
 90         }
 91
 92         // 计算移动距离
 93
 94         if ((lastLat != null) && (lastLong != null)) {
 95             var currentDistance = distance(latitude, longitude, lastLat, lastLong);
 96             document.getElementById("currDist").innerHTML =
 97               "本次移动距离:" + currentDistance.toFixed(4) + " 千米";
 98
 99             totalDistance += currentDistance;
100
101             document.getElementById("totalDist").innerHTML =
102               "总计移动距离:" + currentDistance.toFixed(4) + " 千米";
103         }
104
105         lastLat = latitude;
106         lastLong = longitude;
107
108         updateStatus("计算移动距离成功。");
109     }
110
111     function handleLocationError(error) {
112         switch(error.code)
113         {
114         case 0:
115           updateStatus("尝试获取您的位置信息时发生错误:" + error.message);
116           break;
117         case 1:
118           updateStatus("用户拒绝了获取位置信息请求。");
119           break;
120         case 2:
121           updateStatus("浏览器无法获取您的位置信息:" + error.message);
122           break;
123         case 3:
124           updateStatus("获取您位置信息超时。");
125           break;
126         }
127     }
128
129 </script>
130 </body>
131 </html>

详情请看:http://www.ibm.com/developerworks/cn/web/1208_wangjian_html5geo/index.html

时间: 2024-11-06 14:10:35

html5--geolocation实践的相关文章

HTML5 地理位置定位(HTML5 Geolocation)原理及应用

地理位置(Geolocation)是 HTML5 的重要特性之中的一个,提供了确定用户位置的功能,借助这个特性可以开发基于位置信息的应用. 今天这篇文章向大家介绍一下HTML5 地理位置定位的基本原理及各个浏览器的数据精度情况. 在訪问位置信息前,浏览器都会询问用户是否共享其位置信息,以 Chrome 浏览器为例,假设您同意 Chrome 浏览器与站点共享您的位置,Chrome 浏览器会向 Google 位置服务发送本地网络信息,预计您所在的位置. 然后,浏览器会与请求使用您位置的站点共享您的位

HTML5 Geolocation API精确性[转载]

大家都知道,HTML5 Geolocation 可以使用 IP 地址.基于 Web 的数据库.无线网络连接和三角测量或 GPS 技术来确定经度和纬度. 问题: 在一个基于地理位置服务的个人业余项目(小伙伴在哪儿)中,发现用PC获取的地理位置与手机端获取的地理信息存在微小的差距,PC端会经常出现获取不到地理位置的情况,PC端和手机端的Geolocation是否有什么底层实现方面的差别呢,HTML5又是根据什么原则来确定应该采用何种方式来确定经度和纬度信息呢? 带着这个问题,作者查阅了一些资料,得出

HTML5 Geolocation实用性小调查

原文及代码请戳 http://appnext.mybluemix.net/Tracker.html 详细说明 本文中的代码来源于developWorkds上的这篇文章.不过,如果你仔细阅读过原文中的代码,就会发现其中有2处错误.一处是致命的错误导致距离计算结果变成NaN,另一处使得计算结果显示不正确.不过这两处已在此处的代码中修复了,有兴趣的同学可以比较一下源代码看看错误到底出在哪里.另外,本页面中的代码显示了Position对象中,HTML5定义的所有值,并且加入了一个计时器计算显示定位所耗时

html5 Geolocation(地理位置定位)学习

1.html5 Geolocation html5 Geolocation API 使用很简单,请求一个位置信息,如果用户同意,浏览器会返回一个位置信息,该位置是通过用户的底层设备(手机,电脑) 提供给浏览器.位置信息一般包括经度和纬度信息! 经度和纬度坐标信息一般由两种方式表示 a.十进制表示:39.17222 b.DMS角度格式表示:39°10'20" 2.位置从哪里来 html5 Geolocation API不指定设备使用哪种底层技术来定位应用程序的用户,相反,它只是用于检索位置信息的A

HTML5 Geolocation 构建基于地理位置的 Web 应用

HTML5 中的新功能 HTML5 是最新一代的 HTML 规范,是 W3C 与 WHATWG 合作的结果,目前仍外于开发中.自从上一代 HTML4,Web 世界已经发生了巨大的变化,HTML5 的到来更大地促进了 Web 的发展,HTML5 提供了很多新的功能,主要有: 新的 HTML 元素,例如 section, nav, header, footer, article 等 用于绘画的 Canvas 元素 用于多媒体播放的 video 和 audio 元素 用于定位的 Geolocation

HTML5 Geolocation位置信息定位总结

现在定位功能很常用,所以抽出一些时间将这个功能的知识总结一下作为知识梳理的依据.HTML5 Geolocation的定位用法很简单,首先请求位置信息,用户同意,则返回位置信息.HTML5 Geolocation仅仅是用来检索定位信息的API,至于底层是如何定位的他也不知道,他就相当于一个传信的,你说是1,ok,那我就给用户传个1,仅此而已. 1).位置信息来源的分类和特点 1.IP定位 优点:任何地方都可以. 在服务器端处理. 缺点:不准确,只能精确到市级. 2.GPS定位 优点:比较准确. 缺

html5 geolocation API

清单 1. 检查浏览器支持性if (navigator.geolocation) 清单 2. 单次定位请求 API void getCurrentPosition(updateLocation, optional handleLocationError, optional options); 清单 3. updateLocation() 函数使用示例updateLocation() 函数是getCurrentPosition的必选参数,也是浏览器指明位置数据可用时应调用的函数.获取位置操作可能需

HTML5 Geolocation(地理定位)用于定位用户的位置。

定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 浏览器支持 Internet Explorer 9.Firefox.Chrome.Safari 以及 Opera 支持地理定位. 注释:对于拥有 GPS 的设备,比如 iPhone,地理定位更加精确. HTML5 - 使用地理定位 请使用 getCurrentPosition() 方法来获得用户的位置. 下例是一个简单的地理定位实例,可返

HTML5 GeoLocation 地理定位

window.navigator 对象包含有关访问者浏览器的信息,window.navigator 对象在编写时可不使用 window 这个前缀. 浏览器支持 Internet Explorer 9.Firefox.Chrome.Safari 以及 Opera 支持地理定位. 注释:对于拥有 GPS 的设备,比如 iPhone,地理定位更加精确 HTML5 地理定位 html5为window.navigator提供了geolocation属性,用于获取基于浏览器的当前用户地理位置. window

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

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