当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > html5使用地理位置

html5使用地理位置 时间:2018-09-26      来源:未知

地理定位(Geolocation)API让我们可以获取关于用户当前地理位子的信息(或者至少是正在运行浏览器的系统的地理位置)它不是HTML5规范的一部分,但经常被归组与HTML5相关的新功能中,例如获取的方法有,获取当前位置的方法使用getcurrentposition方法,提供一个位置信息可用时要调用的函数

处理地理定位错误,向getCurrentPosition方法传递第二个参数,制定一个发生错误时要调用的函数

使用地理定位

我们通过全局属性navigator.geolocation访问地理定位功能,它会返回一个Geolocation对象.

getCurrentPosition(callback,errorCallback,options) 获取当前位置,使用watchposition(callback,error,options) 开始监控当前位置,clearWatch(id)停止监控当前位置.

获取当前位置,getCurrentPostion方法能获取当前的位置,不过位置信息不是由函数自身返回的.我们需要提供一个成功的回调函数,它会在位置信息可用时出发(这这样做考虑到了请求位置和信息的变得可用之间可能会有延迟)

<!DOCTYPE HTML>

<html>

<head>

<title>Example</title>

<style>

table {border-collapse:collapse;}

th,td{padding:4px}

th {text-algin:right}

</style>

</head>

<body>

<table border="1">

<tr>

<th>longutyde:</th><td id="longitude">-</td>

<th>lattitude:</th><td id="latitude"></td>

</tr>

<tr>

<th>Altitude:</th><td id="altitude">-</td>

<th>Accuracy:</th><td id="accuracy"></td>

</tr>

<tr>

<th>Altitude Accuracy:</th><td id="altitudeaccuracy">-</td>

<th>Heading:</th><td id="heading"></td>

</tr>

<tr>

<th>Speed:</th><td id="speed">-</td>

<th>Time stamp:</th><td id="timestamp"></td>

</tr>

<table>

<script>

navigator.geolocation.getCurrentPosition(displayPosition);

function displayPostion(pos){

var properties =["longitude","latitude","altitude","accuracy","altitudeaccuracy","heading","speed"];

for(var i=0;i<properties.length;i++){

var value = pos.coords[properties[i]];

document.getElementById(Properties[i]).innerHTML = value;

}

document.getElementById(timestamp).innerHTML =pos.timestamp;

}

</script>

</body>

</html>

这个例子中的脚本调用了getCurrentPosition,并传递displayPosition 函数作为该方法的参数.党委制信息变得可用时,浏览器就会调用指定函数,并传入一个提供位置详情的position对象(详情会显示在一个table元素的单元格里)position对象非常简单

对于position对象一个有两个属性

coords 用与返回当前位置的坐标 coordinates类型

timestamp 返回获取坐标信息的时间 字符串

不是所有coordinates对象的数据值都时刻可用.浏览器获取位置信息的机制没有统一的规定,所使用的技术也有很多.移动设备越来越多的配置了GPS,加速度计和电子罗盘设备,这就以为着那些平台会拥有精确和完整的数据.

我们仍然可以为其他设备获取位置信息:浏览器使用的一种地理定位服务会尝试根据网络信息确定位置.如果你的系统力有Wifi适配器,那么信号方位内的网络就会与一份网络目录进行对比,这份目录是街道级景观调查(如谷歌街景服务)结果的一部分.如果没有WIFI,也可以用ISP所提供的ip地址获的大概的位置.

通过网络信息推断出的位置有着不同的精度,但它可以做到惊人的准确度.当我开始测试这项功能时,我很惊讶它报告的位置方位是如此之窄.事实上,他是如此的精确,以至于我得把屏幕截图里的坐标替换成帝国大厦的位置,因为通过真是的位置信息(来源于我家及附近的wifi网络)你可以很轻松地找到我的房子,看到我车道上的汽车照片.这东西实在很可怕,所以当文档使用地理定位功能时,所有浏览器会做的第一件事就是询问用户是否对其授权.

如果用户允许此请求,浏览器就能获得位置信息,并在信息可用时调用回调函数.

我用来书写的电脑没有安装任何类型的定位专用硬件:没用GPS,电子罗盘,高度计或者加速度计.因为这个原因,可用的数据只有纬度,经度和这些值的精度.chrome浏览器估计我的位置在报告位置的69米(大约是75码)范围内,相对于实际情况算是低估了.

上一篇:SIM908模块基本功能测试

下一篇:欣和怡点招聘电子软件开发工程师(医疗)

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部