`
nannan408
  • 浏览: 1784718 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

html5之手机js定位

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

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

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

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

1 <!DOCTYPE html>
2 <html>
3     <head>
4         <title>H5地理位置Demo</title>
5         <script src="http://api.map.baidu.com/api?v=1.3" type="text/javascript">
6         </script>
7         <script type="text/javascript" src="convertor.js">
8         </script>
9     </head>
10     <body>
11         <div id="map" style="width:600px; height:400px">
12         </div>
13     </body>
14     <script type="text/javascript">
15         if (window.navigator.geolocation) {
16             var options = {
17                 enableHighAccuracy: true,
18             };
19             window.navigator.geolocation.getCurrentPosition(handleSuccess, handleError, options);
20         } else {
21             alert("浏览器不支持html5来获取地理位置信息");
22         }
23        
24         function handleSuccess(position){
25             // 获取到当前位置经纬度  本例中是chrome浏览器取到的是google地图中的经纬度
26             var lng = position.coords.longitude;
27             var lat = position.coords.latitude;
28             // 调用百度地图api显示
29             var map = new BMap.Map("map");
30             var ggPoint = new BMap.Point(lng, lat);
31             // 将google地图中的经纬度转化为百度地图的经纬度
32             BMap.Convertor.translate(ggPoint, 2, function(point){
33                 var marker = new BMap.Marker(point);
34                 map.addOverlay(marker);
35                 map.centerAndZoom(point, 15);
36             });
37         }
38        
39         function handleError(error){
40        
41         }
42     </script>
43 </html>

复制代码

convertor.js文件:
复制代码

1 (function() { // 闭包
2     function load_script(xyUrl, callback) {
3         var head = document.getElementsByTagName('head')[0];
4         var script = document.createElement('script');
5         script.type = 'text/javascript';
6         script.src = xyUrl;
7         // 借鉴了jQuery的script跨域方法
8         script.onload = script.onreadystatechange = function() {
9             if ((!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
10                 callback && callback();
11                 // Handle memory leak in IE
12                 script.onload = script.onreadystatechange = null;
13                 if (head && script.parentNode) {
14                     head.removeChild(script);
15                 }
16             }
17         };
18         // Use insertBefore instead of appendChild to circumvent an IE6 bug.
19         head.insertBefore(script, head.firstChild);
20     }
21     function translate(point, type, callback) {
22         var callbackName = 'cbk_' + Math.round(Math.random() * 10000); // 随机函数名
23         var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from=" + type
24                 + "&to=4&x=" + point.lng + "&y=" + point.lat
25                 + "&callback=BMap.Convertor." + callbackName;
26         // 动态创建script标签
27         load_script(xyUrl);
28         BMap.Convertor[callbackName] = function(xyResult) {
29             delete BMap.Convertor[callbackName]; // 调用完需要删除改函数
30             var point = new BMap.Point(xyResult.x, xyResult.y);
31             callback && callback(point);
32         }
33     }
34
35     window.BMap = window.BMap || {};
36     BMap.Convertor = {};
37     BMap.Convertor.translate = translate;
38 })();

复制代码
分享到:
评论

相关推荐

    Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版

    《Cocos2d-JS开发之旅:从HTML5到原生手机游戏》是一本深入探讨Cocos2d-JS框架的书籍,旨在帮助开发者从Web前端的HTML5技术过渡到跨平台的原生手机游戏开发。Cocos2d-JS是Cocos2d-x引擎的一个分支,它结合了...

    基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)

    通过上述知识点,本文详细介绍了如何通过JavaScript实现基于手机定位获取当前位置的细节,适用于开发移动网页或者应用。代码示例有助于理解整个流程的实现,并且可以直接应用于实际开发中,以增强用户体验。

    HTML5地理位置定位

    ### HTML5地理位置定位 #### 知识点一:HTML5地理位置定位的概念与革命性 - **HTML5地理位置定位**:这是一种新兴技术,允许Web应用程序访问用户的地理位置信息,无需依赖任何插件或本机应用程序。 - **W3C ...

    Html5_手机页.rar_H5 外卖餐饮 手机端_palaceyen_小程序H5_手机 html5外卖_手机外卖html

    HTML5技术在手机端餐饮外卖应用中的应用是一个重要的知识点,特别是在当前移动互联网高度发达的时代。"Html5_手机页.rar"这个压缩包文件显然包含了针对H5外卖餐饮服务的源代码,适合用于创建微信小程序、WAP版或者...

    6款html5手机顶部导航菜单遮罩显示效果

    在这个标题为“6款html5手机顶部导航菜单遮罩显示效果”的主题中,我们将深入探讨HTML5在手机顶部导航菜单设计中的应用,特别是关于遮罩显示效果的实现。 首先,导航菜单是任何网站或应用的重要组成部分,特别是在...

    Cocos2d-js项目教程和Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版

    Cocos2d-js是Cocos2d-x家族的一员,是一个跨平台的游戏开发框架,它将JavaScript与C++相结合,使得开发者能够用JavaScript编写游戏,并在HTML5、Android和iOS等多平台上运行。本教程旨在深入解析Cocos2d-js的使用...

    js定位示例

    本示例主要探讨了两种使用JavaScript进行定位的方法,包括原生JavaScript定位和jQuery定位,这两种方法都能帮助开发者实现当用户点击某个对象时,页面自动滚动至特定位置的效果。下面我们将详细讲解这两种定位方式...

    html5+javascript+css商城(模拟联想)购物系统

    《HTML5+JavaScript+CSS 商城(模拟联想)购物系统详解》 HTML5、JavaScript 和 CSS 是构建现代网页和应用程序的三大核心技术。本项目“HTML5+JavaScript+CSS 商城(模拟联想)购物系统”充分利用这三种技术,打造...

    html5培训之地理定位

    ### HTML5培训之地理定位详解 #### 一、地理定位概览 HTML5地理定位功能是一种能够让网页应用访问用户地理位置的技术。它通过浏览器提供了一种简单而统一的方式,让开发者可以请求并处理用户的地理位置信息。这在...

    HTML5手机端三级联动城市选择代码

    HTML5手机端三级联动城市选择代码是...总的来说,HTML5手机端三级联动城市选择代码是结合了HTML5、JavaScript(包括AJAX、DOM操作和事件处理)、以及可能的前端框架技术的产物,它为移动用户提供了便捷的地区选择体验。

    手机卫星定位网站模板

    手机卫星定位网站模板是一款专为手机APP应用设计的HTML模板,旨在提供一个高效、美观且功能丰富的展示平台,用于官方网站的建设和推广。该模板通常包含了多种页面布局、色彩方案、字体样式以及交互元素,旨在适应...

    js手机端,H5端,自适应日历插件

    总结来说,"js手机端,H5端,自适应日历插件"是针对HTML5应用和移动设备的,它提供了一个易于理解和使用的日历组件。通过Mobiscroll这样的插件,开发者可以快速地在项目中集成高质量的日历功能,同时保持良好的用户...

    15个手机页面模板源码,html5

    4. 画布(Canvas):通过JavaScript可以利用HTML5的Canvas元素绘制动态图形,创建丰富的视觉效果,非常适合手机游戏或数据可视化。 5. 视频与音频:HTML5的`&lt;video&gt;`和`&lt;audio&gt;`标签使得在网页中内嵌多媒体内容变得...

    html5+js最小巧的响应式分步问卷调查表单模板

    HTML5是现代网页开发的关键技术,它带来了许多增强用户体验的新特性,如语义化标签、离线存储、媒体元素、 canvas 画布、svg矢量图以及Geolocation定位等。在这款"html5+js最小巧的响应式分步问卷调查表单模板"中,...

    50套HTML5手机页模板

    首先,我们要理解HTML5作为新一代的超文本标记语言,其核心特性包括更好的语义化、离线存储、媒体元素增强、拖放功能、 canvas 和svg等图形绘制以及地理定位等。这些特性使得HTML5能够更好地适应移动设备,并提供了...

    Android 使用html5得到手机设备信息

    在Android平台上,HTML5是一种强大的技术,它允许开发者在网页应用中实现许多原生功能,包括获取手机设备信息。这个话题主要涉及如何通过HTML5的Web API与Android系统交互,从而得到诸如设备型号、操作系统版本、...

    Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF电子书下载 带书签目录 完整版.pdf

    《Cocos2d-JS开发之旅:从HTML5到原生手机游戏》是一本深入探讨Cocos2d-JS框架的书籍,旨在帮助开发者从Web前端的HTML5技术过渡到跨平台的原生手机游戏开发。Cocos2d-JS是Cocos2d-x引擎的一个分支,它结合了...

    仿华为商城部分前端界面html+css+js

    在本项目"仿华为商城部分前端界面html+css+js"中,我们主要探讨的是如何利用Web前端技术来构建一个类似华为商城的电子商务网站的用户界面。这个项目着重于实现HTML结构、CSS样式以及JavaScript交互功能,从而为用户...

    android手机HTML5demo

    - script.js:JavaScript文件,实现了HTML5的交互逻辑和功能。 - style.css:CSS文件,定义了页面的样式和布局。 - audio.mp3/video.mp4:示例音频和视频文件。 - images/:存放图片资源的目录。 - icons/:可能包含...

Global site tag (gtag.js) - Google Analytics