hs.location
Определите местоположение машины и полезную информацию об этом местоположении
Этот модуль предоставляет функции для получения текущей информации о местоположении и отслеживания изменений местоположения. Он расширяет предыдущую версию модуля, добавив возможность создания независимых locationObjects, которые могут включать/отключать отслеживание местоположения независимо от других использований Служб местоположения Hammerspoon, добавляет мониторинг регионов для выхода и входа и добавляет возможность получения информации о геокодировании через подмодуль hs.location.geocoder.
Этот модуль совместим с предшественником со следующими изменениями:
- hs.location.get - больше не требует вызова hs.location.start перед использованием этой функции. Возвращаемая информация будет последним кэшированным значением, которое обновляется внутренне всякий раз, когда обнаруживаются или теряются дополнительные сети Wi-Fi (не обязательно подключенные). При включенном отслеживании обновлений с помощью функции hs.location.start, расчеты, основанные на RSSI всех текущих видимых сетей, выполняются чаще для получения более точного результата, но он все равно основан на сетях Wi-Fi рядом с вами. Во многих случаях значение, полученное при изменении состояния Wi-Fi, должно быть достаточно точным.
-
hs.location.servicesEnabled - заменяет
hs.location.services_enabled. Хотя предыдущая функция включена для обратной совместимости, она будет отображать предупреждение об устаревании в консоли при первом вызове и может быть полностью удалена в будущем.
В этом модуле и в hs.location.geocoder используются следующие метки для описания таблиц, которые используются в качестве параметров или возвращаемых значений функций и методов. Эти таблицы описываются следующим образом:
-
locationTable- таблица, определяющая координаты местоположения, содержащая одну или несколько из следующих пар ключ-значение:-
latitude- число, определяющее широту в градусах. Положительные значения указывают на широты севернее экватора. Отрицательные значения указывают на широты южнее экватора. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно 0,0. -
longitude- число, определяющее долготу в градусах. Измерения относятся к нулевому меридиану, при этом положительные значения простираются к востоку от меридиана, а отрицательные - к западу от меридиана. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно 0,0. -
altitude- число, указывающее высоту над (положительное) или ниже (отрицательное) уровня моря. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно 0,0. -
horizontalAccuracy- число, определяющее радиус неопределенности местоположения, измеренный в метрах. Если отрицательное, ключиlatitudeиlongitudeнедопустимы и не должны использоваться. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно 0,0. -
verticalAccuracy- число, определяющее точность значения высоты в метрах. Если отрицательное, ключaltitudeнедопустим и не должен использоваться. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно -1,0. -
course- число, определяющее направление движения устройства. Если это значение отрицательное, то значение недействительно и не должно использоваться. На современных моделях Macintosh это значение почти всегда будет отрицательным числом. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно -1,0. -
speed- число, определяющее мгновенную скорость устройства в метрах в секунду. Если это значение отрицательное, то значение недействительно и не должно использоваться. На современных моделях Macintosh это значение почти всегда будет отрицательным числом. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно -1,0. -
timestamp- число, определяющее время, в которое было определено это местоположение. Это число представляет количество секунд с начала 1 января 1970 года в полночь по Гринвичу и является числом с плавающей точкой, поэтому вы должны использоватьmath.floorдля этого числа перед использованием его в качестве аргумента для функции Luaos.date. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно текущему времени.
-
-
regionTable- таблица, определяющая круглую область, содержащую одну или несколько из следующих пар ключ-значение:-
identifier- строка для идентификации области. Если в таблице, используемой в качестве аргумента, это значение не указано, новое значение генерируется с помощьюhs.host.uuid. -
latitude- число, определяющее широту в градусах. Положительные значения указывают на широты севернее экватора. Отрицательные значения указывают на широты южнее экватора. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно 0,0. -
longitude- число, определяющее широту в градусах. Положительные значения указывают на широты севернее экватора. Отрицательные значения указывают на широты южнее экватора. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно 0,0. -
radius- число, определяющее радиус (в метрах), который определяет внешнюю границу области. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно 0,0. -
notifyOnEntry- булево значение, определяющее, следует ли генерировать обратный вызов с сообщением "didEnterRegion", когда машина входит в область. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно true. -
notifyOnExit- булево значение, определяющее, следует ли генерировать обратный вызов с сообщением "didExitRegion", когда машина выходит из области. Если в таблице, используемой в качестве аргумента, это значение не указано, по умолчанию оно равно true.
-
Подмодули
Обзор API
- Функции - вызовы API, предлагаемые непосредственно расширением
- authorizationStatus
- distance
- dstOffset
- get
- register
- servicesEnabled
- start
- stop
- sunrise
- sunset
- unregister
- Конструкторы - вызовы API, возвращающие объект, обычно тот, который предлагает методы API
- Методы - вызовы API, которые могут быть выполнены только на объекте, возвращенном конструктором
Документация API
Функции
distance
| Подпись | hs.location.distance(from, to) -> meters |
|---|---|
| Тип | Функция |
| Описание |
Измеряет расстояние между двумя точками широты и долготы |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Исходный код | extensions/location/liblocation.m строка 245 |
dstOffset
| Подпись | hs.location.dstOffset() -> number |
|---|---|
| Тип | Функция |
| Описание |
Возвращает число, представляющее текущий сдвиг летнего времени |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Исходный код | extensions/location/liblocation.m строка 307 |
get
| Signature | hs.location.get() -> locationTable or nil |
|---|---|
| Type | Function |
| Description |
Возвращает таблицу, представляющую текущее местоположение |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/liblocation.m строка 282 |
register
| Signature | hs.location.register(tag, fn[, distance]) |
|---|---|
| Type | Function |
| Description |
Регистрирует функцию обратного вызова, которая будет вызываться при обновлении системного местоположения |
| Parameters |
|
| Returns |
|
| Source | extensions/location/location.lua строка 139 |
servicesEnabled
| Signature | hs.location.servicesEnabled() -> bool |
|---|---|
| Type | Function |
| Description |
Получает состояние служб определения местоположения OS X |
| Parameters |
|
| Returns |
|
| Source | extensions/location/liblocation.m строка 192 |
start
| Signature | hs.location.start() -> boolean |
|---|---|
| Type | Function |
| Description |
Начинает отслеживание местоположения с помощью служб определения местоположения OS X, чтобы зарегистрированные функции обратного вызова вызывались при изменении местоположения компьютера. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 179 |
stop
| Signature | hs.location.stop() |
|---|---|
| Type | Function |
| Description |
Останавливает отслеживание местоположения. Зарегистрированные функции обратного вызова перестанут получать уведомления об изменениях местоположения. |
| Parameters |
|
| Returns |
|
| Source | extensions/location/location.lua строка 201 |
sunrise
| Signature | hs.location.sunrise(latitude, longitude, offset[, date]) -> number or string |
|---|---|
| Type | Function |
| Description |
Возвращает время восхода солнца для заданного местоположения |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/liblocation.m строка 503 |
sunset
| Signature | hs.location.sunset(latitude, longitude, offset[, date]) -> number or string |
|---|---|
| Type | Function |
| Description |
Возвращает время захода солнца для заданного местоположения |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/liblocation.m строка 526 |
unregister
| Signature | hs.location.unregister(tag) |
|---|---|
| Type | Function |
| Description |
Отменяет регистрацию обратного вызова |
| Parameters |
|
| Returns |
|
| Source | extensions/location/location.lua строка 166 |
Constructors
new
| Signature | hs.location.new() -> locationObject |
|---|---|
| Type | Constructor |
| Description |
Создаёт новый объект location, который может получать обратные вызовы независимо от другого использования Hammerspoon служб определения местоположения. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 221 |
Methods
addMonitoredRegion
| Signature | hs.location:addMonitoredRegion(regionTable) -> locationObject | nil |
|---|---|
| Type | Method |
| Description |
Добавляет область для мониторинга службами определения местоположения |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 358 |
callback
| Signature | hs.location:callback(fn) -> locationObject |
|---|---|
| Type | Method |
| Description |
Устанавливает или удаляет функцию обратного вызова для этого объекта locationObject |
| Parameters |
|
| Returns |
|
| Source | extensions/location/location.lua строка 461 |
currentRegion
| Signature | hs.location:currentRegion() -> identifier | nil |
|---|---|
| Type | Method |
| Description |
Возвращает строковый идентификатор текущей области |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 436 |
distanceFrom
| Signature | hs.location:distanceFrom(locationTable) -> distance | nil |
|---|---|
| Type | Method |
| Description |
Включить обратные вызовы для изменений/уточнений местоположения для этого объекта locationObject |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 300 |
location
| Signature | hs.location:location() -> locationTable | nil |
|---|---|
| Type | Method |
| Description |
Возвращает текущее местоположение |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 495 |
monitoredRegions
| Signature | hs.location:monitoredRegions() -> table | nil |
|---|---|
| Type | Method |
| Description |
Возвращает таблицу, содержащую regionTables для областей, которые в данный момент отслеживаются для этого объекта locationObject |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 321 |
removeMonitoredRegion
| Signature | hs.location:removeMonitoredRegion(identifier) -> locationObject | false | nil |
|---|---|
| Type | Method |
| Description |
Удаляет отслеживаемую область из сервисов геолокации |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 406 |
startTracking
| Signature | hs.location:startTracking() -> locationObject |
|---|---|
| Type | Method |
| Description |
Включить обратные вызовы для изменений/уточнений местоположения для этого объекта locationObject |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/location/location.lua строка 260 |
stopTracking
| Signature | hs.location:stopTracking() -> locationObject |
|---|---|
| Type | Method |
| Description |
Отключить обратные вызовы для изменений/уточнений местоположения для этого объекта locationObject |
| Parameters |
|
| Returns |
|
| Source | extensions/location/location.lua строка 281 |
© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.location.html