该 API 还是实验性的,仅对 dev 分支的 Chrome 用户可用。

chrome.location

描述 使用 chrome.location API 获取计算机的地理位置。该 API 是 HTML 地理定位 API 的另一种版本,与事件页面兼容。
可用版本 仅用于 Dev 分支。了解更多内容
权限 "location"

概述

要开始接收位置信息,您需要调用 location.watchLocation 监视位置,通过 requestInfo 参数传递位置监视详情:

chrome.location.watchLocation(name, requestInfo);

您还需要为 location.onLocationUpdate 事件添加一个监听器。在您开始位置监视后,Chrome 浏览器会产生该事件,并且每一次主机的地理位置更改时,还会产生该事件,直到您调用 location.clearWatch 为止。

如下是监听位置更新的示例代码:

        chrome.location.onLocationUpdate.addListener(function(position) {
          console.log(JSON.stringify(position));
        });
      

摘要

方法
watchLocation chrome.location.watchLocation(string name, object requestInfo)
clearWatch chrome.location.clearWatch(string name)
事件
onLocationUpdate
onLocationError

方法

watchLocation

chrome.location.watchLocation(string name, object requestInfo)

开始位置监视请求。如果已经有相同名称(或者没有指定的话则没有名称)的位置监视请求,它将会被取消并由这一请求替代。

参数
string name

标识本次请求的可选名称,默认为空字符串。

object requestInfo

本次请求的可选参数。

double (可选)
minDistanceInMeters

两次位置更新之间的最小距离,以米为单位,默认为 0,即报告所有位置的改变。

double (可选)
minTimeInMilliseconds

两次位置更新之间的最小时间间隔,以毫秒为单位,默认为 0,使用系统定义的更新频率。

integer (可选)
maximumAge

Chrome 浏览器传递给本次位置监视的请求第一个 onLocationUpdate 事件的位置缓存的最长时间,以毫秒为单位。如果这一值小于或等于零,则 Chrome 浏览器随时会尝试获取新位置。默认为 0。

clearWatch

chrome.location.clearWatch(string name)

结束位置监视请求。

参数
string name

表示要结束的请求名称,默认为空字符串。

事件

onLocationUpdate

检测到位置更改时产生。

addListener

chrome.location.onLocationUpdate.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(object location) {...};
object location

包含匹配的事件及新位置。

string name

位置监视请求名称。

object coords

坐标及其精度。

double latitude

地理纬度,以度为单位。

double longitude

地理经度,以度为单位。

double (可选)
altitude

位置的高度,以 [WGS84] 椭球面上多少米表示。如果 Chrome 浏览器无法提供 高度信息则为 null。

double accuracy

纬度和经度坐标的精度,以米为单位,表示以指定位置为圆心的圆的半径。

double (可选)
altitudeAccuracy

altitude 属性的精度,以米为单位。如果 altitude 为 null 则该属性也为 null。

double (可选)
heading

主机设备的方向,以度为单位,且 0 <= heading <= 360,相对于真北以顺时针方向计算。如果 Chrome 浏览器无法提供方向信息,该属性的值为 null。如果主机设备处于静止状态(即 speed 属性为 0),则该属性的值为 NaN。

double (可选)
speed

主机设备当前速度的水平分量大小,单位为米每秒。如果 Chrome 浏览器无法提供速度信息,该属性的值为 null。

double timestamp

获取 Location 对象的事件,表示为 1970 年 1 月 1 日以来所经过的毫秒数。

onLocationError

无法检测位置时产生。

addListener

chrome.location.onLocationError.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(string error) {...};
string error

可读的错误描述。