Roy Notes

技术 创业 思考

尝试HTML5物理定位

geolocation是html5规范中的新特性,它主要通过GPS和IP地址来猜测客户端的上网位置,输出位置信息。换言之,如果没有GPS设备,它将使用后者来猜测你的位置,所以结果不是绝对精准的。

规范的详细文档可浏览:http://dev.w3.org/geo/api/spec-source.html

当前并不是所有的浏览器都支持geolocation,在目前为止以下浏览器支持该新特性:IE8,safari4,chrome,Opera(我没验证)。但如果你的应用需要在非以上浏览中实现类似geolocation的功能,可以使用google location services,可以参考文章http://blog.bcse.info/get-geolocation-via-javascript

为保障使用者安全,使用该API时浏览器会询问用户是否启用该功能。如图:

geolocation

只有允许API才生效。

通常使用getCurrentPosition来获取使用者当前的位置,如果需要的跟踪使用者的位置调用watchPosition,传闻后者可以为移动设备更节省电力,手上没有移动设备,也并未理解它们之间的分别。

无论使用以上那个,都返回一个Position对象来描述物理位置,它包含调用者的经纬坐标(coords)–经度、纬度、海拨、准确度等等……部分参数是需要具体实现支持的,如果没有将返回默认值null.

下面是geolocation最简单的调用例子:

<script>

if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition(function(position){

alert(“latitude = ” + position.coords.latitude+ ”\nlongitude = ” + position.coords.longitude);

});

} else {

error(‘not supported’);

}

</script>

它返回了当前的物理位置,并通过警告窗口显现。该API本身是非常简单,期待更多基于该API的新应用产生。当定位信息准确化后,它将改变我们的生活,同时也给我们带来相对的痛苦。当然,只是相对的。。。

以下是http://html5demos.com/geo上显视壬丰大厦的物理位置 renfeng

参考资料:

Comments