【HTML5入门】位置信息Geoloacation

原文 http://www.bujiaban.net/wordpress/?p=165

 

 
Geolocation代码DEMO
位置信息Geoloacation
	一  什么是位置信息?
		经度与纬度最重要,其他元信息包括速度,方向,海拔
	二  如何获取?
		IP地址,GPS,Wi-Fi,手机地理位置数据
	三  哪些浏览器支持?
		api嗅探就可以了
		if( navigator.geolocation )
	四  隐私问题?
		应用向浏览器请求获取位置信息,浏览器向用户请求授权,
		浏览器得到授权后才会执行后面流程(从宿主设备获取坐标信息
		再通过外部定位服务器拿到详细位置信息),再返回数据给应用。
	五  应该告诉用户
		1.应用需要获取位置信息
		2.为什么需要获取
		3.应用如何使用位置信息
		4.应用如果管理位置信息
		5.用户如何更新位置信息
		6.用户如何取消授权

如何使用API
	一 单次请求
		getCurrentLocation(cb_success,cb_fail,options)
		A. cb_success:成功返回后的回调函数
			返回的数据结构可能如右图结构:
			其中address是浏览器可选的。
			coords是坐标信息:
			比较重要的有以下几个
			1.latitude 十进制格式的纬度
			2.longitude  十进制格式的经度
			3.accuracy 以m为单位的可能偏差距离
			4.altitude: 以m为单位的海拔高度
			5.speed 以m/s为单位的地面移动速度
			6.heading 相对正北的移动方向

		B.	cb_fail:获取失败返回的回调函数
			返回数据含有错误码字段code,其中
			code=0,表示请求过程出错,详细可取message字段
			code=1 表示用户拒绝授权
			code=2 表示获取失败
			code=3 表示设置了timeout选项且超时了
			注意message字段不是在每个错误返回都有设置的
			options:接口选项

		C.  传入的options是JSON结构.
			可选enableHighAccuracy,timeout,maximumAge
			enableHightAccuracy:是否高精确度
			timeout:单位为ms的最大执行时间,超过了就调用cb_fail
			maximunAge:重新计算位置的时间间隔,如0,表示每次都重新发起计算。

	二 重复请求(用户位置变更自动更新)
		A.	watchPasition(cb_success,cb_fail,options)
			参数含义与上面的getCurrentLocation一样
			调用的返回值表示watchID 表示监视ID,方便后面的清除监视
		B.	clearWatch(watchID)
			清除监视
 

 
posted @ 2012-01-29 17:48  toxot  阅读(307)  评论(0编辑  收藏  举报