该 API 还是实验性的,仅对
dev 分支的
Chrome 用户可用。
chrome.location
描述: |
使用 chrome.location API
获取计算机的地理位置。该 API 是 HTML 地理定位 API
的另一种版本,与事件页面兼容。
|
可用版本: |
仅用于 Dev 分支。
|
权限: |
"location"
|
概述
要开始接收位置信息,您需要调用 watchLocation 监视位置,通过
requestInfo
参数传递位置监视详情:
chrome.location.watchLocation(name, requestInfo);
您还需要为 onLocationUpdate
事件添加一个监听器。在您开始位置监视后,Chrome
浏览器会产生该事件,并且每一次主机的地理位置更改时,还会产生该事件,直到您调用
clearWatch 为止。
如下是监听位置更新的示例代码:
chrome.location.onLocationUpdate.addListener(function(position) {
console.log(JSON.stringify(position));
});
方法
watchLocation
chrome.location.watchLocation(string name, object requestInfo)
开始位置监视请求。如果已经有相同名称(或者没有指定的话则没有名称)的位置监视请求,它将会被取消并由这一请求替代。
参数
-
name
(
string
)
-
标识本次请求的可选名称,默认为空字符串。
-
requestInfo
(
object
)
-
本次请求的可选参数。
-
属性
-
minDistanceInMeters
(
optional
double
)
-
两次位置更新之间的最小距离,以米为单位,默认为 0,即报告所有位置的改变。
-
minTimeInMilliseconds
(
optional
double
)
-
两次位置更新之间的最小时间间隔,以毫秒为单位,默认为 0,使用系统定义的更新频率。
-
maximumAge
(
optional
integer
)
-
Chrome 浏览器传递给本次位置监视的请求第一个 onLocationUpdate 事件的位置缓存的最长时间,以毫秒为单位。如果这一值小于或等于零,则 Chrome 浏览器随时会尝试获取新位置。默认为 0。
clearWatch
chrome.location.clearWatch(string name)
结束位置监视请求。
参数
-
name
(
string
)
-
表示要结束的请求名称,默认为空字符串。
事件
onLocationUpdate
检测到位置更改时产生。
addListener
chrome.location.onLocationUpdate.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function(object location) {...};
-
location
(
object
)
-
包含匹配的事件及新位置。
-
属性
-
name
(
string
)
-
位置监视请求名称。
-
coords
(
object
)
-
坐标及其精度。
-
属性
-
latitude
(
double
)
-
地理纬度,以度为单位。
-
longitude
(
double
)
-
地理经度,以度为单位。
-
altitude
(
optional
double
)
-
位置的高度,以 [WGS84] 椭球面上多少米表示。如果 Chrome 浏览器无法提供 高度信息则为 null。
-
accuracy
(
double
)
-
纬度和经度坐标的精度,以米为单位,表示以指定位置为圆心的圆的半径。
-
altitudeAccuracy
(
optional
double
)
-
altitude 属性的精度,以米为单位。如果 altitude 为 null 则该属性也为 null。
-
heading
(
optional
double
)
-
主机设备的方向,以度为单位,且 0 <= heading <= 360,相对于真北以顺时针方向计算。如果 Chrome 浏览器无法提供方向信息,该属性的值为 null。如果主机设备处于静止状态(即 speed 属性为 0),则该属性的值为 NaN。
-
speed
(
optional
double
)
-
主机设备当前速度的水平分量大小,单位为米每秒。如果 Chrome 浏览器无法提供速度信息,该属性的值为 null。
-
timestamp
(
double
)
-
获取 Location 对象的事件,表示为 1970 年 1 月 1 日以来所经过的毫秒数。
onLocationError
无法检测位置时产生。
addListener
chrome.location.onLocationError.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function(string error) {...};
-
error
(
string
)
-
可读的错误描述。