本小菜刚开始学习HTML5,现在对其中的Geolocation颇感兴趣,结合Google Map的API实现基本的地图定位功能。

1.获取当前地理位置

调用方法 void getCurrentPosition(onSuccess, onError, options);即可。

其中onSuccess是获取当前位置信息成功时执行的回调函数,onError是获取当前位置信息失败时所执行的回调函数,options是一些可选熟悉列表。其中第二和第三个参数为可选属性。

在onSuccess回调函数中,用到了参数position,代表一个具体的position对象,表示当前位置。其具有如下属性:

  • latitude:当前地理位置的纬度。
  • longitude:当前地理位置的经度。
  • altitude:当前位置的海拔高度(不能获取时为null)。
  • accuracy:获取到的纬度和经度的精度(以米为单位)。
  • altitudeAccurancy:获取到的海拔高度的经度(以米为单位)。
  • heading:设备的前进方向。用面朝正被方向的顺时针旋转角度来表示(不能获取时为null)。
  • speed:设备的前进速度(以米/秒为单位,不能获取时为null)。
  • timestamp:获取地理位置信息时的时间。

在onError回调函数中,用到了error参数。其具有如下属性:

  • code:错误代码,有如下值。
  1. 用户拒绝了位置服务(属性值为1);
  2. 获取不到位置信息(属性值为2);
  3. 获取信息超时错误(属性值为3)。
  • message:字符串,包含了具体的错误信息。

在options参数中,可选属性如下:

  • enableHighAccuracy:是否要求高精度的地理位置信息。
  • timeout:设置超时时间(单位为毫秒)。
  • maximumAge:对地理位置信息进行缓存的有效时间(单位为毫秒)。

其中注意要写上如下代码,判断浏览器是否支持HTML5获取地理位置信息,以兼容较早不支持的浏览器。

if (navigator.geolocation) {//获取当前地理位置信息 navigator.geolocation.getCurrentPosition(onSuccess, onError, options);} else {alert("你的浏览器不支持HTML5来获取地理位置信息。");
}

2.调用Google Map API获取当前位置信息

首先,需要在页面中引用Google Map API的脚本文件,导入方法如下所示。

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

其次,设定地图参数,设定方法如下所示。

//指定一个google地图上的坐标点,同时指定该坐标点的横坐标和纵坐标
var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);
var myOptions = {zoom: 14,    //设定放大倍数center: latlng,  //将地图中心点设定为指定的坐标点mapTypeId: google.maps.MapTypeId.ROADMAP //指定地图类型
};

最后,创建地图,并在页面中显示,创建方法如下所示。

//创建地图,并在页面map中显示
var map = new google.maps.Map(document.getElementById("map"), myOptions);

最后的最后,献上本次示例所有代码。代码如下所示。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>获取当前位置并显示在google地图上</title><script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script><script type="text/javascript">function init() {if (navigator.geolocation) {//获取当前地理位置navigator.geolocation.getCurrentPosition(function (position) {var coords = position.coords;//console.log(position);//指定一个google地图上的坐标点,同时指定该坐标点的横坐标和纵坐标var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);var myOptions = {zoom: 14,    //设定放大倍数center: latlng,  //将地图中心点设定为指定的坐标点mapTypeId: google.maps.MapTypeId.ROADMAP //指定地图类型};//创建地图,并在页面map中显示var map = new google.maps.Map(document.getElementById("map"), myOptions);//在地图上创建标记var marker = new google.maps.Marker({position: latlng,    //将前面设定的坐标标注出来map: map //将该标注设置在刚才创建的map中});//标注提示窗口var infoWindow = new google.maps.InfoWindow({content: "当前位置:<br/>经度:" + latlng.lat() + "<br/>维度:" + latlng.lng()   //提示窗体内的提示信息});//打开提示窗口infoWindow.open(map, marker);},function (error) {//处理错误switch (error.code) {case 1:alert("位置服务被拒绝。");break;case 2:alert("暂时获取不到位置信息。");break;case 3:alert("获取信息超时。");break;default:alert("未知错误。");break;}});} else {alert("你的浏览器不支持HTML5来获取地理位置信息。");}}</script>
</head>
<body οnlοad="init()"><div id="map" style="width: 800px; height: 600px"></div>
</body>
</html>

出   处:http://www.cnblogs.com/djchan/

利用HTML5中Geolocation获取地理位置在Google Map上定位相关推荐

  1. 从数据库中读取经纬度,在google map 上进行标注(一)

    这个文章写给像我一样刚刚接触google maps api 的同志们,希望他们看到我的文章后能有点启发,也希望我的文章能让更多人看见. 有很多人在自己的网页上嵌入google 地图时需要标注自己想要的 ...

  2. php代码输出笑脸,利用HTML5中的Canvas绘制笑脸的代码

    这篇文章主要介绍了利用HTML5中的Canvas绘制一张笑脸的教程,使用Canvas进行绘图是HTML5中的基本功能,需要的朋友可以参考下 今天,你将学习一项称为Canvas(画布)的web技术,以及 ...

  3. 在google map上显示Instagram的照片

    之前Instagram有一个在地图上显示照片的功能,可惜后来这个功能去掉了.INS的官方说法是因为这个功能的使用率很低,因此最后舍弃了这个功能.其实我觉得这个功能还蛮好的,看到自己的照片遍布全世界很有 ...

  4. android在google map上画出导航路线图

    android在google map上画线比较容易实现的,但是现在问题在于如何获取起点和终点之间的路线图.这里我们使用Google Directions API来实现, Google Directio ...

  5. 在Google Earth和google map上用KML文件进行批量标记

    近日出于工作需要,需要在地图上批量的绘制一批定位点,以前有朋友用过google earth做过批量导入经纬度信息,于是进行了尝试. 批量导入功能倒是好用,但由于雾霾严重,卫星图几乎观测不到任何东西,不 ...

  6. LBS:利用IP地址,获取地理位置

    工作上的任务:依据客户的IP地址,获取其IP对应的经纬度,从而得到其地理位置.最好精确到市.区.镇.街道.门牌号.代码如下. 原始的表格文件如下所示:. logindate loginip custo ...

  7. python利用百度/高德地图获取地理位置并转换

    提示:作者原创,转载请注明 文章目录 一.地理编码与逆编码 二.高德地图地理编码 三.百度地图地理编码 四.坐标转换和空间化 一.地理编码与逆编码 地理编码与逆编码表示的是地名地址与地理坐标(经纬度) ...

  8. 拼接php图片路径,利用ThinkPHP5中的获取器,实现图片URL拼接

    图片URL地址要保存为相对路径 存在数据库中的图片路径数据,要存放为相对路径,不要写死.这一点很重要 +----+---------------------------+------+-------- ...

  9. 利用html5中canvas实现类似淘宝的放大图片效果

    <!DOCTYPE html> <html> <head> </head> <body> <!-- 这里定义原始图片,设置鼠标移动到图 ...

最新文章

  1. ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!
  2. Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案
  3. LG电子成功进行太赫兹频段6G无线信号传输,距离超过100米
  4. 前端工程师的迷茫:不知道我这种前端是不是被淘汰了?
  5. 【OpenCV】轮廓与凸包
  6. Transformer、BERT等模型学习笔记
  7. java jtable 单元格合并_java 表格JTable中怎么样合并单元格
  8. Linux主机无法安装软件故障排查
  9. 优雅的实现Activiti动态调整流程(自由跳转、前进、后退、分裂、前加签、后加签等),含范例代码!...
  10. Gaussian09 optimization trajectory: python script
  11. 罗振宇跨年演讲全文、PPT、图解
  12. lamp一键安装包不安装mysql_LAMP一键安装包-CentOS 5/6下,添加pdo_mysql
  13. Android内存和SD卡的数据存取
  14. 《数学之美》阅读笔记1
  15. Excel使用---excel2016___一般操作(搬,侵删)
  16. 树莓派摄像头无法识别 mmal
  17. 15支持哪些数据库版本 tfs_TFS数据库架构(TFS Database Architecture)
  18. 8种开发工具,拒绝加班熬夜
  19. matlab胞元数组
  20. U盘制作Ubuntu系统启动盘的官方推荐软件

热门文章

  1. 图论 —— 图的连通性 —— 有桥连通图加边变边双连通图
  2. 理论基础 —— 排序 —— 逆序对问题
  3. 29 SD配置-主数据-信用管理-分配订单类型的信贷控制
  4. 日语学习-多邻国-关卡1-家庭
  5. linux参考文献_linux常用指令
  6. AOSP6.0.1 launcher3入门篇—hotseat相关实现
  7. iis网站服务器响应慢,IIS响应慢
  8. java面向对象的教程_java面向对象入门教程
  9. 为什么做了梦第二天想不起来_转告父母!为什么有人睡觉爱把脚伸到被子外面?其实与身体状况有关…切勿忽视...
  10. Linux系统查看内存的几个小命令