您的位置:首页 > Web前端 > HTML

地理位置信息

2011-12-26 23:53 197 查看
使用HTML 5来获得地理位置信息是非常容易的。它可以依赖你的IP地址,设备上有的GPS装置等方法取得你当前的地理位置信息。与手机一样,取得用户当前的地理位置信息需要通过用户的许可,以浏览器为例,它会在工具栏弹出一个提示,询问用户是否容许该网站使用当前的地理位置信息。

在确认浏览器支持HTML 5的地理信息之后,可以使用navigator.geolocation.getCurrentPosition()来取得当前的位置信息。navigator.geolocation.getCurrentPosition()支持两个回调方法,一个用来处理正确的地理位置请求,一个用来进行错误处理。比如通过本文最后的页面可以取得当前所在位置的经度和纬度,并正确的处理失败信息。

getCurrentPosition支持三个查询选项:

enableHighAccuracy - 是否用高精度进行定位(使用高精度,则会使调用更慢)

timeout - 查询超时设定(以毫秒为单位)

maximumAge - 用来设定地理位置失效重查时间,以便进行实时位置跟踪

得到用户的地理位置之后就可以调用各种API完成不同的服务了,比如加载地图、基于地理位置的推荐,等等。

一个工作的示例页面(要注意的是chrome在本地无法执行地理位置请求,需要将相应页面部署在web服务器下方可开始使用地理位置服务。firefox没有该要求)

<html>
<head>
<title>Geo location</title>
</head>

<body>
<p>
<script language="Javascript">
function show_map(position)
{
document.write("Latitude: "+position.coords.latitude);
document.write("<br>");
document.write("Longitude: "+position.coords.longitude);
}

function handle_error(err) {
switch(err.code) {
case 1:
document.write("用户不让用地理位置信息");
break;
case 2:
document.write("查询失败,当前可能无网络");
break;
case 3:
document.write("查询超时");
break;
default:
document.write("未知原因查询失败");
break;
}
}

navigator.geolocation.getCurrentPosition(show_map);

</script>
</p>
</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息