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

亲自试一试:在谷歌地图上显示您的位置

定位用户的位置

www.binblog.cn

HTML5 Geolocation API 用于获得用户的地理位置。

鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。

浏览器支持

Internet Explorer 9、Firefox、Chrome、Safari 以及 Opera 支持地理定位。

注释:对于拥有 GPS 的设备,比如 iPhone,地理定位更加精确。

HTML5 - 使用地理定位

请使用 getCurrentPosition() 方法来获得用户的位置。

下例是一个简单的地理定位实例,可返回用户位置的经度和纬度。

实例

<script>
var x=document.getElementById("demo");
function getLocation(){if (navigator.geolocation){navigator.geolocation.getCurrentPosition(showPosition);}else{x.innerHTML="Geolocation is not supported by this browser.";}}
function showPosition(position){x.innerHTML="Latitude: " + position.coords.latitude +"<br />Longitude: " + position.coords.longitude;}
</script>

例子解释:

  • 检测是否支持地理定位
  • 如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。
  • 如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象
  • showPosition() 函数获得并显示经度和纬度

上面的例子是一个非常基础的地理定位脚本,不含错误处理。

处理错误和拒绝

getCurrentPosition() 方法的第二个参数用于处理错误。它规定当获取用户位置失败时运行的函数:

实例

function showError(error){switch(error.code){case error.PERMISSION_DENIED:x.innerHTML="User denied the request for Geolocation."break;case error.POSITION_UNAVAILABLE:x.innerHTML="Location information is unavailable."break;case error.TIMEOUT:x.innerHTML="The request to get user location timed out."break;case error.UNKNOWN_ERROR:x.innerHTML="An unknown error occurred."break;}}

错误代码:

  • Permission denied - 用户不允许地理定位
  • Position unavailable - 无法获取当前位置
  • Timeout - 操作超时

在地图中显示结果

如需在地图中显示结果,您需要访问可使用经纬度的地图服务,比如谷歌地图或百度地图:

实例

function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";document.getElementById("mapholder").innerHTML="<img src='"+img_url+"' />";
}

在上例中,我们使用返回的经纬度数据在谷歌地图中显示位置(使用静态图像)。

谷歌地图脚本

上面的链接向您演示如何使用脚本来显示带有标记、缩放和拖曳选项的交互式地图。

给定位置的信息

本页演示的是如何在地图上显示用户的位置。不过,地理定位对于给定位置的信息同样很有用处。

案例:

  • 更新本地信息
  • 显示用户周围的兴趣点
  • 交互式车载导航系统 (GPS)

getCurrentPosition() 方法 - 返回数据

若成功,则 getCurrentPosition() 方法返回对象。始终会返回 latitude、longitude 以及 accuracy 属性。如果可用,则会返回其他下面的属性。

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

Geolocation 对象 - 其他有趣的方法

watchPosition() - 返回用户的当前位置,并继续返回用户移动时的更新位置(就像汽车上的 GPS)。

clearWatch() - 停止 watchPosition() 方法

下面的例子展示 watchPosition() 方法。您需要一台精确的 GPS 设备来测试该例(比如 iPhone):

实例

<script>
var x=document.getElementById("demo");
function getLocation(){if (navigator.geolocation){navigator.geolocation.watchPosition(showPosition);}else{x.innerHTML="Geolocation is not supported by this browser.";}}
function showPosition(position){x.innerHTML="Latitude: " + position.coords.latitude +"<br />Longitude: " + position.coords.longitude;}
</script>

在谷歌地图上显示您的位置相关推荐

  1. 谷歌付费 php是什么区,谷歌地图上显示地区的详细信息

    谷歌地图上显示地区的详细信息 最近在做有关谷歌地图的项目,需要鼠标放到在谷歌地图上标注的地点的详细信息(即当鼠标放上去时弹出显示该地区的详细信息) var map; // Global declara ...

  2. 门店定位怎么在地图上显示_门店位置如何显示在地图上?

    随着科技的发展,智能手机的普及,如今不管在哪里只要有一个手机在手基本就不会迷路,通过手机地图寻找位置非常方便,及时比较偏的地方也可以通过地图去找到,那么对于门店商家而言,如何将自己的门店显示在地图上呢 ...

  3. html5获取我的位置并在百度地图上显示

    html5获取我的位置并在百度地图上显示 一.前言 二.在线演示和GitHub源码 一.前言 最近有兴趣研究了下移动端的地图api,发现其实挺简单的,HTML5也提供了地理位置API:Geolocat ...

  4. html5 微信获取当前位置,「微信小程序」实现获取当前位置并在地图上显示

    盆一框发互会理工.择各近些架现跳轻机审蓝器友圈最近真是被微信小程序这货刷爆了,哪那都是它,作为一个喜欢尝(作)鲜(死)的前端汪来说,我肯定不会轻易放弃这么好的尝试机会,嘛溜的,先搭好环境压压惊分博累发 ...

  5. android高德显示指定位置,高德地图开发(二)地图上显示指定位置

    我们在用地图软件搜索的时候,搜索结果会在地图上以红点显示,现在我们来实现一个在地图上显示指定位置的程序,先看效果图. 要实现这么个功能,首先要能将地图视图中心移动到以指定位置:还有在指定位置绘制一个点 ...

  6. (百度地图)输入地址显示经纬度并且在地图上显示具体位置

    输入地址显示经纬度并且在地图上显示具体位置 博主比较懒,不过多描述,直接上代码,通俗易懂,哈哈哈哈哈哈 引入百度地图<script type="text/javascript" ...

  7. 高德地图开发(二)地图上显示指定位置

    我们在用地图软件搜索的时候,搜索结果会在地图上以红点显示,现在我们来实现一个在地图上显示指定位置的程序,先看效果图. 要实现这么个功能,首先要能将地图视图中心移动到以指定位置:还有在指定位置绘制一个点 ...

  8. 如何在谷歌地图上绘制矢量道路线并导出为图片

    概述 水经注软件除了可以对百度坐标与火星坐标进行纠偏,下载陆地及海洋高程.提取10米等高线等深线.CASS高程点,下载含高度的全国矢量建筑.全国乡镇及街区行政区划.地名点.高速铁路网.公交路线.水系. ...

  9. 谷歌地图拼接软件_谷歌地图上又有新发现?出现两个长条弧状物体,颜色一白和一黑...

    趣味探索讯 在21世纪今天,手机已经成为了很多人的生活"必需品",在无比拥挤的地铁上,在摇摇晃晃的公交里,在垂涎欲滴的餐桌前,在舒适柔软的床上,都可以看到手机的身影,似乎没了它,一 ...

最新文章

  1. 2018:数据科学20个最好的Python库
  2. Android SDK Manager国内下载缓慢的问题
  3. OpenCV saturate_cast<uchar>函数用法(饱和剔除)(像素限制、溢出滤除、像素设限、防溢出)
  4. 唯一标识 微信小程序_微信小程序获取用户唯一标识(不用授权)
  5. ReflectionClass与Closure
  6. kali安装docker(有效详细的教程)
  7. Nodejs学习笔记(七)——接口API
  8. day3 java的运算符及其注意问题
  9. redis实例python_使用python操作redis(管道)
  10. 强化学习算法在京东广告序列推荐场景的应用实践
  11. 2019-07-10
  12. Python基础教程笔记——列表和元组
  13. java web教程下载_Java Web云应用开发项目式教程 中文pdf扫描版[208MB]
  14. 一、Python复习教程(重点)- 基础
  15. lesson 4 introductions
  16. Hexo博客使用 Next主题 后的一些相关配置 记录
  17. iOS系统语音播报文字
  18. 洛谷 P2123 皇后游戏(贪心)
  19. GIF动态图制作工具(免费),附教程
  20. 主视图和左视图算体积最大最小值

热门文章

  1. 华为正式上线鸿蒙,华为Mate30、鸿蒙OS资料汇总,方舟编译器正式上线
  2. 【ACM省赛】第九届河南省程序设计大赛 B 宣传墙
  3. PDF工具Adobe Arcrobat Pro DC下载安装教程
  4. 远程桌面优化避坑指南
  5. Java 中的判空操作
  6. yandex注册验证码怎么填_注册163邮箱格式怎么填?163电子邮件注册格式
  7. 基于FPGA的图像浮雕效果实现
  8. excel表格拆分怎么做?
  9. 端游开发中用什么技术可以让用户更短时间内体验游戏?端游分发
  10. Excel2013利用图标集在单元格内加上各式各样的图标来表示状态