9.1.2 使用API
在使用地理位置API之前,首先要检测浏览器是否支持,例如下面的测试代码。
当然,这个if判断也能用来进行浏览器的判断操作,可以区分IE 6~8版本浏览器与IE 9和其他新型的浏览器。这在用户使用某些CSS 3属性时非常有用,检测浏览器是否支持某些CSS3属性相对比较麻烦。当然也可以在知道浏览器对该CSS3属性的支持情况下检测浏览器。一般来说,就是区分区分IE6~8浏览器和其他浏览器,这与navigator.geolocation的检测是一致的。
通过这个API,使用如下两个方法变量可以获取用户的地理位置。
■getCurrentPosition
■watchPosition
这两个方法都支持三个参数。例如getCurrentPosition的格式为:
■successCallback:为方法成功时的回调,此参数必须。
■errorCallback:为方法失败时的回调,此参数可选。
■option:为额外参数,也是可选参数对象。option参数支持如下三个可选参数API:
●enableHighAccuracy:表示是否高精度可用,为Boolean类型,默认为false,如果开启,响应时间会变慢,同时,在手机设备上会用掉更多的流量。
●timeout:表示等待响应的最大时间,默认是0毫秒,表示无穷时间。
●maximumAge:表示应用程序的缓存时间。单位毫秒,默认是0,意味着每次请求都是立即去获取一个全新的对象内容。
clearWatch方法只接受一个参数,这个参数是由watchPosition方法返回的watchID。
请注意两个方法的差异。getCurrentPosition方法属于一次性取用户的地理位置信息,而watchPosition方法则不停地取用户的地理位置信息,不停地更新用户的位置信息,这在开汽车的时候实时获知自己的位置比较有用。watchPosition方法可以通过watchPosition方法停掉(停止不断更新用户地理位置信息),方法就是传递watchPosition方法返回的watchID。当用户的位置被返回的时候,会藏在一个位置对象中,该对象包括一些属性,具体见表9-1。
表9-1 属性说明
(续)