ОБНАРУЖЕНИЕ СОБЫТИЙ ГЕОЗОНЫ С ПОМОЩЬЮ ИЗМЕНЯЮЩИХСЯ УРОВНЕЙ ДОСТОВЕРНОСТИ
DETECTION OF GEOFENCE EVENTS BY VARIABLE CONFIDENCE LEVELS

УРОВЕНЬ ТЕХНИКИ
[0001] Поскольку вычислительная технология развивается, все больше и больше мощных мобильных устройств становятся доступными. Например, смартфоны становятся обычным явлением. Мобильность таких устройств привела в результате к различным типам разрабатываемой функциональности, таких как функциональность на основе местоположения, в которой некоторые действия предпринимаются устройством на основе местоположения устройства. В то время как эта функциональность имеет множество преимуществ, не обходится без проблем. Одной такой проблемой является то, что остается затруднительным определение точного местоположения устройства. Это может вести к ситуациям, в которых конкретные действия, которые должны быть предприняты на основе местоположения устройства, не предпринимаются, и/или ситуациям, в которых конкретные действия, которые не должны предприниматься на основе местоположения устройства, фактически предпринимаются, ведя к недоумению пользователя и плохому пользовательскому восприятию при использовании устройства.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0002] Данное краткое изложение сущности изобретения приведено для того, чтобы в упрощенной форме представить подборку идей, которые дополнительно описываются ниже в подробном описании. Это краткое изложение сущности изобретения не имеет намерением ни идентифицировать ключевые признаки или важнейшие признаки заявляемого изобретения, ни использоваться для ограничения объем заявляемого изобретения.
[0003] В соответствии с одним или более аспектами идентифицируется размер геозоны (например, интересующей области). Размер области неопределенности позиции для модуля определения местоположения также идентифицируется, область неопределенности позиции основывается на оцененной систематической погрешности местоположения для вычислительного устройства, предоставленной посредством модуля определения местоположения. Возникновение одного или более событий геозоны для геозоны (например, вход в геозону, выход из геозоны, пребывание в геозоне в течение конкретного интервала времени и т.д.) определяется на основе уровня достоверности, который изменяется на основе, по меньшей мере, частично как размера геозоны, так и размера области неопределенности позиции.
[0004] В соответствии с одним или более аспектами вычислительное устройство включает в себя хранилище данных, один или более модулей определения местоположения, и модуль обнаружения события геозоны. Хранилище данных конфигурируется, чтобы хранить данные геозоны для множества геозон, данные геозоны для каждой геозоны идентифицируют область геозоны. Один или более модулей определения местоположения, каждый, конфигурируются, чтобы предоставлять местоположение вычислительного устройства, местоположение вычислительного устройства имеет ассоциированную область неопределенности позиции. Модуль обнаружения события геозоны обнаруживает возникновение одного или более событий геозоны, по меньшей мере, для одной из множества геозон на основе уровня достоверности, который изменяется на основе, по меньшей мере, частично размера, по меньшей мере, одной из множества геозон и размера области неопределенности позиции.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0005] Одинаковые номера используются на всех чертежах для того, чтобы ссылаться на аналогичные признаки.
[0006] Фиг. 1 иллюстрирует примерную систему, в которой обнаружение событий геозоны с помощью изменяющихся уровней достоверности, обсуждаемое в данном документе, может быть использовано.
[0007] Фиг. 2 - это блок-схема, иллюстрирующая примерную систему, реализующую обнаружение событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления.
[0008] Фиг. 3 иллюстрирует примерный пользовательский интерфейс, который может быть отображен пользователю, чтобы предоставлять возможность пользователю выбирать, должны ли местоположения быть определены в соответствии с одним или более вариантами осуществления.
[0009] Фиг. 4 - это блок-схема последовательности операций, иллюстрирующая примерный процесс для обнаружения событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления.
[0010] Фиг. 5 - это блок-схема последовательности операций, иллюстрирующая другой примерный процесс для обнаружения событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления.
[0011] Фиг. 6 и 7 иллюстрируют примеры перекрывания областей неопределенности позиции и геозон в соответствии с одним или более вариантами осуществления.
[0012] Фиг. 8 иллюстрирует примерную таблицу, показывающую примерную достоверность, которая может быть достигнута для данной геозоны и различных модулей определения местоположения в соответствии с одним или более вариантами осуществления.
[0013] Фиг. 9 - это блок-схема последовательности операций, иллюстрирующая другой примерный процесс для обнаружения событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления.
[0014] Фиг. 10 иллюстрирует примерную таблицу, которая указывает желаемую точность местоположения для различных размеров геозоны в соответствии с одним или более вариантами осуществления.
[0015] Фиг. 11 иллюстрирует множество перекрывающихся геозон в соответствии с одним или более вариантами осуществления.
[0016] Фиг. 12 иллюстрирует примерную систему, которая включает в себя примерное вычислительное устройство, которое является показательным для одной или более систем и/или устройств, которые могут реализовывать различные технические приемы, описанные в данном документе.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0017] Обнаружение событий геозоны с помощью изменяющихся уровней достоверности обсуждается в данном документе. Местоположение вычислительного устройства определяется, и местоположение интересующей области идентифицируется. Интересующая область является географической областью, которая также называется геозоной. Точность определенного местоположения вычислительного устройства имеет ассоциированную неопределенность, таким образом, точная позиция вычислительного устройства не может быть в типичном варианте точно указана. В свете этой неопределенности, неопределенность, ассоциированная с определенным местоположением, оценивается относительно размера геозоны для того, чтобы определять, находится ли вычислительное устройство внутри геозоны или за пределами геозоны. На основе этого определения могут быть предприняты различные действия, если пользователь входит в геозону, выходит из геозоны, остается в геозоне, по меньшей мере, в течение порогового интервала времени, и т.д.
[0018] Определение того, находится ли вычислительное устройство внутри геозоны или за пределами геозоны, выполняется посредством изменения уровня достоверности на основе, по меньшей мере, частично размера геозоны. Уровень достоверности, который изменяется, может принимать различные формы, такие как пороговое значение достоверности, которое основывается на пропорции области геозоны к области неопределенности позиции, или насколько большая погрешность в точности модуля определения местоположения является приемлемой для области геозоны (и, таким образом, насколько большая достоверность существует в определении того, находится ли вычислительное устройство в или за пределами геозоны). Изменяя уровень достоверности, определение того, находится ли вычислительное устройство внутри или за пределами геозоны, применяется к геозонам различных размеров, предоставляя возможность уменьшения ложных сигналов тревоги (ситуаций, когда вычислительное устройство некорректно определяется как находящееся внутри геозоны), а также предоставляя возможность уменьшения пропущенных геозон (ситуаций, когда вычислительное устройство некорректно определяется как находящееся за пределами геозоны).
[0019] Фиг. 1 иллюстрирует примерную систему 100, в которой обнаружение событий геозоны с помощью изменяющихся уровней достоверности, обсуждаемое в данном документе, может быть использовано. Система 100 включает в себя вычислительное устройство 102, которое может быть любым из множества типов устройств, хотя типично является мобильным устройством. Например, вычислительное устройство 102 может быть смартфоном или другим беспроводным телефоном, портативным компьютером или нетбуком, планшетным компьютером или записной книжкой, миниатюрным компьютером, мобильной станцией, развлекательным устройством, устройством воспроизведения звука и/или видео, игровой консолью, передвижным компьютером и т.д. Вычислительное устройство 102 типично называется мобильным устройством, поскольку устройство 102 спроектировано или предназначено, чтобы перемещаться во множество различных местоположений (например, носится пользователем вместе с ним или ней, когда пользователь идет в различные местоположения).
[0020] Местоположение вычислительного устройства 102 может быть определено с помощью любого из множества различных технических приемов, таких как триангуляция беспроводной сети (например, Wi-Fi), сотовое позиционирование, позиционирование по глобальной навигационной спутниковой системе (GNSS), позиционирование по сетевому адресу (например, адресу протокола Интернета (IP)) и т.д., как обсуждается более подробно ниже. Различные технические приемы определения местоположения могут иметь различные систематические погрешности или ассоциированные неопределенности. Например, технический прием определения местоположения может быть точным до 10 метров (м) или 10 километров (км). Точная позиция вычислительного устройства 102, таким образом, точно не указывается, а иллюстрируется как область 104, окружающая вычислительное устройство 102. Область 104 представляет неопределенность в определенном местоположении или позиции вычислительного устройства 102, таким образом, хотя вычислительное устройство определяется как находящееся в конкретном местоположении или позиции (например, приблизительно в центре области 104), вычислительное устройство 102 может фактически быть где угодно в пределах области 104.
[0021] Система 100 также иллюстрирует множество геозон 112, 114, 116 и 118. Каждая геозона 112-118 может быть любым из множества различных интересующих мест для вычислительного устройства 102, пользователя вычислительного устройства 102, программы, работающей на вычислительном устройстве 102, и т.д. Например, геозона 112-118 может быть домом пользователя, местом работы пользователя, ресторанами или организациями, которые могут быть посещены пользователем, образовательными учреждениями, общественными службами (например, больницами или библиотеками), географическими местами (например, городами или штатами) и т.д.
[0022] Местоположение геозон 112-118 сохраняется или иначе доступно для вычислительного устройства 102. Следует отметить, что различные пользователи вычислительного устройства 102 могут необязательно иметь различные сохраненные или доступные геозоны. Вычислительное устройство 102 является мобильным и может входить и выходить из геозон 112-118. В любое данное время вычислительное устройство 102 может быть в одной из геозон 112-118 или не в геозоне. Если вычислительное устройство 102 определяется как находящееся в области, которая охватывает конкретную геозону, тогда вычислительное устройство 102 называется находящимся внутри или в пределах этой конкретной геозоны. Однако, если вычислительное устройство 102 определяется как не находящееся в области, которая охватывает конкретную геозону, тогда вычислительное устройство 102 называется находящимся за пределами или не в пределах этой конкретной геозоны. Также могут возникать ситуации, в которых две или более геозон перекрываются, в таком случае вычислительное устройство 102 может быть в двух или более геозонах 112-118 в одно время. Следует отметить, что иллюстрация фиг. 1 существует не в масштабе, и что геозоны 112-118 могут быть, и типично являются, значительно большими по размеру, чем вычислительное устройство 102.
[0023] В иллюстрированном примере область 104 не пересекает какую-либо из геозон 112-118, и, таким образом, вычислительное устройство 102 находится за пределами каждой из геозон 112-118. Однако, если область 104, по меньшей мере, частично перекрыла одну из геозон 112-118, тогда вычислительное устройство 102 возможно находится внутри геозоны, которая перекрывается. Определяется ли вычислительное устройство 102 как находящееся внутри геозоны или за пределами геозоны в таких ситуациях, определяется на основе изменяющихся уровней достоверности, как обсуждается более подробно ниже.
[0024] Фиг. 2 - это блок-схема, иллюстрирующая примерную систему 200, реализующую обнаружение событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления. Система 200 может быть реализована посредством одного устройства, такого как вычислительное устройство 102 на фиг. 1, или альтернативно множества устройств, таких как вычислительное устройство 102 и один или более серверных компьютеров, доступных по сети (например, сотовой или другой беспроводной телефонной сети, Интернету и т.д.). Система 200 включает в себя один или более модулей 202 определения местоположения, модуль 204 определения геозоны, модуль 206 обнаружения события геозоны, модуль 208 инициирования геозоны и хранилище 210 данных.
[0025] Хранилище 210 данных хранит различные данные, используемые посредством технических приемов, обсуждаемых в данном документе. Хранилище 210 данных может быть реализовано с помощью любого из множества различных устройств хранения, таких как системная память (например, оперативное запоминающее устройство (RAM)), флэш-память или другая твердотельная память, магнитные диски, оптические диски и т.д. Данные, сохраненные в хранилище 210 данных, идентифицируют множество геозон, включая в себя данные геозоны для каждой из множества геозон. Данные геозоны могут быть получены из различных источников, например, от распространителя или дилера хранилища 210 данных, который хранит данные в хранилище 210 данных, из программы, работающей на вычислительном устройстве, реализующем систему 200, от другого устройства или службы и т.д. Данные геозоны для геозоны описывают границу геозоны (включая в себя указание формы геозоны), а также критерии, которые должны быть удовлетворены для того, чтобы геозона была инициирована.
[0026] Критерии, которые должны быть удовлетворены, могут соответствовать вхождению устройства в геозону, выход из геозоны, пребывание в геозоне в течение конкретного интервала времени (например, по меньшей мере, порогового интервала времени, не более порогового интервала времени и т.д.), период времени для геозоны (например, время начала и время окончания, время начала и продолжительность), их комбинацию и т.д. Одно или более действий, которые предпринимаются в ответ на инициирование геозоны (удовлетворяемые критерии), могут также быть включены как часть данных геозоны. Любое из множества действий может быть предпринято, когда геозона инициируется, такое как уведомление конкретной программы, отображение конкретного контента или иное воспроизведение посредством вычислительного устройства, данные геозоны удаляются из хранилища 210 данных, их комбинации и т.д. Множество различных действий могут быть предприняты на основе способа, которым геозона инициируется, такие как одно действие, предпринятое в ответ на вхождение устройства в геозону, и другое действие, предпринятое в ответ на выход устройства из геозоны.
[0027] Границы геозоны могут быть указаны любым из множества различных способов. Например, геозона может быть указана как позиция (например, координаты широты и долготы) и радиус, как набор позиций (например, координаты широты и долготы углов геозоны), как последовательность векторов и т.д. В обсуждениях в данном документе ссылка выполняется на геозоны, приблизительно круглые по форме. Однако следует отметить, что геозоны могут быть любыми из множества правильных геометрических форм (например, треугольниками, прямоугольниками, восьмиугольниками и т.д.), другими геометрическими формами (например, произвольными формами или пятнами) и т.д.
[0028] Хранилище 210 данных иллюстрируется на фиг. 2 как являющееся частью системы 200. Следует отметить, что данные, хранящиеся в хранилище 210 данных, могут быть получены из программ 230 (например, из программ 230, когда они загружаются в вычислительное устройство, реализующее систему 200). Альтернативно, одна или более программ 230 могут включать в себя хранилище данных, которое используется в дополнение к или вместо хранилища 210 данных.
[0029] Геозоны могут быть использованы множеством различных способов. Например, геозона и действие, которое должно быть предпринято, могут предупреждать пользователя вычислительного устройства, реализующего, по меньшей мере, часть системы 200, когда он приближается к автобусной остановке, предоставлять пользователю купон, когда он входит в торговый центр или магазин, уведомлять родителя, когда его ребенок покинул школу или пришел домой, отображать информацию о погоде для текущего местоположения, когда пользователь путешествует в другой город, и т.д.
[0030] Модули 202 определения местоположения включают в себя один или более модулей, которые определяют местоположение вычислительного устройства 102. В иллюстрированном примере модули 202 определения местоположения включают в себя Wi-Fi-модуль 212, GNSS-модуль 214, модуль 216 сетевого адреса и сотовый модуль 218. Следует отметить, однако, что эти модули 212-218 являются примерами, и что модули 202 определения местоположения не должны включать каждый из модулей 212-218, и/или что модули 202 определения местоположения могут включать в себя один или более дополнительных модулей, которые определяют местоположение вычислительного устройства 102 различными способами. Например, модули определения местоположения могут включать в себя MEMS (микроэлектромеханические системы), камеры, микрофоны и т.д.
[0031] Wi-Fi-модуль 212 использует Wi-Fi-сигналы, например, триангуляцию Wi-Fi-сигналов, чтобы определять местоположение вычислительного устройства 102. Wi-Fi-модуль 212 может принимать сигналы от различных беспроводных точек доступа, включающие в себя идентификатор конкретной беспроводной точки доступа и/или конкретной беспроводной сети, из которой принимается сигнал. Например, беспроводная точка доступа может отправлять адрес управления доступом к среде (MAC) беспроводной точки доступа, идентификатор основных наборов служб (BSSID) беспроводной сети, поддерживаемой беспроводной точкой доступа, и т.д. Wi-Fi-модуль 212 может также измерять мощность (например, значения индикатора мощности принятого сигнала (RSSI)) этих принимаемых сигналов. Следует отметить, что Wi-Fi-модуль 212 может, в любое данное время для любой данной позиции вычислительного устройства, принимать сигналы от множества беспроводных точек доступа. Wi-Fi-модуль 212 может хранить или иначе осуществлять доступ к записи беспроводных точек доступа, мощностей сигнала и соответствующих местоположений, чтобы определять местоположение вычислительного устройства в любое конкретное данное время, беспроводные точки доступа, от которых сигналы принимаются, и мощность этих сигналов в конкретное данное время. Альтернативно, Wi-Fi-модуль 212 может предоставлять указание беспроводных точек доступа, от которых сигналы принимаются, и мощность этих сигналов в конкретное данное время удаленной службе (например, доступной через любую из множества различных типов сетей), которая определяет и возвращает Wi-Fi-модулю 212 указание местоположения вычислительного устройства в это конкретное данное время.
[0032] GNSS-модуль 214 использует GNSS-позиционирование, чтобы определять местоположение вычислительного устройства 102, определяя местоположение вычислительного устройства на основе конкретного числа спутников (например, четырех или более спутников), от которых GNSS-модуль 214 может принимать сигналы или иначе связываться. GNSS-модуль 214 может реализовывать GNSS-функциональность с помощью множества различных технологий, включающих в себя, но не только, систему глобального позиционирования (GPS), глобальную навигационную спутниковую систему (GLONASS), навигационную систему BeiDou (или Compass), систему позиционирования Galileo, их комбинацию и т.д. GNSS-модуль 214 работает любым из множества публичных и/или патентованных способов, чтобы определять, при наличии одного или более спутников, от которых GNSS-модуль 214 может принимать сигналы или иначе связываться в любое конкретное данное время, местоположение вычислительного устройства в это конкретное данное время.
[0033] Модуль 216 сетевого адреса использует позиционирование по сетевому адресу, чтобы определять местоположение вычислительного устройства 102. Используемый сетевой адрес может быть любым из множества сетевых адресов, таким как IP-адрес вычислительного устройства. Модуль 216 сетевого адреса может хранить или иначе осуществлять доступ к записи IP-адресов или диапазонов адресов и соответствующих местоположений, чтобы определять местоположение вычислительного устройства в любое конкретное время, при наличии IP-адреса, назначенного вычислительному устройству в конкретное данное время. Альтернативно, модуль 216 сетевого адреса может предоставлять указание IP-адреса вычислительного устройства в конкретное данное время удаленной службе (например, доступной через любую из множества различных типов сетей), которая определяет и возвращает модулю 216 сетевого адреса указание местоположения вычислительного устройства в это конкретное данное время.
[0034] Сотовый модуль 218 использует сотовое позиционирование, чтобы определять местоположение вычислительного устройства 102. Сотовый модуль 218 может принимать сигналы от различных сотовых приемопередатчиков, включающие в себя идентификатор конкретного сотового приемопередатчика (например, вышки сотовой связи или идентификатор приемопередатчика), от которого сигнал принят. Сотовый модуль 218 может также измерять мощность этих принятых сигналов. Следует отметить, что сотовый модуль 218 может, в любое данное время для любой данной позиции вычислительного устройства, принимать сигналы от множества сотовых приемопередатчиков. Сотовый модуль 218 может поддерживать или иначе осуществлять доступ к записи сотовых приемопередатчиков, мощностей сигнала и соответствующих местоположений, чтобы определять местоположение вычислительного устройства в любое конкретное время при наличии сотовых приемопередатчиков, от которых сигналы принимаются, и мощности этих сигналов в конкретное данное время. Альтернативно, сотовый модуль 218 может предоставлять указание приемопередатчиков, от которых сигналы принимаются, и мощность этих сигналов в конкретное данное время удаленной службе (например, доступной через любую из множества различных типов сетей), которая определяет и возвращает сотовому модулю 218 указание местоположения вычислительного устройства в это конкретное данное время. Дополнительно или альтернативно, сотовый модуль 218 может наблюдать за изменениями состояния при низкой мощности и предоставлять уведомления (например, модулю 206 обнаружения события геозоны), предоставляющие возможность обнаружения перемещения при низкой мощности без необходимости постоянного опроса.
[0035] Местоположения, определенные посредством модулей 202 определения местоположения, типично являются координатами широты и долготы, хотя местоположение может альтернативно быть указано другими способами. Каждый из модулей 202 определения местоположения имеет ассоциированную неопределенность в местоположении, которую он определяет, также называемую систематической погрешностью или оцененной систематической погрешностью местоположения. Величина этой неопределенности может быть определена различными способами, например, сообщается посредством самого модуля определения местоположения, предварительно конфигурируется в или иначе доступна другим модулям системы 200 (например, модулю 206 обнаружения события геозоны), и т.д. Неопределенность приводит в результате к области неопределенности позиции для местоположения, определенного посредством модуля определения местоположения, область неопределенности позиции является областью, в которой вычислительное устройство 102 может фактически быть для определенного местоположения. В одном или более вариантах осуществления область неопределенности позиции является приблизительно круглой областью с местоположением, определенным посредством модуля определения местоположения, являющимся приблизительно центром круглой области, и радиус приблизительно круглой области является радиусом погрешности, определенным в качестве неопределенности для модуля определения местоположения. Альтернативно, область неопределенности позиции может быть описана с помощью различных других правильных или других геометрических форм. Таким образом, область неопределенности позиции для модуля определения местоположения может быть функцией пространственного распределения погрешностей. Аппроксимация функции пространственного распределения погрешностей может быть плосковершинным распределением по области, хотя различные другие аппроксимации или описания функции пространственного распределения погрешностей могут альтернативно быть использованы.
[0036] Модуль 204 определения геозоны определяет одну или более геозон, идентифицированных в хранилище 210 данных, для которых определение должно выполняться относительно того, инициируется ли геозона. Данные для многочисленных различных геозон могут быть сохранены в хранилище 210 данных, и одна или более из этих геозон выбирается посредством модуля 204 определения геозоны. Модуль 204 определения геозоны может выполнять это определение множеством различных способов, например, на основе текущего расстояния между геозонами и вычислительным устройством, на основе размеров (охваченных областей) геозон, на основе которых геозона является самой (или почти самой) точной, как обсуждается более подробно ниже, и т.д. Одна или более геозон, которые определяются посредством модуля 204, являются геозонами, которые считаются более вероятными для входа или выхода на основе различных критериев, таких как текущее местоположение вычислительного устройства, и такие одна или более геозон могут быть фокусом модуля 204 до тех пор, пока критерии не изменятся. Однако следует отметить, что модуль 204 определения геозоны может определять, инициируется ли геозона, для любой из геозон в хранилище 210 данных.
[0037] Модуль 206 обнаружения события геозоны получает текущее местоположение вычислительного устройства с регулярными или нерегулярными интервалами и обнаруживает, происходит ли событие геозоны. Эти интервалы могут быть выбраны динамически на основе текущих условий (например, приблизительного расстояния до ближайшей геозоны, энергетических характеристик для вычислительного устройства, оцененной скорости перемещения вычислительного устройства и т.д.). Событие геозоны соответствует вхождению устройства в геозону, выход из геозоны или пребывание в геозоне в течение конкретного интервала времени (например, находится в геозоне и не выходит из геозоны). Модуль 206 обнаружения события геозоны оценивает неопределенность, ассоциированную с определенным местоположением, относительно размера геозоны для того, чтобы определять, находится ли вычислительное устройство внутри геозоны или за пределами геозоны. Модуль 206 обнаружения события геозоны также отслеживает, находится ли вычислительное устройство внутри или за пределами геозоны, по времени, и, таким образом, узнает, переместилось ли вычислительное устройство изнутри геозоны за пределы геозоны, переместилось ли вычислительное устройство из-за пределов геозоны внутрь геозоны, интервал времени, в течение которого вычислительное устройство было внутри геозоны, и т.д.
[0038] Модуль 208 инициирования геозоны анализирует критерии, которые должны быть удовлетворены для того, чтобы геозона была инициирована, и определяет, удовлетворяются ли критерии. Это определение выполняется, по меньшей мере, частично по возникновению одного или более событий геозоны, которые определяются посредством модуля 206 обнаружения события геозоны. В ответ на удовлетворение критериев модуль 208 определяет, что геозона инициируется, и предпринимает соответствующее действие. Предпринятое действие может быть ассоциировано с данными геозоны для инициированной геозоны, сохраненными в хранилище 210 данных, или может быть определено другими способами, например, предварительно конфигурируется в модуле 208 инициирования геозоны, получается от другого модуля или устройства и т.д.
[0039] В одном или более вариантах осуществления действие, предпринятое модулем 208 инициирования геозоны в ответ на инициирование геозоны, является уведомлением одной или более программ 230. Одна или более программ 230 могут включать в себя многообразные различные типы программ, такие как приложения, модули или компоненты операционной системы и т.д. Одна или более программ 230, которые должны быть оповещены, могут быть идентифицированы различными способами, например, конфигурируются в модуле 208 инициирования геозоны, идентифицируются как часть данных геозоны для геозоны в хранилище 210 данных, получаются от другого модуля или службы и т.д. Программа 230 может быть оповещена о событии геозоны, которое произошло, а также необязательно о дополнительной информации (например, что вычислительное устройство было в пределах геозоны в течение, по меньшей мере, порогового интервала времени). Программа 230 может затем предпринимать действие, которое она желает, на основе инициируемой геозоны.
[0040] Хотя иллюстрированы как модули, отдельные от модулей 202 определения местоположения, следует отметить, что один или более модулей 204-208 могут альтернативно быть реализованы, по меньшей мере, частично в одном из модулей 202 определения местоположения. Например, по меньшей мере, часть одного или более модулей 204-208 может быть реализована в аппаратных компонентах GNSS-модуля 214 или Wi-Fi-модуля 212.
[0041] В одном или более вариантах осуществления местоположение определяется посредством модулей 202 определения местоположения только после приема согласия пользователя на это. Это согласие пользователя может быть явным согласием, когда пользователь предпринимает утверждающее действие на запрос, что местоположение должно быть определено посредством модулей 202 определения местоположения, прежде чем какое-либо такое местоположение определяется. Альтернативно, это согласие пользователя может быть явным отказом, когда пользователь предпринимает утверждающее действие на запрос, что местоположение не должно быть определено посредством модулей 202 определения местоположения. Если пользователь не выбирает явный отказ от определения местоположения, тогда подразумевается согласие пользователя, чтобы определять его или ее местоположение. Кроме того, следует отметить, что местоположение, определенное посредством модулей 202 определения местоположения, может быть сохранено в вычислительном устройстве, принимающем определенное местоположение (например, вычислительном устройстве 102 на фиг. 1), и не должно передаваться другим устройствам или службам.
[0042] Альтернативно, согласие пользователя может быть предоставлено для конкретных программ и отменено для других программ. В этом случае, информация о местоположении будет определяться только, когда пользователь дал согласие, по меньшей мере, одной программе, для которой используется отслеживание геозоны. Информация о местоположении используется, чтобы определять вход и/или выход только из тех геозон, которые принадлежат согласованным программам. Остальные геозоны из не получивших одобрения программ не отслеживаются.
[0043] Фиг. 3 иллюстрирует примерный пользовательский интерфейс, который может быть отображен пользователю, чтобы предоставлять возможность пользователю выбирать, должны ли местоположения быть определены в соответствии с одним или более вариантами осуществления. Отображается окно 300 управления местоположением, включающее в себя описание 302, объясняющее пользователю, почему информация о местоположении определяется. Ссылка 304 на заявление о конфиденциальности также отображается. Если пользователь выбирает ссылку 304, отображается заявление о конфиденциальности системы 200, объясняющее пользователю, как пользовательская информация поддерживается конфиденциальной.
[0044] Дополнительно, пользователь имеет возможность выбирать зависимый переключатель 306, чтобы явно соглашаться на определение информации о местоположении, или зависимый переключатель 308, чтобы явно отказываться от определения информации о местоположении. После того как зависимый переключатель 306 или 308 выбран, пользователь может выбирать кнопку 310 "OK", чтобы сохранять выбор. Следует понимать, что зависимые переключатели и кнопка "OK" являются лишь примерами пользовательских интерфейсов, которые могут быть представлены пользователю, чтобы явно соглашаться или явно отказываться от определения информации о местоположении, и что множество других традиционных технических приемов пользовательских интерфейсов могут альтернативно быть использованы. Система 200 на фиг. 2 затем переходит к определению местоположения вычислительного устройства, или неопределению местоположения вычислительного устройства, в соответствии с выбором пользователя.
[0045] Фиг. 4 - это блок-схема последовательности операций, иллюстрирующая примерный процесс 400 для обнаружения событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления. Процесс 400 выполняется посредством системы, такой как система 200 на фиг. 2, и может быть реализован в программном обеспечении, микропрограммном обеспечении, аппаратных средствах или их комбинации. Процесс 400 показан как набор этапов и не ограничивается показанным порядком для выполнения операций и различных этапов. Процесс 400 является примерным процессом для обнаружения событий геозоны с помощью изменяющихся уровней достоверности; дополнительные обсуждения обнаружения событий геозон с помощью изменяющихся уровней достоверности включены в данный документ со ссылкой на различные чертежи.
[0046] В процессе 400 геозона и ее размер идентифицируются (этап 402). Идентифицированная геозона является геозоной, выбранной посредством модуля 204 определения геозоны на фиг. 2. Размер геозоны соответствует области, охватываемую геозоной (область в границах геозоны), и может быть идентифицирована любым из множества различных способов. Например, размер геозоны может быть сохранен как часть данных геозоны в хранилище 210 данных на фиг. 2, размер геозоны может быть определен на этапе 402 на основе описания области геозоны, включенного в данные геозоны в хранилище 210 данных, и т.д. Различные значения могут быть легко определены с учетом размера геозоны и формы границ геозоны, такие как перекрывание между геозоной и областью неопределенности позиции для местоположения вычислительного устройства.
[0047] Область неопределенности текущей позиции и ее размер для модуля определения местоположения идентифицируется (этап 404). Область неопределенности позиции может быть описана различными способами с помощью различных форм, функций и т.д., как обсуждалось выше. Модуль определения местоположения на этапе 404 является модулем определения местоположения, предоставляющим местоположение вычислительного устройства в целях определения событий геозоны для геозоны (геозоны, для которой размер идентифицирован на этапе 402). Область неопределенности позиции может быть идентифицирована на основе неопределенности модуля определения местоположения, определенной различными способами, как обсуждено выше. Размер области неопределенности позиции соответствует области, охваченную областью неопределенности позиции, и может быть идентифицирована любым из множества различных способов. Например, размер области неопределенности позиции может быть предоставлен посредством модуля определения местоположения, размер области неопределенности позиции может быть определен на этапе 404 на основе описания области неопределенности позиции, и т.д.
[0048] События геозоны определяются на основе уровня достоверности, который изменяется на основе, по меньшей мере, частично размера геозоны и размера области неопределенности позиции (этап 406). Уровень достоверности может принимать различные формы. Например, уровень достоверности может быть пороговым значением достоверности, которое основывается на пропорции области геозоны к области неопределенности позиции (например, как обсуждается ниже со ссылкой на фиг. 5). В качестве другого примера, уровень достоверности может быть тем, насколько большая погрешность в точности модуля определения местоположения приемлема для области геозоны, и, таким образом, насколько большая достоверность существует в определении того, находится ли вычислительное устройство внутри или за пределами геозоны (например, как обсуждалось ниже со ссылкой на фиг. 9).
[0049] Фиг. 5 - это блок-схема последовательности операций, иллюстрирующая примерный процесс 500 для обнаружения событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления. В процессе 500 уровень достоверности является пороговым значением достоверности, которое изменяется на основе пропорции области геозоны к области неопределенности текущей позиции. Когда пропорция увеличивается, пороговое значение достоверности увеличивается, а когда пропорция уменьшается, пороговое значение достоверности уменьшается.
[0050] Процесс 500 выполняется посредством системы, такой как система 200 на фиг. 2, и может быть реализован в программном обеспечении, микропрограммном обеспечении, аппаратных средствах или их комбинации. Процесс 500 показан как набор этапов и не ограничивается показанным порядком для выполнения операций и различных этапов. Процесс 500 является примерным процессом для обнаружения событий геозоны с помощью изменяющихся уровней достоверности; дополнительные обсуждения обнаружения событий геозон с помощью изменяющихся уровней достоверности включены в данный документ со ссылкой на различные чертежи.
C
[0051] Различные значения достоверности обсуждаются в данном документе, такие как приемлемое значение достоверности, значение достоверности для местоположения и пороговое значение достоверности. Значение достоверности формируется на основе области перекрывания между областью неопределенности позиции для местоположения вычислительного устройства и геозоной, а также на основе области неопределенности позиции для местоположения вычислительного устройства. Например, значение  достоверности может быть вычислено с помощью следующего уравнения:
где  соответствует области перекрывания между областью неопределенности позиции для местоположения вычислительного устройства и геозоной, а  соответствует области неопределенности позиции для местоположения вычислительного устройства.
[0052] В процессе 500 геозона и ее размер идентифицируются (этап 502). Идентифицированная геозона является геозоной, выбранной посредством модуля определения геозоны, и ее размер может быть определен различными способами аналогично обсуждению выше относительно этапа 402 на фиг. 4.
[0053] Модуль определения местоположения для использования выбирается (этап 504). Модуль определения местоположения выбирается на основе приемлемого уровня достоверности, который является уровнем достоверности, который модуль определения местоположения должен быть способен обеспечить для того, чтобы быть выбранным на этапе 504. Приемлемый уровень достоверности может быть определен различными способами, например, эмпирически разработчиком системы 200 на фиг. 2. Приемлемый уровень достоверности может необязательно быть изменен, например, пользователем или администратором системы 200, создателем геозоны (например, идентифицирующим приемлемый уровень достоверности в данных геозоны для геозоны), и т.д. В одном или более вариантах осуществления приемлемым уровнем достоверности является 1%, хотя этот приемлемый уровень достоверности является примером, и другие приемлемые уровни достоверности могут альтернативно быть использованы.
2
2
[0054] Обеспечивает ли конкретный модуль определения местоположения приемлемый уровень достоверности, может быть легко определено с учетом размера геозоны и области неопределенности позиции для местоположений, предоставленных посредством модуля определения местоположения. Например, с помощью уравнения (1) выше, предположим наибольшее возможное перекрывание между областью неопределенности позиции для местоположений, предоставленных посредством модуля определения местоположения, и геозоной и предположим приемлемый уровень достоверности, равный 1%, если площадь геозоны равна 1 м, и модуль определения местоположения предоставляет область неопределенности позиции для местоположений, равную 100 м, тогда уровень достоверности, обеспечиваемый посредством модуля определения местоположения, будет равен 1%;
2
2
и модуль определения местоположения обеспечивает примерный приемлемый уровень достоверности, равный 1%. В качестве другого примера, если площадь геозоны равна 1 м, и модуль определения местоположения предоставляет область неопределенности позиции для местоположений, равную 4000000 м, тогда уровень достоверности, обеспечиваемый модулем определения местоположения, будет равен 0,00000025%:
и модуль определения местоположения не обеспечивает примерный приемлемый уровень достоверности, равный 1%.
[0055] Таким образом, система 200 может динамически переключаться между модулями определения местоположения на основе приемлемого уровня достоверности, обеспечиваемого этими модулями определения местоположения, и размера геозоны. Если один модуль определения местоположения обеспечивает приемлемый уровень достоверности, тогда этот один модуль определения местоположения выбирается на этапе 504. Однако в ситуациях, в которых множество модулей определения местоположения обеспечивают приемлемые уровни достоверности, выбирается один из этого множества модулей определения местоположения. То, какой из множества модулей определения местоположения выбирается в таких ситуациях, может быть определено различными способами на основе различных факторов, таких как модуль определения местоположения, который расходует наименьшее количество энергии при работе, модуль определения местоположения, который предоставляет местоположение в кратчайшем интервале времени, и т.д.
[0056] Область неопределенности позиции и ее размер для модуля определения местоположения идентифицируется (этап 506). Модуль определения местоположения на этапе 506 является модулем определения местоположения, выбранным на этапе 504. Область неопределенности позиции может быть идентифицирована на основе неопределенности или точности модуля определения местоположения, определенной различными способами, как обсуждено выше. Размер области неопределенности позиции соответствует области, охватываемой областью неопределенности позиции, и может быть идентифицирован любым из множества различных способов. Например, размер области неопределенности позиции может быть предоставлен посредством модуля определения местоположения, размер области неопределенности позиции может быть определен на этапе 506 на основе описания области неопределенности позиции, и т.д.
[0057] Значение достоверности для указания того, была ли геозона нарушена (вычислительное устройство вошло в геозону), определяется (этап 508). Значение достоверности для условия нарушения геозоны может быть определено с помощью уравнения (1) выше, полагаясь на фактическое перекрывание между областью неопределенности позиции для определенного местоположения вычислительного устройства и геозоной.
[0058] Фиг. 6 и 7 иллюстрируют примеры перекрывания областей неопределенности позиции и геозон в соответствии с одним или более вариантами осуществления. Фиг. 6 иллюстрирует примерную геозону 602 и примерную область 604 неопределенности позиции для определенного местоположения 606. Фактическое перекрывание между областью 604 неопределенности позиции и геозоной 602 иллюстрируется с помощью штриховки наискось. Фиг. 7 иллюстрирует примерную геозону 702 и примерную область 704 неопределенности позиции для определенного местоположения 706. Фактическое перекрывание между областью 704 неопределенности позиции и геозоной 702 иллюстрируется с помощью штриховки наискось.
[0059] Обращаясь к фиг. 5, пороговое значение достоверности, которое изменяется относительно пропорции размеров области неопределенности позиции местоположения и геозоны, определяется (этап 510). Таким образом, пороговое значение достоверности изменяется на основе размеров области неопределенности позиции и геозоны. Например, пороговое значение достоверности увеличивается, когда пропорция размера геозоны к размеру области неопределенности позиции увеличивается, таким образом, чем больше область геозоны, тем больше область неопределенности позиции, тем выше пороговое значение неопределенности.
a
[0060] В одном или более вариантах осуществления пороговое значение неопределенности формируется на основе отношения размера области геозоны (которая определена на этапе 502) к размеру области неопределенности позиции (которая определена на этапе 506). Например, значение  отношения может быть вычислено с помощью следующего уравнения или формулы:
где  соответствует области геозоны, а  соответствует области неопределенности позиции для местоположения вычислительного устройства.
a
a
a
a
[0061] Пороговое значение конфиденциальности может быть определено различными способами на основе значения  отношения. Например, различные значения  отношения могут быть определены для различных областей геозоны и областей неопределенности позиции. Определенные значения  отношения и предполагаемые уровни достоверности могут быть использованы, чтобы формировать формулу, которая описывает отношение между определенными значениями  отношения и предполагаемыми пороговыми значениями достоверности. Предполагаемые пороговые значения достоверности могут быть определены множеством различных способов, например, эмпирически разработчиком системы 200.
a
a
[0062] Таблица 1 иллюстрирует пример предполагаемых пороговых уровней достоверности для различных значений  отношения. Следует отметить, что предполагаемые пороговые уровни достоверности в Таблице 1 являются примерами, и что другие значения могут альтернативно быть использованы. В Таблице 1 уровень достоверности "необнаруживаемый" ссылается на событие геозоны, которое не может быть обнаружено для соответствующих значений  отношения.
Таблица 1
значение <i>a</i>
Предполагаемый пороговый уровень достоверности
0.0001
необнаруживаемый
0.01
1
0.0625
6.25
0.1
10
0.5
20
1
30
2
50
4
66
5
75
8
90
10
100
100
100
150
100
1000
100
a
a
a
a
[0063] С учетом определенных значений  отношения и предполагаемых пороговых уровней достоверности, формула, которая описывает соотношение между определенными значениями  отношения и предполагаемыми пороговыми уровнями достоверности, может быть сформирована любым из множества различных способов. Например, определенные значения  отношения и соответствующие предполагаемые пороговые уровни достоверности могут быть нанесены на график и приблизительно наилучшая эмпирическая кривая определена, формула для определенной линии является формулой, которая описывает соотношение между определенными значениями  отношения и предполагаемыми пороговыми уровнями достоверности.
a
[0064] В одном или более вариантах осуществления формула, которая описывает соотношение между определенными значениями  отношения и предполагаемыми пороговыми уровнями достоверности, имеет следующую форму:
M
n
M
n
M
n
где  является пороговым значением достоверности,  - это значение коэффициента, а  - это степень или индексное значение. Всевозможные различные значения  коэффициентов и значения  степени могут быть использованы. Например, значение  коэффициента может быть 30,704, а значение  степени может быть 0,5371. Однако следует отметить, что они являются примерными значениями, и что другие значения коэффициента и степени могут альтернативно быть использованы.
[0065] Фиг. 8 иллюстрирует примерную таблицу 800, показывающую примерную достоверность (например, приблизительно максимальную достоверность), которая может быть достигнута с учетом радиуса геозоны (строки таблицу 800) и различных модулей определения местоположения (столбцы таблицы 800) в соответствии с одним или более вариантами осуществления. Следует понимать, что таблица 800 является примером значений, и другие пороговые значения, размеры геозон и/или области неопределенности позиции могут альтернативно быть использованы. Каждая строка таблицы 800 существует для конкретной геозоны, которая может быть окружена почти круглой областью и имеет радиус, который идентифицирован в таблице 800. Примеры конкретных геозон также иллюстрируются. Каждый столбец таблицы 800 существует для конкретной области неопределенности позиции, которая является приблизительно круглой областью и имеет радиус, который идентифицирован в таблице 800. Примеры источников местоположения (различных модулей определения местоположения или различных способов определения местоположений) для конкретных областей неопределенности позиции также иллюстрируются.
2
2
[0066] В качестве примера, таблица 800 показывает, что значение достоверности, которое может быть достигнуто для геозоны, имеющей радиус 10 м (и, таким образом, площадь, равную  м), и модуля определения местоположения с областью неопределенности позиции, имеющей радиус 50 м (и, таким образом, площадь  м), равно 5,45. Значения в таблице 800 "N/A" указывают, что приемлемое значение достоверности не может быть удовлетворено посредством модуля определения местоположения для геозоны.
[0067] Обращаясь к фиг. 5, с учетом значения достоверности, определенного для указания того, была ли нарушена геозона, на этапе 508, и порогового значения достоверности, определенного на этапе 510, проверка выполняется относительно того, удовлетворяет ли определенное значение достоверности пороговому значению достоверности (этап 512). Определенное значение достоверности удовлетворяет пороговому значению достоверности, если, например, определенное значение достоверности больше или равно пороговому значению достоверности. Альтернативно, определенное значение достоверности и пороговые значения достоверности могут быть реализованы различными способами, такими как отрицательные числа или вычитанием из другого базисного числа, так что определенное значение достоверности удовлетворяет пороговому значению достоверности, если определенное значение достоверности меньше или равно пороговому значению достоверности.
[0068] Если определенное значение достоверности удовлетворяет пороговому значению достоверности, тогда местоположение, предоставленное посредством модуля определения местоположения, определяется как находящееся в пределах геозоны (этап 514). Однако, если определенное значение достоверности не удовлетворяет пороговому значению достоверности, тогда местоположение, предоставленное посредством модуля определения местоположения, не приводит в результате к обнаружению события входа в геозону (этап 516).
[0069] Следует отметить, что, если определенное значение достоверности не удовлетворяет пороговому значению достоверности, тогда другие события геозоны могут быть обнаружены, такие как событие выхода из геозоны, событие пребывания в геозоне в течение конкретного интервала времени, и т.д. Альтернативно, местоположение, предоставленное посредством модуля определения местоположения, может не приводить в результате к обнаружению других событий геозоны, пока другие критерии не будут удовлетворены. Например, событие выхода из геозоны может не быть обнаружено до тех пор, пока определенное значение достоверности не будет приблизительно равно 0% (например, не существует практически перекрывания между областью неопределенности позиции для определенного местоположения вычислительного устройства и геозоной). В качестве другого примера, событие пребывания в геозоне может не быть обнаружено до тех пор, пока событие входа в геозону для геозоны не будет обнаружено, и, по меньшей мере, пороговый интервал времени не пройдет без обнаружения события выхода из геозоны для геозоны.
[0070] Фиг. 9 - это блок-схема последовательности операций, иллюстрирующая примерный процесс 900 для обнаружения событий геозоны с помощью изменяющихся уровней достоверности в соответствии с одним или более вариантами осуществления. В процессе 900 уровень достоверности является тем, насколько большая погрешность в точности модуля определения местоположения приемлема для области геозоны (и, таким образом, насколько большая достоверность существует в определении того, находится ли вычислительное устройство внутри или за пределами геозоны). Когда размер геозоны увеличивается, величина погрешности в точности модуля определения местоположения, которая является приемлемой, может увеличиваться (приемлемая область неопределенности текущей позиции может быть увеличена), предоставляя возможность использования менее точных модулей определения местоположения. Когда размер геозоны уменьшается, величина погрешности в точности модуля определения местоположения, которая является приемлемой, может быть уменьшена (приемлемая область неопределенности текущей позиции может быть уменьшена), так что более точные модули определения местоположения используются.
[0071] Процесс 900 выполняется посредством системы, такой как система 200 на фиг. 2, и может быть реализован в программном обеспечении, микропрограммном обеспечении, аппаратных средствах или их комбинации. Процесс 900 показан как набор этапов и не ограничивается показанным порядком для выполнения операций и различных этапов. Процесс 900 является примерным процессом для обнаружения событий геозоны с помощью изменяющихся уровней достоверности; дополнительные обсуждения обнаружения событий геозон с помощью изменяющихся уровней достоверности включены в данный документ со ссылкой на различные чертежи.
[0072] В процессе 900 геозона и ее размер идентифицируются (этап 902). Идентифицированная геозона является геозоной, выбранной посредством модуля определения геозоны, и ее размер может быть определен различными способами аналогично обсуждению выше относительно этапа 402 на фиг. 4.
[0073] С учетом размера геозоны желаемая точность местоположения идентифицируется (этап 904). Эта желаемая точность местоположения может быть идентифицирована множеством различных способов, таких как формула, таблица и т.д. Эта желаемая точность местоположения может также быть основана на близости геозоны, как обсуждается более подробно ниже. В одном или более вариантах осуществления система 200 сконфигурирована с или имеет доступ к таблице желаемой точности местоположения, которая указывает желаемую точность местоположения для различных размеров геозоны. Таблица желаемой точности местоположения может быть заполнена желаемыми точностями местоположения для различных размеров геозоны различными способами, например, эмпирически разработчиком системы 200.
[0074] Фиг. 10 иллюстрирует примерную таблицу 1000, которая указывает желаемую точность местоположения (например, приблизительно минимальную точность местоположения) для различных размеров геозоны в соответствии с одним или более вариантами осуществления. Каждая строка таблицы 1000 существует для конкретной геозоны, которая является приблизительно круглой областью и имеет радиус, который идентифицирован в таблице 1000. Столбец 1002 таблицы 1000 иллюстрирует примеры конкретных геозон. Столбец 1004 таблицы 1000 иллюстрирует примерные желаемые точности (например, приблизительно минимальную точность местоположения) для геозон. В качестве примера, таблица 1000 показывает, что для геозоны с диапазоном радиуса 50 м или менее желаемая точность местоположения равна двойному радиусу геозоны.
[0075] Таблица 1000 иллюстрирует геозоны, которые являются приблизительно круглыми областями и имеют конкретный радиус, и желаемые точности в единицах радиусов приблизительно круглой области неопределенности позиции местоположения. Следует отметить, что они являются примерами, и что геозоны и/или желаемые точности могут быть идентифицированы другими способами для других форм (например, как площади вместо радиусов).
[0076] Хотя конкретные значения иллюстрируются в таблице 1000, следует отметить, что другие значения могут альтернативно быть использованы. Например, вместо отдельных значений пропорциональные значения могут быть использованы. Например, если диапазон радиуса геозоны равен 500 м, и желаемая точность равна 500 м, тогда желаемая точность для геозоны с диапазоном радиуса 250 м может быть 250 м, желаемая точность для геозоны с диапазоном радиуса 125 м может быть 125 м, и т.д.
[0077] Обращаясь к фиг. 9, модуль определения местоположения для использования выбирается на основе идентифицированной желаемой точности местоположения (этап 906). Различные технические приемы определения местоположения могут иметь различную ассоциированную неопределенность в своих точностях, как обсуждалось выше, и с учетом желаемой точности местоположения модуль определения местоположения, который обеспечивает желаемую точность местоположения, может быть легко идентифицирован (например, модуль определения местоположения, имеющий ассоциированную неопределенность (например, радиус погрешности), которая меньше желаемой точности местоположения). Если один модуль определения местоположения обеспечивает желаемую точность местоположения, тогда этот один модуль определения местоположения выбирается на этапе 906. Однако в ситуациях, в которых множество модулей определения местоположения обеспечивают желаемую точность местоположения, один из этого множества модулей определения местоположения выбирается. Какой из множества модулей определения местоположения выбирается, может быть определено различными способами, например, модуль определения местоположения, который потребляет наименьшее количество энергии при работе, модуль определения местоположения, который предоставляет местоположение в кратчайшем интервале времени, и т.д.
[0078] Область неопределенности позиции для модуля определения местоположения идентифицируется (этап 908). Модуль определения местоположения на этапе 908 является модулем определения местоположения, выбранным на этапе 906. Область неопределенности позиции может быть идентифицирована на основе неопределенности модуля определения местоположения, определенной различными способами, как обсуждено выше.
[0079] Проверка выполняется относительно того, приемлема ли область неопределенности позиции для модуля определения местоположения (этап 910). Приемлема ли область неопределенности позиции, может быть определено множеством различных способов, таких как формула, таблица и т.д. В одном или более вариантах осуществления система 200 конфигурируется с или имеет доступ к таблице приемлемой неопределенности, которая указывает приемлемые неопределенности для различных размеров геозон. Таблица приемлемой неопределенности может быть заполнена приемлемыми неопределенностями для различных размеров геозон различными способами, например, эмпирически разработчиком системы 200.
[0080] В одном или более вариантах осуществления таблица приемлемой неопределенности включена как часть таблицы 1000 на фиг. 10. Приемлемые неопределенности иллюстрируются как столбец 1006 в таблице 1000 в единицах радиусов приблизительно круглой области неопределенности позиции местоположения. Следует отметить, что они являются примерами, и что приемлемые погрешности могут быть идентифицированы другими способами для других форм (например, как площади вместо радиусов).
[0081] Если область неопределенности позиции, полученная от модуля определения местоположения, является неприемлемой, тогда геозона не инициируется (этап 912). Процесс 900 может завершаться или альтернативно может возвращаться к этапу 906, чтобы пытаться выбрать другой модуль определения местоположения для использования (например, имеющий более высокую точность, чем ранее выбранный модуль определения местоположения).
[0082] Однако, если область неопределенности позиции для модуля определения местоположения приемлема, тогда область неопределенности позиции для местоположения используется, чтобы определять, находится ли местоположение внутри или за пределами геозоны. Если местоположение было ранее за пределами геозоны, таким образом, событием геозоны будет вход в геозону, тогда приблизительный центр области неопределенности позиции используется, чтобы определять, находится ли местоположение вычислительного устройства внутри или за пределами геозоны (этап 914). Если приблизительный центр области неопределенности позиции находится внутри геозоны, тогда местоположение определяется как находящееся внутри геозоны, а если приблизительный центр области неопределенности позиции не находится внутри геозоны, тогда местоположение определяется как находящееся за пределами геозоны.
[0083] Если местоположение было ранее внутри геозоны, так что событие геозоны, которое будет обнаружено, будет выходом из геозоны (или пребывание в геозоне в течение конкретного интервала времени), тогда практически вся область неопределенности позиции используется, чтобы определять, находится ли местоположение вычислительного устройства внутри или за пределами геозоны (этап 916). Если практически вся область неопределенности позиции находится за пределами геозоны, тогда местоположение определяется как находящееся за пределами геозоны, а если практически вся область неопределенности позиции не находится за пределами геозоны, тогда местоположение остается неизменным как находящееся внутри геозоны.
[0084] Следует отметить, что, хотя этап 914 обсуждается со ссылкой на приблизительный центр области неопределенности текущей позиции, находящейся внутри геозоны, а этап 916 обсуждается со ссылкой на практически всю область неопределенности позиции, находящуюся за пределами геозоны, различные фрагменты области неопределенности позиции могут быть использованы. Например, практически вся область неопределенности позиции или только фрагмент области неопределенности позиции могут быть использованы, чтобы определять, находится ли вычислительное устройство внутри геозоны, на этапе 914. В качестве другого примера, приблизительный центр области неопределенности позиции или другой фрагмент области неопределенности позиции могут быть использованы, чтобы определять, находится ли вычислительное устройство за пределами геозоны, на этапе 916.
[0085] Также следует отметить, что в таблице 1000 столбец 1004 желаемых точностей для геозон и столбец 1006 приемлемых неопределенностей иллюстрируется. Одинаковые желаемые точности и приемлемые неопределенности могут быть использованы для определения как выхода из геозоны, так и входа в геозону. Альтернативно, различные желаемые точности и приемлемые неопределенности, которые могут быть использованы для выхода из геозоны, затем используются для входа в геозону. Например, столбец 1004 может быть желаемыми точностями для геозон, когда определяется вход в геозону, и таблица 1000 может включать в себя дополнительный столбец желаемых точностей для геозон, когда определяется выход из геозоны. Желаемые точности для геозон, когда определяется выход из геозоны, могут быть различными значениями, такими как удвоенные значения, перечисленные в столбце 1004 (например, для определения выхода из геозоны с диапазоном радиуса 35 м или менее желаемая точность может быть 70м х 2 = 140 м). В качестве другого примера, столбец 1006 может быть приемлемыми неопределенностями для геозон, когда определяется вход в геозону, и таблица 1000 может включать в себя дополнительный столбец приемлемых неопределенностей для геозон, когда определяется выход из геозоны. Приемлемые неопределенности для геозон, когда определяется выход из геозоны, могут быть различными значениями, такими как удвоенные значения, перечисленные в столбце 1006 (например, для определения выхода из геозоны с диапазоном радиуса 50 м или менее приемлемые неопределенности могут быть 150 м х 2 = 300 м).
[0086] Обращаясь снова к этапу 904, могут возникать ситуации, в которых множество различных геозон близки к вычислительному устройству (например, выбираются посредством модуля 204 определения геозоны на фиг. 2). В таких ситуациях одна из этого множества геозон выбирается в качестве геозоны, для которой желаемая точность местоположения идентифицируется на этапе 904, такая как геозона, которая является самой (или почти самой) точной. Фиг. 11 иллюстрирует пример этой ситуации.
[0087] Фиг. 11 иллюстрирует множество перекрывающихся геозон в соответствии с одним или более вариантами осуществления. Иллюстрируется текущее местоположение 1102 вычислительного устройства, и набор геозон 1104, 1106, 1108 и 1110 выбираются посредством модуля 204 определения геозоны на фиг. 2. Геозона 1110 является ближайшей к текущему местоположению 1102, а также имеет наибольшую желаемую точность местоположения из геозон 1104-1110. Геозона 1110 может быть выбрана в качестве геозоны, для которой желаемая точность местоположения идентифицируется на этапе 904. Альтернативно, вместо выбора геозоны 1110 в качестве геозоны, для которой желаемая точность местоположения идентифицируется на этапе 904, одна из геозон 1104-1108 выбирается.
[0088] Обращаясь к фиг. 9, то, какая геозона определяется как самая (или почти самая) точная, определяется на основе набора из множества геозон и набора приемлемых радиусов погрешности. Например, геозона, которая определяется как самая (или почти самая) точная, может быть определена посредством определения того, какая из множества геозон имеет наименьшее значение для следующего уравнения:
i
i
0
((расстояние(G) + A) - расстояние(G); 0 ≤ i ≤ n,
i
0
1
n
0
i
i
где "расстояние()"соответствует расстоянию между текущим местоположением вычислительного устройства и ближайшим краем геозоны в скобках, G - это геозона в наборе геозон {G, G, ..., G} в порядке расстояния от края наибольшей геозоны, при этом G является ближайшей геозоной к приблизительному центру текущего местоположения (например, геозона 1104 на фиг. 1), а A - это радиус приемлемой погрешности для геозоны A, который указан в таблице 1000 на фиг. 10.
[0089] Определение того, какая геозона является самой (или почти самой) точной, основывается на геозонах, которые являются приблизительно круглыми областями и имеют конкретные радиусы. Следует отметить, что они являются примерами, и что геозоны могут быть идентифицированы другими способами для других форм (например, как площади вместо радиусов).
0
1
n
[0090] Альтернативно, вместо выбора одной геозоны, для которой желаемая точность местоположения идентифицирована на этапе 904, желаемые точности местоположения для множества геозон могут быть объединены, чтобы идентифицировать желаемую точность местоположения на этапе 904. Эта комбинация может быть взвешенным значением набора ближайших геозон, таких как геозоны {G, G, ..., G}, каждая имеет свою желаемую точность местоположения, взвешенную на основе того, насколько близко геозона находится к текущему местоположению вычислительного устройства (например, с геозонами, более близкими к текущему местоположению вычислительного устройства, взвешиваемыми выше, чем геозоны дальше от текущего местоположения вычислительного устройства). Взвешенные желаемые точности местоположения могут затем быть объединены (например, сложены вместе), чтобы формировать желаемую точность местоположения для этапа 904.
[0091] Хотя конкретная функциональность обсуждается в данном документе со ссылкой на конкретные модули, следует отметить, что функциональность отдельных модулей, обсужденных в данном документе, может быть разделена на множество модулей, и/или, по меньшей мере, некоторая функциональность множества модулей может быть объединена в один модуль. Кроме того, следует отметить, что конкретный модуль, обсуждаемый в данном документе как выполняющий действие, включает в себя то, что конкретный модуль сам выполняет действие, или альтернативно то, что конкретный модуль задействует или иначе осуществляет доступ к другому компоненту или модулю, который выполняет действие (или выполняет действие совместно с этим конкретным модулем). Таким образом, конкретный модуль, выполняющий действие, включает в себя сам этот конкретный модуль, выполняющий действие, и/или другой модуль, задействованный, или к которому иначе осуществляет доступ этот конкретный модуль, выполняющий действие.
[0092] Фиг. 12 иллюстрирует примерную систему, в целом, по ссылке 1200, которая включает в себя примерное вычислительное устройство 1202, которое является показательным для одной или более систем и/или устройств, которые могут реализовывать различные технические приемы, описанные в данном документе. Вычислительное устройство 1202 может быть, например, сервером поставщика услуги, устройством, ассоциированным с клиентом (например, клиентским устройством), встроенной в кристалл системой и/или любым другим подходящим вычислительным устройством или вычислительной системой.
[0093] Примерное вычислительное устройство 1202, которое иллюстрировано, включает в себя систему 1204 обработки, один или более компьютерно-читаемых носителей 1206 и один или более I/O-интерфейсов 1208, которые соединены с возможностью обмена данными друг с другом. Хотя не показано, вычислительное устройство 1202 может дополнительно включать в себя системную шину или другую систему передачи данных и команд, которая соединяет различные компоненты друг с другом. Системная шина может включать в себя любую одну или комбинацию различных шинных структур, таких как шина памяти или контроллер памяти, периферийная шина, универсальная последовательная шина и/или процессорная или локальная шина, которая использует любую из множества шинных архитектур. Множество других примеров также рассматриваются, такие как управляющие и информационные шины.
[0094] Система 1204 обработки представляет функциональность, чтобы выполнять одну или более операций с помощью аппаратных средств. Соответственно, система 1204 обработки иллюстрируется как включающая в себя элементы 1210 аппаратных средств, которые могут быть сконфигурированы как процессоры, функциональные блоки и т.д. Она может включать в себя реализацию в аппаратных средствах в качестве специализированной интегральной микросхемы или другого логического устройства, сформированного с помощью одного или более полупроводников. Элементы 1210 аппаратных средств не ограничиваются материалами, из которых они сформированы, или механизмами обработки, используемыми в них. Например, процессоры могут быть составлены из полупроводника(ов) и/или транзисторов (к примеру, электронных интегральных схем (IC)). В этом контексте исполняемыми процессором инструкциями могут быть электронноисполняемые инструкции.
[0095] Компьютерно-читаемые носители 1206 иллюстрируются как включающие в себя память/хранилище 1212. Память/хранилище 1212 представляет емкость памяти/хранилища, ассоциированную с одним или более компьютерно-читаемыми носителями. Память/хранилище 1212 может включать в себя энергозависимые носители (такие как оперативное запоминающее устройство (RAM)) и/или энергонезависимые носители (такие как постоянное запоминающее устройство (ROM), флэш-память, оптические диски, магнитные диски и т.д.). Память/хранилище 1212 может включать в себя фиксированные носители (например, RAM, ROM, фиксированный жесткий диск и т.д.), а также съемные носители (например, флэш-память, съемный жесткий диск, оптический диск и т.д.). Компьютерно-читаемые носители 1206 могут быть сконфигурированы множеством других способов, как дополнительно описано ниже.
[0096] Интерфейс(ы) 1208 ввода/вывода представляют функциональность, чтобы предоставлять возможность пользователю вводить команды и информацию в вычислительное устройство 1202, а также предоставляют возможность представления информации пользователю и/или другим компонентам или устройствам с помощью различных устройств ввода/вывода. Примеры устройств ввода включают в себя клавиатуру, устройство управления курсором (например, мышь), микрофон (например, для голосовых вводов), сканер, сенсорную функциональность (например, емкостные или другие датчики, которые сконфигурированы, чтобы обнаруживать физическое касание), камеру (например, которая может применять видимые или невидимые длины волн, такие как инфракрасные частоты, чтобы обнаруживать движение, которое не подразумевает касание, в качестве жестов), и т.д. Примеры устройств вывода включают в себя устройство отображения (например, монитор или проектор), динамики, принтер, сетевую карту, тактильно-чувствительное устройство и т.д. Таким образом, вычислительное устройство 1202 может быть сконфигурировано множеством способов, как дополнительно описано ниже, чтобы поддерживать взаимодействие с пользователем.
[0097] Вычислительное устройство 1202 также включает в себя систему 1214 геозоны. Система 1214 геозоны предоставляет различную функциональность геозоны, включающую в себя обнаружение событий геозоны с помощью изменяющихся уровней достоверности, как обсуждено выше. Система 1214 геозоны может реализовывать, например, систему 200 на фиг. 2.
[0098] Различные технические приемы могут быть описаны в данном документе в общем контексте программного обеспечения, элементов аппаратных средств или программных модулей. Как правило, такие модули включают в себя процедуры, программы, объекты, элементы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Термины "модуль", "функциональность" и "компонент", когда используются в данном документе, как правило, представляют программное обеспечение, микропрограммное обеспечение, аппаратные средства или их комбинацию. Признаки технических приемов, описанных в данном документе, являются платформенно-независимыми, означающими, что технические приемы могут быть реализованы на множестве вычислительных платформ, имеющих множество процессоров.
[0099] Реализация описанных модулей и технических приемов может быть сохранена на или передаваться по некоей форме компьютерно-читаемых носителей. Компьютерно-читаемые носители могут включать в себя множество носителей, к которым может быть осуществлен доступ посредством вычислительного устройства 1202. В качестве примера, а не ограничения, компьютерно-читаемые носители могут включать в себя "компьютерно-читаемые носители хранения информации" и "компьютерно-читаемую среду передачи сигналов".
[00100] "Компьютерно-читаемые носители хранения информации" ссылаются на носители и/или устройства, которые предоставляют возможность устойчивого хранения информации, и/или хранилищу, которое является материальным, в противоположность простой передаче сигнала, несущим волнам или сигналам самим по себе. Таким образом, компьютерно-читаемые носители хранения информации относятся к ненесущим сигнал носителям. Компьютерно-читаемые носители хранения информации включают в себя аппаратные средства, такие как энергозависимые и энергонезависимые, съемные и несъемные носители и/или запоминающие устройства, реализованные способом или технологией, подходящей для хранения информации, такой как читаемые компьютером инструкции, структуры данных, программные модули, логические элементы/схемы или другие данные. Примеры компьютерно-читаемых носителей хранения информации могут включать в себя, но не только, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, жесткие диски, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или другое запоминающее устройство, материальные носители или изделие производства, подходящее, чтобы хранить желаемую информацию, и к которому может быть осуществлен доступ посредством компьютера.
[00101] "Компьютерно-читаемые среды передачи сигнала" соответствует несущей сигнал среде, которая сконфигурирована, чтобы передавать инструкции аппаратным средствам вычислительного устройства 1202, например, через сеть. Среда передачи сигналов типично может осуществлять компьютерно-читаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущие волны, информационные сигналы или другой механизм передачи. Среда передачи сигнала также включает в себя любую среду доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более своих характеристик, заданных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая среда, RF, инфракрасное излучение и другая беспроводная среда.
[00102] Как ранее описано, элементы 1210 аппаратных средств и компьютерно-читаемые носители 1206 представляют инструкции, модули, программируемую логику устройства и/или фиксированную логику устройства, реализованную в форме аппаратных средств, которая может быть применена в некоторых вариантах осуществления, чтобы реализовывать, по меньшей мере, некоторые аспекты технических приемов, описанных в данном документе. Элементы аппаратных средств могут включать в себя компоненты интегральной схемы или встроенной в кристалл системы, специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA), сложное программируемое логическое устройство (CPLD) и другие реализации в полупроводниковых или других аппаратных устройствах. В этом контексте, элемент аппаратных средств может работать как устройство обработки, которое выполняет программные задачи, определенные посредством инструкций, модулей и/или логики, осуществленной посредством элемента аппаратных средств, а также аппаратное устройство, используемое, чтобы хранить инструкции для исполнения, например, компьютерно-читаемые носители хранения информации, описанные ранее.
[00103] Комбинации вышеупомянутого могут также быть использованы, чтобы реализовывать различные технические приемы и модули, описанные в данном документе. Соответственно, программное обеспечение, аппаратные средства или программные модули и другие программные модули могут быть реализованы как одна или более инструкций и/или логика, осуществленная в некоторой форме компьютерно-читаемых носителей хранения и/или посредством одного или более элементов 1210 аппаратных средств. Вычислительное устройство 1202 может быть сконфигурировано, чтобы реализовывать конкретные инструкции и/или функции, соответствующие программным и/или аппаратным модулям. Соответственно, реализация модулей как модуля, который является исполняемым посредством вычислительного устройства 1202 в качестве программного обеспечения, может быть выполнена, по меньшей мере, частично в аппаратных средствах, например, посредством использования компьютерно-читаемых носителей хранения и/или элементов 1210 аппаратных средств системы обработки. Инструкции и/или функции могут быть исполняемыми/задействуемыми посредством одного или более изделий производства (например, одного или более вычислительных устройств 1202 и/или систем 1204 обработки), чтобы реализовывать технические приемы, модули и примеры, описанные в данном документе.
[00104] Как дополнительно иллюстрировано на фиг. 12, примерная система 1200 предоставляет возможность повсеместно распространенных окружений для цельного восприятия пользователем при работе приложений на персональном компьютере (PC), мобильном устройстве и/или других устройствах. Службы и приложения работают практически аналогично в этих окружениях для общего восприятия пользователем при переходе от одного устройства к следующему во время использования приложения, игры в видеоигру, просмотра видео и т.д.
[00105] В примерной системе 1200 множество устройств взаимосвязаны через центральное вычислительное устройство. Центральное вычислительное устройство может быть локальным для множества устройств или может быть расположено удаленно от множества устройств. В одном или более вариантах осуществления центральное вычислительное устройство может быть облаком из одного или более серверных компьютеров, которые соединены с множеством устройств через сеть, Интернет или другую линию передачи данных.
[00106] В одном или более вариантах осуществления эта архитектура взаимосвязи предоставляет возможность доставки функциональности между множеством устройств, чтобы обеспечивать общее и цельное восприятие пользователю множества устройства. Каждое из множества устройств может иметь различные физические требования и возможности, и центральное вычислительное устройство использует платформу, чтобы предоставлять возможность доставки восприятия устройству, которое является как специализированным для устройства, так еще и общим для всех устройств. В одном или более вариантах осуществления создается класс целевых устройств, и восприятия адаптируются для родового класса устройств. Класс устройств может быть определен по физическим признакам, типам использования или другим общим характеристикам устройств.
[00107] В различных реализациях вычислительное устройство 1202 может предполагать множество различных конфигураций, например, для компьютера 1216 или мобильных 1218 использований. Каждая из этих конфигураций включает в себя устройства, которые могут иметь, в целом, различные конструкции и возможности, и, таким образом, вычислительное устройство 1202 может быть сконфигурировано согласно одному или более различным классам устройств. Например, вычислительное устройство 1202 может быть реализовано как компьютерный 1216 класс для устройства, который включает в себя персональный компьютер, настольный компьютер, многоэкранный компьютер, портативный компьютер, нетбук и т.д. Вычислительное устройство 1202 может также быть реализовано как мобильный 1218 класс устройства, который включает в себя мобильные устройства, такие как мобильные телефон, переносной музыкальный проигрыватель, переносное игровое устройство, планшетный компьютер, носимое устройство, многоэкранный компьютер и т.д.
[00108] Технологии, описанные в данном документе, могут поддерживаться посредством этих различных конфигураций вычислительного устройства 1202 и не ограничены конкретными примерами технологий, описанных в данном документе. Эта функциональность может также быть реализована вся или частично посредством использования распределенной системы, например, в "облаке" 1222 через платформу 1224, как описано ниже.
[00109] Облако 1222 включает в себя и/или представляет платформу 1224 для ресурсов 1226. Платформа 1224 абстрагирует лежащую в основе функциональность аппаратных средств (например, серверов) и ресурсов программного обеспечения облака 1222. Ресурсы 1226 могут включать в себя приложения и/или данные, которые могут быть использованы, в то время как компьютерная обработка выполняется на серверах, которые являются удаленными от вычислительного устройства 1202. Ресурсы 1226 могут также включать в себя службы, предоставляемые через Интернет и/или через абонентскую сеть, такую как сотовая или Wi-Fi-сеть.
[00110] Платформа 1224 может абстрагировать ресурсы и функции, чтобы соединять вычислительное устройство 1202 с другими вычислительными устройствами. Платформа 1224 может также служить для того, чтобы абстрагировать масштабирование ресурсов, чтобы обеспечивать соответствующий уровень масштабирования встречающемуся требованию ресурсов 1226, которые реализованы через платформу 1224. Соответственно, во взаимосвязанном варианте осуществления устройства реализация функциональности, описанной в данном документе, может быть распределена по всей системе 1200. Например, функциональность может быть реализована частично на вычислительном устройстве 1202, а также через платформу 1224, которая абстрагирует функциональность облака 1222.
[00111] Хотя изобретение описано на языке, характерном для структурных признаков и/или технологических этапов, следует понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничен характерными признаками или этапами, описанными выше. Вместо этого, характерные признаки и этапы, описанные выше, раскрываются как примерные формы реализации формулы изобретения.