HTML5 Geolocation用来定位用户的位置。

定位用户的位置

HTMl5 Geolocation API用来得到用户的地理位置。

由于这个可能和个人隐私相关。除非用户同意否则不能使用。

浏览器支持

IE9。Firefox,Chrome,Opera和Safari 5都支持这个特性。

注意:假设使用带有GPS的设备,比如iphone。Geolocation将会更加准确。

HTML5 - 使用Geolocation

使用getCurrentPosition()方法得到用户的位置。

以下这个样例是一个简单的返回用户所在地点经纬度的样例:


  1. <script>
  2. var x=document.getElementById("demo");
  3. function getLocation()
  4. {
  5. if (navigator.geolocation)
  6. {
  7. navigator.geolocation.getCurrentPosition(showPosition);
  8. }
  9. else{x.innerHTML="Geolocation is not supported by this browser.";}
  10. }
  11. function showPosition(position)
  12. {
  13. x.innerHTML="Latitude: " + position.coords.latitude +
  14. "<br />Longitude: " + position.coords.longitude;
  15. }
  16. </script>

在线演示

代码说明:

  • 首先检查Geolocation是否支持
  • 假设支持,执行getCurrentPosition()方法,假设不支持,显示给用户信息
  • 假设getCurrentPosition()方法成功了,返回一个坐标的对象到參数指定的方法(showPosition)中
  • showPosition()方法得到显示的经纬度

上面的样例是一个主要的Geolocation脚本。没有做错误处理。

处理错误和拒绝

getCurrentPosition()方法的第二个參数用来处理错误。

指定一个方法当无法得到用户位置的时候来处理错误。


  1. function showError(error)
  2. {
  3. switch(error.code)
  4. {
  5. case error.PERMISSION_DENIED:
  6. x.innerHTML="User denied the request for Geolocation."
  7. break;
  8. case error.POSITION_UNAVAILABLE:
  9. x.innerHTML="Location information is unavailable."
  10. break;
  11. case error.TIMEOUT:
  12. x.innerHTML="The request to get user location timed out."
  13. break;
  14. case error.UNKNOWN_ERROR:
  15. x.innerHTML="An unknown error occurred."
  16. break;
  17. }
  18. }

在线演示

错误代码例如以下:

  • 权限拒绝:用户不须要执行Geolocation
  • 位置不存在:无法得到用户位置
  • 超时:操作超时

在Map中显示结果

为了在map中显示结果。你须要訪问一个能够处理经纬度的地图服务,比如,GoogleMaps:


  1. function showPosition(position)
  2. {
  3. var latlon=position.coords.latitude+","+position.coords.longitude;
  4.  
  5. var img_url="http://maps.googleapis.com/maps/api/staticmap?

    center="

  6. +latlon+"&zoom=14&size=400x300&sensor=false";
  7.  
  8. document.getElementById("mapholder").innerHTML="<img src=""+img_url+""+img_url+"" />";
  9. }

在上面的样例中,我们使用返回的经纬度来展示位置到Google地图中。怎样使用脚本来展示一个互动的地图,带有标记,缩放和拖动功能。

在线演示

地理位置指定信息

这里我们演示了怎样展示用户位置到地图上。然而。Geolocation也相同对于地理指定的信息很实用。

比如:

  • 最新的本地信息
  • 展示用户周围的有趣地方
  • 导航(GPS)

getCurrentPosition()方法 - 返回数据

假设成功getCurrentPosition()方法将返回一个对象。经纬度和准确的信息也会返回。

其他属性假设存在也返回。

Property                                                 Description

coords.latitude                                     The latitude as a decimal number

coords.longitude                                 The longitude as a decimal number

coords.accuracy                                  The accuracy of position

coords.altitude                                     The altitude in meters above the mean sea level

coords.altitudeAccuracy                     The altitude accuracy of position

coords.heading                                   The heading as degrees clockwise from North

coords.speed                                      The speed in meters per second

timestamp                                            The date/time of the response

Geolocation 对象 - 其他方法

watchPosition()方法 - 返回眼下的用户位置而且当用户移动后继续返回更新的位置(比如车里的GPS)。

clearWatch()方法 - 停止watchPosition()方法

以下的代码展示了怎样使用watchPositin()方法,注意你须要一个准确的GPS设备来測试(比如,iphone)


  1. <script>
  2. var x=document.getElementById("demo");
  3. function getLocation()
  4. {
  5. if (navigator.geolocation)
  6. {
  7. navigator.geolocation.watchPosition(showPosition);
  8. }
  9. else{x.innerHTML="Geolocation is not supported by this browser.";}
  10. }
  11.  
  12. function showPosition(position)
  13. {
  14. x.innerHTML="Latitude: " + position.coords.latitude +
  15. "<br />Longitude: " + position.coords.longitude;
  16. }
  17. </script>

HTML5 Geolocation用来定位用户的位置。的更多相关文章

  1. HTML5 Geolocation API地理定位整理(一)

    HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 浏览器支持 Internet Explorer 9+, ...

  2. HTML5: HTML5 Geolocation(地理定位)

    ylbtech-HTML5: HTML5 Geolocation(地理定位) 1.返回顶部 1. HTML5 Geolocation(地理定位) HTML5 Geolocation(地理定位)用于定位 ...

  3. HTML5 Geolocation API地理定位整理(二)

    Geolocation 实例demo 1.使用watchPosition()监听客户端位置 var watchOne=null; if (navigator.geolocation) { //watc ...

  4. HTML5 Geolocation(地理定位)

    一.背景 在HTML规范中,增加了获取用户地理信息的API,这样使得可以基于用户位置开发互联网应用,即基于位置服务 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. Inter ...

  5. html5 geolocation配合百度地图api实现定位

    1.了解html5 geolocation HTML5 Geolocation(地理定位)用于定位用户的位置.鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的.=> 使用时 ...

  6. HTML5 学习06——Geolocation(地理定位)

    HTML5 Geolocation(地理定位) HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. HTML ...

  7. HTML5学习笔记 Geolocation(地理定位)

    HTML5 Geolocation(地理定位)用于定位用户的位置. 定位用户的位置 html5 Geolocation API用于获得用户的地理位置 鉴于该特性可能低侵犯用户的隐私,除非用户同意,否则 ...

  8. HTML5学习(七)----地理定位

    参考教程:http://www.w3school.com.cn/html5/html_5_geolocation.asp 说明:设备必须有GPS定位功能才能定位的 定位用户的位置 HTML5 Geol ...

  9. HTML5 Geolocation(地理位置)

    HTML5 Geolocation(地理位置).是用来定位用户的位置的. HTML5 Geolocation API 用于获得用户的地理位置,鉴于该特性可能侵犯用户的隐私权,除非用户同意,否则不能获取 ...

随机推荐

  1. Java遍历包中所有类方法注解

    import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.lang.annotat ...

  2. struts2.1.8 spring2.5.6 hibernate3.3G 依赖jar包

    ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-"} struts2-spring-p ...

  3. Web开发相关笔记 #03#

    HTTP Status 500  ※  jsp 放在 WEB-INF 外面  ※ 使用 JDBC 时需要 close 什么 ※ execute 和 executeUpdate ※ How can I ...

  4. c++第十八天

    p105~p108: 1.迭代器与数组的不同:迭代器的索引值必须是无符号类型,数组的索引无此要求. 2.使用数组的时候编译器一般会把它转化为指针. 3.auto ia2(数组名);的结果是:获得一个指 ...

  5. [置顶] SNMP协议详解<三>

    在上篇文章中,说到了SNMPv3主要在安全性方面进行了增强,采用USM(基于用户的安全模型)和VACM(基于视图的访问控制模型)技术.下面我们就主要讲解SNMPv3的报文格式以及基于USM的认证和加密 ...

  6. 微信小程序:JS 交互逻辑

    微信小程序:JS 交互逻辑 一.JS 交互逻辑 一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击.获取用户的位置等等.在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作. ...

  7. 素数对猜想之python3实现

    题目 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数.显然有d​1​​=1,且对于n>1有d​n​​是偶数.“素数对猜想”认为“存在无穷多对相邻且差为 ...

  8. 移动web开发适配方案之Rem

    移动端为什么要做适配 移动端相对PC端来说大部分浏览器内核都是基于Webkit的,所以大部分都支持CSS3的最新语法.但是由于手机的屏幕尺寸和分辨率都不太一样(尤其是安卓),所以不得不对不同分辨率的手 ...

  9. Jquery倒计时源码分享

    在静态页添加显示倒计时的容器,并引用下面脚本,代入时间参数即可使用. timeoutDate——到期时间,时间格式为2014/01/01或2014/1/1 D——天 H——小时 M——分钟 S——秒 ...

  10. 【DEV GridControl】怎样使GridView中满足某个条件的行可编辑,其余行不可编辑?

    DXperience控件包,使用起来非常方便,但有时候某些功能的实现在文档中不太容易找到解决方案,比如下面要提到的这个功能我就在文档中找了很久也没找到,最后还是在官方论坛上找到的. 具体问题是这样的: ...