Код документа: RU2667036C2
Настоящее изобретение относится в целом к способу и устройству для идентификации и сообщения местоположений и, в частности, к способу и устройству для идентификации и сообщения местоположений удобным для восприятия образом.
Предпосылки изобретения
В последние годы в обиход вошли спутниковые локационные системы, которые способны определить местоположение устройства, включающего локационную систему, с очень высокой точностью. Будучи также включенными в специализированные навигационные устройства, данные спутниковые локационные системы обычно включены в смартфоны и подобные вычислительные устройства мобильной связи и/или общего назначения.
Использование геометрических числовых координат для идентификации местоположений, таких как координаты по широте и по долготе или координаты по координатной сетке, хорошо известно, и спутниковые локационные системы в целом идентифицируют местоположения с использованием данных числовых координат. Например, система GPS идентифицирует местоположения с использованием координат GPS, которые обычно представлены в качестве координат по широте и по долготе высокого разрешения.
Одна практическая проблема, связанная с числовыми координатами для идентификации местоположений, состоит в том, что конечные строки из чисел являются очень неудобными для восприятия пользователем. На практике людям в целом сложно точно запомнить или сообщить другим в устной форме данные строки из чисел.
Также, точный ручной ввод строк из чисел в устройство, например, для того, чтобы сообщить навигационному устройству, куда вы желаете направиться, или, чтобы включить местоположение в сообщение, отправленное другому человеку, может быть относительно медленным и времязатратным.
В некоторых случаях местоположения идентифицируются с использованием других средств, таких как почтовые индексы или названия улиц, возможно наряду с номерами зданий, но проблема данных подходов состоит в том, что они могут быть относительно неточными и в целом закреплены лишь за зданиями. В частности, почтовые индексы в целом закреплены лишь за местоположениями, куда предположительно будет доставляться почта или где она будет забираться. В результате, данные подходы зачастую являются полезными лишь в городских местностях, где высокая плотность закрепленных подходящих индексов, названий и номеров. Также, почтовые индексы не обязательно являются более легкими для запоминания и сообщения в устной форме, чем числовые координаты. Также, различные страны или регионы используют различные системы для идентификации адресов и многие из данных адресных систем являются относительно простыми и имеют ограниченное значение для идентификации или сообщения конкретных местоположений.
Предпочтительно, настоящие способ и устройство решают данную проблему.
Общее описание
В первом аспекте изобретение предоставляет машинно-реализованный способ создания идентификатора местоположения, включающий: получение процессором географических координат местоположения; выполнение указанным процессором следующих этапов:
преобразования географических координат в одно уникальное значение n;
преобразования одного уникального значения n в уникальную группу из множества значений; и
преобразования множества значений в равное множество соответствующих слов; и
предоставления множества слов в качестве идентификатора местоположения.
Предпочтительно, способ дополнительно включает определение массива ячеек по всей географической области; и включает выполнение указанным процессором, выполняющим этап преобразования географических координат в одно уникальное значение n, следующих этапов: преобразования географических координат в значение идентификации ячейки, идентифицирующее ячейку, содержащую местоположение, и значение положения ячейки, идентифицирующее положение местоположения внутри ячейки; и преобразования значения идентификации ячейки и значения положения ячейки в одно уникальное значение n.
Предпочтительно, географические координаты являются координатами по широте и по долготе.
Предпочтительно, множество слов находится в определенной последовательности.
Предпочтительно, значение идентификации ячейки является парой целых чисел X, Y и значение положения ячейки является парой целых чисел x, y.
Предпочтительно, значение n и множество значений являются целыми числами.
Предпочтительно, координаты по широте и по долготе преобразуются в значение идентификации ячейки и значение положения ячейки с использованием уравнений:
X = floor((Долгота + 180) * 24)
Y = floor((Широта + 90) * 24)
x = floor(W(Y) * frac((Долгота + 180) * 24))
y = floor(1546 * frac((Широта + 90) * 24))
где W(Y) = max(1, floor(1546 * cos((Y + 0,5)/24 - 90))).
Предпочтительно, значение идентификации ячейки и значения X, Y, x и y положения ячейки преобразуются в одно уникальное значение n посредством присваивания каждой ячейке, идентифицированной значением X, Y идентификации ячейки, уникального диапазона значений n, имеющего минимальное значение q, а затем получения n с использованием уравнения:
n = q + 1546*x + y.
Предпочтительно, одно уникальное значение n преобразуют в уникальную группу из трех значений i, j, k, при этом три значения i, j и k преобразуют в три соответствующих слова; и три слова предоставляют в качестве идентификатора местоположения.
Предпочтительно, преобразование одного уникального значения n в уникальную группу из трех значений i, j, k содержит: преобразование одного уникального значения n в одно уникальное целочисловое значение m посредством деления возможных значений n на блоки значений, и перемешивание значений n в блоке значений для получения m.
Предпочтительно, преобразование одного уникального значения n в уникальную группу из трех значений i, j, k дополнительно содержит преобразование одного уникального значения m в уникальную группу из трех значений i, j, k посредством:
определения l = floor (cuberoot(m)); затем
в случае, если l3 ≤ m < l3 + l2 + 2l +1, тогда
i = l, j = r div (l + 1) и k = r mod (l + 1), где r = m - l3; или
в случае, если l3 + l2 + 2l + 1 ≤ m < l3 + 2l2 + 3l + 1, тогда
i = r div (l + 1), j = l и k = r mod (l + 1), где r = m - (l3 + l2 + 2l +1); или
в случае, если l3 + 2l2 + 3l + 1 ≤ m < l3 + 3l2 + 3l + 1, тогда
i = r div l, j = r mod l, k = l, где r = m - (l3 + 2l2 + 3l + 1).
Предпочтительно, уникальная группа из трех значений i, j, k преобразуется в три соответствующих слова посредством сравнивания каждого значения с упорядоченным списком слов и преобразования каждого значения в слово в положении значения в упорядоченном списке.
Во втором аспекте изобретение предоставляет устройство, предусмотренное для создания идентификатора местоположения посредством выполнения способа первого аспекта.
В третьем аспекте изобретение предоставляет компьютерную программу, создающую идентификатор местоположения, содержащую машиночитаемые команды, которые при исполнении процессором будут вынуждать процессор выполнять этапы способа первого аспекта.
В четвертом аспекте изобретение предоставляет машинно-реализованный способ идентификации местоположения, включающий:
прием процессором идентификатора местоположения для местоположения, при этом идентификатор местоположения содержит множество слов;
указанным процессором, выполняющим следующие этапы:
преобразование множества слов в уникальную группу из равного множества соответствующих значений;
преобразование уникальной группы из множества значений в одно уникальное значение n;
преобразование одного уникального значения n в географические координаты; и
вывод географических координат.
Предпочтительно, способ дополнительно включает определение массива ячеек по всей географической области; и включает выполнение указанным процессором, выполняющим этап преобразования одного уникального значения n в географические координаты, следующих этапов:
преобразования одного уникального значения n в значение идентификации ячейки, идентифицирующее ячейку, содержащую местоположение, и значение положения ячейки, идентифицирующее положение местоположения внутри ячейки; и
преобразования значения идентификации ячейки и значения положения ячейки в географические координаты.
Предпочтительно, географические координаты являются координатами по широте и по долготе.
Предпочтительно, множество слов находится в определенной последовательности.
Предпочтительно, значение идентификации ячейки является парой целых чисел X, Y и значение положения ячейки является парой целых чисел x, y.
Предпочтительно, значение n и множество значений являются целыми числами.
Предпочтительно, значение идентификации ячейки и значение положения ячейки преобразуются в географические координаты с использованием уравнений:
Широта = (Y + ((y + 0,5)/1546))/24 * 90
Долгота = (X +((x+0,5)/(W(Y)))/24-180
где W(Y) = max(1, floor(1546 * cos((Y + 0,5)/24 - 90))).
Предпочтительно, одно уникальное значение n преобразуется в значение идентификации ячейки и значения X, Y, x и y положения ячейки посредством связывания каждой ячейки, идентифицированной значением X, Y идентификации ячейки, с уникальным диапазоном значений n, при этом каждый уникальный диапазон имеет минимальное значение q, и идентификации присвоенного диапазона значений n, в котором находится значение n; затем выбора значения X, Y идентификации ячейки, связанного с идентифицированным присвоенным диапазоном, и определения x и y с использованием уравнений:
x = (n - q) div 1546
y = (n - q) mod 1546.
Предпочтительно, множество слов включают три слова; три слова преобразуются в уникальную группу из трех соответствующих значений i, j и k; и уникальная группа из трех значений i, j, k преобразуется в одно уникальное значение n;
Предпочтительно, преобразование уникального набора из трех значений i, j, k в одно уникальное значение n содержит: преобразование одного уникального целочислового значения m в одно уникальное значение n посредством деления возможных значений m на блоки значений одинакового размера, и перемешивание значений m в блоке значений для получения n.
Предпочтительно, преобразование уникальной группы из трех значений i, j, k в одно уникальное значение n дополнительно содержит преобразование одного уникального значения m в уникальную группу из трех значений i, j, k посредством:
определения l = max(i; j; k); затем
в случае, если i = l, тогда
m = l3 + (l + 1)j + k; или
в случае, если j = l, тогда
m = l3 + l2 + 2l + 1 + (l + 1)i + k; или
в случае, если k = l, тогда
m = l3 + 2l2 + 3l + 1 + li + j.
Предпочтительно, три слова преобразуются в уникальную группу из трех соответствующих значений i, j, k посредством сохранения слов и целочисловых значений в ассоциативном массиве и поиска слова, соответствующего каждому целому числу.
В пятом аспекте изобретение предоставляет устройство, предусмотренное для идентификации местоположения посредством выполнения способа четвертого аспекта.
В шестом аспекте изобретение предоставляет компьютерную программу, идентифицирующую местоположение, содержащую машиночитаемые команды, которые при исполнении процессором будут вынуждать процессор выполнять этапы способа четвертого аспекта.
Изобретение дополнительно предоставляет системы, устройства и изделия производства для реализации любых из вышеупомянутых аспектов изобретения.
Описание графических материалов
Изобретение будет далее подробно описано со ссылкой на следующие фигуры, на которых:
на фиг. 1 показана схема примера системы в соответствии с настоящим изобретением;
на фиг. 2 показана схема примера устройства пользователя, используемого в системе, показанной на фиг. 1;
на фиг. 3 показана блок-схема работы в первом направлении системы, показанной на фиг. 1;
на фиг. 4 показана блок-схема работы во втором направлении системы, показанной на фиг. 1; и
на фиг. 5 показана схема работы сервера системы, показанной на фиг. 1.
Подробное описание
На фиг. 1 проиллюстрирован общий вид примера системы 1 идентификации и сообщения местоположения в соответствии с настоящим изобретением.
Система 1 включает несколько устройств 2 пользователя и центральный сервер 3. Устройства 2 пользователя включает в себя смартфоны 2a и персональные компьютеры (PC) 2b, при этом каждое из устройств 2 пользователя, то есть смартфоны 2a пользователя и PC 2b пользователя, способно устанавливать связь с центральным сервером 3 через сеть Интернет 4. Несмотря на то, что для ясности на фиг. 1 показаны только три смартфона 2a пользователя и один PC 2b пользователя, следует понимать, что на практике система 1 может включать большое количество устройств 2 пользователя, таких как смартфоны 2a пользователя и PC 2b пользователя.
На фиг. 2 более подробно проиллюстрирован пример смартфона 2a пользователя системы 1. Как показано на фиг. 2, смартфон 2a пользователя включает процессор 10 данных, визуальный дисплей 11, интерфейс 12 пользователя, позволяющий вводить команды пользователя в смартфон 2a, динамик 13 и микрофон 14. Различные компоненты смартфона 2a работают под управлением процессора 10. Интерфейс 12 пользователя может быть включен в визуальный дисплей в качестве сенсорного дисплея. В других примерах интерфейс 12 пользователя может являться специально предназначенной клавиатурой, отдельной от визуального дисплея. Смартфоны, содержащие данные компоненты, хорошо известны специалистам в данной области техники, так что отсутствует необходимость в их подробном описании. Следует понимать, что PC 2b пользователя будет иметь подобную функциональность.
Также, смартфон 2a содержит средства 15 определения местоположения, картографический или навигационный модуль 16 и модуль 11 идентификации местоположения. Навигационный модуль 16 и модуль 17 идентификации местоположения выполнены с возможностью приема информации о положении от средств 15 определения местоположения. В проиллюстрированном примере средства 15 определения местоположения являются системой (GPS) глобального позиционирования. В других примерах могут быть использованы различные спутниковые навигационные системы. Навигационный модуль 16 и модуль 17 идентификации местоположения могут содержать специализированное аппаратное обеспечение или могут содержать программные продукты или приложения, работающие на процессоре 10 смартфона 2a. В некоторых примерах PC 2b пользователя может не содержать средств 15 определения местоположения. В некоторых примерах PC 2b пользователя, который не содержит средств определения местоположения, все еще может иметь доступ к информации о местоположении от отдельных средств определения местоположения.
Модуль 17 идентификации местоположения использует информацию о положении, предоставленную средствами 15 определения местоположения, для предоставления пользователю услуг на основе определения местоположения.
Для ясности будет обсуждена работа системы 1 со смартфоном 2a пользователя, содержащим средства 15 определения местоположения.
На фиг. 3 показана блок-схема примера услуги на основе определения местоположения в соответствии с настоящим изобретением. В примере, показанном на фиг. 3, смартфон 2a предоставляет пользователю информацию, идентифицирующую текущее местоположение пользователя, в ответ на запрос пользователя. Пользователю может быть, например, необходима данная информация для того, чтобы пользователь мог сообщить местоположение кому-либо еще. Например, пользователю может быть необходимо информировать кого-либо еще о текущем местоположении пользователя.
Сначала пользователь делает запрос на идентификацию своего текущего местоположения через смартфон 2a с использованием интерфейса 12 пользователя на этапе 20 запроса. В ответ на данный запрос модуль 17 идентификации местоположения получает координаты текущего местоположения смартфона 2a от средств 15 определения местоположения на этапе 21 получения. Данные координаты текущего местоположения предоставляются средствами 15 определения местоположения в качестве координат GPS, которые являются координатами по широте и по долготе до шести десятичных знаков, например, "52,123456, -0,654321". Позиционные координаты легко доступны с такой степенью точности от спутниковых навигационных систем, таких как GPS.
Полученные координаты по широте и по долготе текущего положения смартфона 2a затем отправляются модулем 17 идентификации местоположения на сервер 3 через сеть Интернет 4 с использованием коммуникационной функциональности смартфона 2a на этапе 22 отправки.
Затем сервер 3 преобразует принятые координаты по широте и по долготе в идентификатор местоположения, содержащий уникальную последовательность из трех слов, например, "tablet microphone excited", на этапе 23 преобразования. Данное преобразование выполняется с использованием алгоритма, подробно описанного далее.
Затем сервер 3 возвращает идентификатор местоположения с последовательностью из трех слов на модуль 17 идентификации местоположения смартфона 2a через сеть Интернет 4 на этапе 24 возврата.
Принятый идентификатор местоположения затем отображается пользователю на визуальном дисплее 11 смартфона 2a в качестве текста, содержащего уникальную последовательность из трех слов, на этапе 25 отображения. В качестве альтернативы или дополнения на этапе 25 отображения принятый идентификатор местоположения может быть предоставлен пользователю в речевой форме, содержащей уникальную последовательность из трех слов, через динамик 13. В некоторых примерах, в которых идентификатор местоположения из трех слов предоставляется пользователю в речевой форме, речь может быть сгенерирована смартфоном 2a из текста из идентификатора местоположения из трех слов.
Затем пользователь может использовать идентификатор местоположения, содержащий уникальную последовательность из трех слов, для идентификации своего текущего местоположения. Например, пользователь может запомнить или записать уникальную последовательность из трех слов, так что впоследствии они могут использовать последовательность из трех слов для идентификации своего текущего местоположения. В еще одном примере пользователь может рассказать последовательность из трех слов другому человеку либо в личном разговоре, либо по телефону для того, чтобы сообщить другому человеку местоположение, чтобы они могли идентифицировать местоположение. В еще одном примере пользователь может сообщить местоположение посредством отправки последовательности из трех слов другому человеку в качестве текста, например, с использованием электронной почты или SMS, чтобы другой человек мог идентифицировать местоположение. В еще одном примере пользователь может сообщить местоположение посредством предоставления последовательности из трех слов через социальную сеть, чтобы человек или люди, имеющие доступ к социальной сети, могли идентифицировать местоположение.
В других примерах вместо идентификации текущего местоположения пользователя полученные координаты по широте и по долготе могут являться другим местоположением, например, предложенным местоположением для встречи или визита, или местоположением, которое может заинтересовать пользователя или третью сторону. В данных примерах, поскольку координаты по широте и по долготе не являются текущим местоположением пользователя, они должны быть получены другим образом. Например, координаты по широте и по долготе могут быть получены из картографического приложения на смартфоне пользователя посредством выбора пользователем представляющего интерес местоположения на отображенной карте и предоставления картографическим приложением координат по широте и по долготе выбранного местоположения.
На фиг. 4 показана блок-схема еще одного примера услуги на основе определения местоположения в соответствии с настоящим изобретением. В примере, показанном на фиг. 4, смартфон 2 показывает пользователю местоположение, идентифицированное идентификатором местоположения, содержащим уникальную последовательность из трех слов, известную пользователю. Пользователю может быть, например, необходимо данное местоположение, чтобы они могли добраться до местоположения.
Сначала пользователь делает запрос на отображение местоположения, идентифицированного идентификатором местоположения, содержащим уникальную последовательность из трех слов, через смартфон 2a на этапе 30 запроса.
Затем пользователь вводит идентификатор местоположения с последовательностью из трех слов, например, "bread singing holster", с использованием интерфейса 12 пользователя на этапе 31 ввода. В качестве альтернативы в некоторых примерах запрос и/или ввод может быть выполнен в устной форме с использованием микрофона 14. В данных примерах смартфон 2a должен содержать или иметь доступ к подходящим средствам распознавания речи.
Смартфон 2a передает введенный идентификатор местоположения с последовательностью из трех слов на модуль 17 идентификации местоположения и модуль 17 идентификации местоположения отправляет идентификатор местоположения из трех слов на сервер 3 через сеть Интернет 4 с использованием коммуникационной функциональности смартфона 2 на этапе 32 отправки.
Затем сервер 3 преобразует принятый идентификатор местоположения с уникальной последовательностью из трех слов в координаты по широте и по долготе до шести десятичных знаков, например, "73,354721, 23,879527", на этапе 33 преобразования. Данное преобразование выполняется с использованием алгоритма, подробно описанного далее.
Затем сервер 3 возвращает данные координаты по широте и по долготе на модуль 17 идентификации местоположения смартфона 2 через сеть Интернет 4 на этапе 34 возврата.
Затем модуль 17 идентификации местоположения передает принятые координаты по широте и по долготе на средства 15 определения местоположения, а затем средства 15 определения местоположения отображают пользователю определенное местоположение на визуальном дисплее 11 смартфона 2a на этапе 35 отображения. Например, средства 15 определения местоположения могут отобразить карту на визуальном дисплее 11, включающую или сфокусированную на определенном местоположении, и указать определенное местоположение в качестве отметки или курсора на карте. В качестве альтернативы или дополнения на этапе 35 отображения средства 15 определения местоположения могут отобразить направления на визуальном дисплее 11 для направления пользователя до определенного местоположения. В некоторых примерах, в которых осуществляется направление пользователя до определенного местоположения, направления могут быть заданы в речевой форме через динамик смартфона 2a.
В проиллюстрированном примере система 1 включает в себя устройства 2 пользователя в виде смартфонов 2a и персональных компьютеров (PC) 2b пользователя. В других примерах система 1 может в качестве дополнения или альтернативы включать в себя устройства 2 пользователя в виде других типов вычислительных устройств, например, портативных и планшетных компьютеров. Данный список примеров не подразумевается в качестве исключительного.
В проиллюстрированном примере некоторые из устройств пользователя являются смартфонами 2a пользователя, содержащими средства определения местоположения. Необязательно, чтобы все устройства пользователя содержали средства определения местоположения. В других примерах некоторые или все устройства 2 пользователя могут быть выполнены с возможностью установки связи с отдельными средствами определения местоположения. В других примерах некоторые или все устройства 2 пользователя могут не иметь доступа к средствам определения местоположения. Некоторая функциональность системы может быть недоступна посредством устройства 2 пользователя, не имеющего доступа к средствам определения положения, например, идентификация текущего местоположения пользователя, однако система все еще может быть использована посредством устройства 2 пользователя для предоставления других услуг, например, идентификации предложенного местоположения для встречи или отображения местоположения, идентифицированного идентификатором местоположения.
В проиллюстрированном примере устройства пользователя являются смартфонами 2a пользователя, содержащими картографический или навигационный модуль. Необязательно, чтобы устройства пользователя содержали картографический или навигационный модуль.
В некоторых примерах система 1 может включать вебсайт, доступ к которому может быть получен посредством вычислительных устройств пользователя. В некоторых примерах вебсайт может быть размещен на сервере 1. В некоторых примерах вебсайт может быть размещен на отдельном сервере. В данных примерах вебсайт может предоставлять картографические и/или навигационные функции имеющим доступ вычислительным устройствам пользователя.
Как обсуждено выше, в соответствии с настоящим изобретением местоположения идентифицируются с использованием уникальных идентификаторов местоположения или названий, состоящих из слов вместо числовых координат, при этом каждый идентификатор местоположения состоит из трех слов в конкретной последовательности, и способ и устройство изобретения выполняют преобразование географических координат в уникальные идентификаторы местоположения из трех слов и выполняют преобразование уникальных идентификаторов местоположения из трех слов в географические координаты. Данные идентификаторы местоположения, состоящие из последовательности из трех слов, пользователям в целом легче запомнить и сообщить в письменном сообщении и в устной форме, чем строки из чисел, составляющие географические координаты. Например, с использованием первого примера, упомянутого выше, большинству людей легче запомнить, записать, прочитать, сказать и понять в речевой форме фразу "tablet microphone excited", чем последовательность чисел "52,123456, -0,654321". Это также относится к другим видам кодирования географического положения, которые используют последовательности из букв и чисел для идентификации географических координат, большинству людей легче запомнить, записать, прочитать, сказать и понять в речевой форме фразу "tablet microphone excited", чем случайную последовательность из букв и чисел, такую как "t6D3we1".
Принцип работы изобретения может быть пояснен следующим образом. Посредством использования координат GPS в виде координат по широте и по долготе, определенных до шести десятичных знаков, каждое местоположение на поверхности земли может быть уникально идентифицировано в качестве находящегося в конкретном квадрате или области приблизительно 3 метра на 3 метра. Определение местоположений до данной степени разрешения приблизительно 3м на 3м является достаточно точным для большинства целей.
Для охвата всей поверхности земли общее количество различных квадратов, которые должны быть уникально идентифицированы, составляет приблизительно 5,7 * 1013 или 57 миллионов миллионов. Если каждое уникальное название состоит из трех действительных слов в конкретной последовательности, определяющей их, количество уникальных названий потребует приблизительно 38 500 действительных слов, которые легко доступны в большинстве языков, таких как английский.
В альтернативном примере, если учитываются и присваиваются идентификаторы местоположения только данным квадратам приблизительно 3м на 3м, расположенным на земле, а в целом ненаселенные области вокруг северного и южного полюсов исключаются, общее количество различных квадратов, которые должны быть уникально идентифицированы, составляет приблизительно 2,7 * 1013 или 27 миллионов миллионов. Если каждое уникальное название состоит из трех действительных слов в конкретной последовательности, определяющей их, количество уникальных названий потребует приблизительно 25 000 действительных слов, которые легко доступны в большинстве языков, таких как английский.
Предпочтительно, чтобы слова, используемые для образования последовательностей из трех слов, являлись действительными словами. Это может упростить запоминание, произношение, запись и идентификацию слов пользователями.
Как пояснено выше, в настоящем изобретении алгоритм используется для преобразования координат по широте и по долготе в идентификаторы местоположения с последовательностью из трех слов, и наоборот.
В принципе, возможным является генерирование базы данных, содержащей все сочетания слов, соответствующие каждому местоположению, которое может быть определено с использованием уникальной координаты по широте и по долготе с шестью десятичными знаками, и выполнение преобразования с использованием координаты или последовательности из трех слов для поиска соответствующей последовательности из трех слов или координаты, соответственно. Однако для данного грубого подхода потребуется база данных с размером во множество сотен терабайт и на практике ей будет сложно управлять. На практике будет сложно или невозможно осуществить поиск в такой базе данных в течение любого возможного времени для выполнения необходимых преобразований. Соответственно, в настоящем изобретении используется алгоритм для выполнения преобразований.
Общая структура примера алгоритма преобразования в соответствии с настоящим изобретением показана на фиг. 5. Алгоритм 40 в целом является обратимым и каждый из этапов, составляющих алгоритм, также является обратимым. Соответственно, один и тот же алгоритм 40 может быть использован для преобразования координат по широте и по долготе в идентификаторы местоположения с последовательностью из трех слов и для преобразования идентификаторов местоположения с последовательностью из трех слов в координаты по широте и по долготе.
Этап 51 преобразования значений ячейки и положения преобразует координаты по широте и по долготе в четыре целочисловых значения X, Y, x, y ячейки и положения, и наоборот.
Этап 52 степени привлекательности преобразует четыре целочисловых значения X, Y, x, y ячейки и положения в одно целочисловое значение n, и наоборот.
Этап 53 перемешивания и неперемешивания преобразует целое число n в отличное от него целое число m, и наоборот.
Этап 54 разделения и объединения преобразует целое число m в три целых числа i, j, k, и наоборот.
Этап 55 преобразования слова преобразует каждое из целых числа i, j, k в слово, и наоборот.
Алгоритм преобразует координаты по широте и по долготе в идентификаторы местоположения с последовательностью из трех слов посредством выполнения каждого из этапов в первом прямом направлении в последовательности 51-52-53-54-55. Алгоритм преобразовывает идентификаторы местоположения с последовательностью из трех слов в координаты по широте и по долготе посредством выполнения каждого из этапов во втором обратном направлении в последовательности 55-54-53-52-51.
Различные этапы 51 - 55 алгоритма будут более подробно описаны далее. Они описаны в порядке, в котором они выполняются для преобразования координат по широте и по долготе в идентификатор местоположения с последовательностью из трех слов.
Этап 51 преобразования ячейки преобразует координаты по широте и по долготе с шестью десятичными знаками, такие как координаты GPS, в четыре целочисловых значения X, Y, x, y ячейки и положения, и наоборот. Настоящее изобретение делит поверхность всего мира на массив или сетку с приблизительно 3,7*107, то есть приблизительно 37 миллионами, ячеек. На экваторе данные ячейки являются квадратами со стороной размером 4,64 км, то есть приблизительно 5 км. Вследствие приблизительно сферической формы земли размер и форма данных ячеек будут изменяться, при этом ячейки имеют приблизительно постоянную ширину в направлении север-юг и изменяются в ширину в направлении восток-запад, размер ячеек в направлении восток-запад в целом меньше в местоположениях дальше от экватора. Однако, поскольку координаты, как по широте, так и по долготе ячейки определены в угловых единицах, это не влияет на точность преобразования.
Пара целочисловых значений X и Y ячейки идентифицирует, в какой ячейке находится местоположение, тогда как пара целочисловых значений x и y положения указывает, где внутри данной ячейки находится местоположение. В частности, пара целочисловых значений x и y положения идентифицирует конкретный квадрат 3м на 3м внутри ячейки, идентифицированной парой целочисловых значений X и Y ячейки. Таким образом, пара целочисловых значений X и Y ячейки является координатой, определенной относительно сетки с ячейками, тогда как пара целочисловых значений x и y положения является координатой внутри ячейки. Соответственно, четыре целочисловых значения X, Y, x, y называются значениями ячейки и положения. Ячейкам присвоен отличный диапазон значений x, y положения на основе площади ячейки, так что ячейкам с большой площадью присвоено большее количество значений x, y положения. Таким образом, также по этой причине размер в направлении восток-запад ячеек, которые в целом меньше в местоположениях дальше от экватора, не влияет на точность преобразования. В результате, ячейки с большей площадью содержат большее количество идентифицируемых местоположений, так что степень разрешения или размер площади каждого идентифицируемого местоположения является приблизительно постоянным. Ячейкам ближе к экватору будет в целом присвоено большее количество значений x, y положения и идентифицируемых местоположений.
В первом прямом направлении, используемом при преобразовании координат по широте и по долготе в последовательность из трех слов, используются следующие формулы для вычисления значений X, Y, x и y ячейки и положения:
Где W(Y) = max(1, floor(1546 * cos((Y + 0,5)/24 - 90)))
Где floor с действительным числом является наибольшим целым числом, меньшим или равным данному действительному числу. Дробная часть действительного числа q равняется q - floor(q); мы записываем ее как frac(q). Более неофициально, floor с действительным числом является частью перед
десятичной запятой и дробная часть является частью после десятичной запятой.
(Так что floor(3,1415) = 3 и frac(3,1415) = 0,1415).
Во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе, используются следующие формулы для вычисления значений по широте и по долготе:
Где снова W(Y) = max(1, floor(1546 * cos((Y + 0,5)/24 - 90))).
Несмотря на то, что данный этап 51 преобразования ячейки является обратимым, он является лишь частично обратимым, а не полностью обратимым. То есть, если исходная координата по широте и по долготе преобразовывается в целочисловое значение ячейки и положения, а затем преобразовывается обратно в конечную координату по широте и по долготе, исходная и конечная координаты по широте и по долготе будут слегка отличаться. Однако на практике разница является небольшой, приблизительно максимум 2,1 м, и не вызывает проблемы в настоящем примере, где степень разрешения идентификации местоположения посредством последовательностей из трех слов составляет приблизительно 3м на 3м. Данная неполная обратимость частично возникает вследствие того, что координаты по широте и по долготе являются действительными числами, тогда как значения ячейки и положения являются целочисловыми.
Этап 52 степени привлекательности преобразовывает четыре целочисловых значения X, Y, x, y ячейки в одно целочисловое значение n, и наоборот. Целочисловое значение n называется степенью привлекательности. Как пояснено выше в отношении этапа 51 преобразования ячейки, каждая пара целочисловых значений X и Y ячейки идентифицирует конкретную ячейку, при этом каждая ячейка является квадратом приблизительно 5км на 5км на экваторе. Как обсуждено выше, размер и форма ячеек изменяются в различных местоположениях. Целочисловое значение n является значением, присвоенным ячейке, указывающей относительную степень или величину, которая, как предполагается, необходима пользователям системы для идентификации местоположений в данной ячейке, другими словами, привлекательность ячейки. Например, предполагается, что большему количеству пользователей будет необходимо идентифицировать местоположения в ячейке, расположенной в центральной части крупного города, такого как Лондон, чем будет необходимо идентифицировать местоположения в ячейке, расположенной в дикой местности, такой как пустыня Сахара. В общем, предполагается, что большему количеству пользователей будет необходимо идентифицировать местоположения в ячейке, расположенной в городской местности, чем будет необходимо идентифицировать местоположения в ячейке в сельской местности.
Степень n привлекательности местоположения используется для определения того, какие слова используются для образования последовательности слов, присвоенной данному местоположению. В проиллюстрированном примере местоположениям, рассматриваемым в качестве более привлекательных для пользователей, присваивается меньшее значение n и местоположениям, которым присвоено меньшее значение n, присваиваются более удобные для восприятия пользователем слова для образования последовательности слов, присвоенной данному местоположению. Вопрос о том, какие слова рассматриваются в качестве более удобных для восприятия пользователем, в некоторой степени неминуемо является субъективным. Однако слова в целом могут быть рассмотрены в качестве более удобных для восприятия пользователем, если пользователям их проще использовать, так что, например, более короткие слова, слова общего употребления, слова, которые не легко принять за другие слова, и/или слова с более простым правописанием и произношением в целом могут быть рассмотрены в качестве более удобных для восприятия пользователем.
На этапе 52 степени привлекательности каждой ячейке, которая идентифицируется конкретной парой целочисловых значений X и Y ячейки, присваивается соответствующий диапазон значений n, где каждое значение n в диапазоне соответствует конкретной паре целочисловых значений x и y положения. Таким образом, каждый набор из четырех целочисловых значений X, Y, x, y ячейки соответствует одному целочисловому значению n, и наоборот.
Данное соответствие проиллюстрировано в таблице 1, в которой показано пояснительное соотношение между примерами значений X и Y ячейки и диапазонов чисел n. Следует отметить, что значения в таблице 1 проиллюстрированы для пояснения предполагаемого принципа и не обязательно соответствуют значениям, которые будут использованы на практике.
Таблица 1:
В таблице 1 показаны три примера ячеек в таблице, при этом ячейки идентифицированы посредством пар X и Y чисел ячеек со значениями (100, 60), (111, 40) и (170, 20). Каждой ячейке присвоен уникальный диапазон значений n.
Как показано в таблице 1, различные ячейки имеют присвоенные диапазоны значений n, содержащие различные количества значений. Это соответствует диапазону значений x, y положения, присвоенному ячейке, которая в свою очередь зависит от площади ячейки, как было пояснено выше. В примерах, показанных в таблице 1, ячейка (100, 60) находится в крупном городе, так что она рассматривается в качестве имеющей высокую привлекательность, и, следовательно, имеет минимальный диапазон значений n, ячейка (170, 20) находится в городской местности, так что она рассматривается в качестве имеющей среднюю привлекательность, и, следовательно, имеет средний диапазон значений n, и ячейка (110, 40) находится в сельской местности, так что она рассматривается в качестве имеющей низкую привлекательность, и, следовательно, имеет максимальный диапазон значений n. Также, в примерах, показанных в таблице 1, ячейка (110, 40) имеет наибольшую площадь и, следовательно, имеет диапазон наибольшего размера значений n, ячейка (100, 60) имеет среднюю площадь и, следовательно, имеет диапазон среднего размера значений n, и ячейка (170, 20) имеет наименьшую площадь и, следовательно, имеет диапазон наименьшего размера значений n.
Система, используемая для присваивания привлекательности ячейкам, может быть настолько сложной, насколько это необходимо в любой конкретной системе. Сложность процедуры, используемой для присваивания привлекательности, не влияет на работу системы. В одном примере привлекательность присваивается ячейкам на основе страны, в которой они находятся, и на основе того, находятся ли они в сельской местности, или в городской местности, или в крупном городе. Ячейкам в городской местности присваивается более высокая привлекательность, чем ячейкам в сельской местности, и ячейкам в крупном городе присваивается более высокая привлекательность, чем ячейкам в городской местности. Ячейкам в различных странах могут быть, например, присвоены значения привлекательности на основе того, как часто пользователи из родной страны оператора системы и/или пользователи, использующие язык системы, путешествуют в страны. В некоторых примерах ячейки в городах, идентифицированных в качестве очень крупных городов или в качестве очень частых туристических направлений, могут быть обработаны в качестве частного случая и рассмотрены в качестве имеющих очень высокую привлекательность, например, Лондон и Париж.
Для преобразования четырех целочисловых значений X, Y, x, y ячейки в одно целочисловое значение n, и наоборот, используется таблица привлекательности. Таблица привлекательности является таблицей поиска, содержащей значение минимального значения диапазона значений n, присвоенного каждой ячейке. Таким образом, таблица поиска будет иметь количество записей, равное количеству определенных ячеек, или, другими словами, количеству пар допустимых целочисловых значений X и Y ячейки.
Содержимое таблицы привлекательности проиллюстрировано в таблице 2, в которой показано пояснительное соотношение между примерами значений X и Y ячейки и минимальных значений присвоенных диапазонов чисел n. Следует отметить, что значения в таблице 2 проиллюстрированы для пояснения предполагаемого принципа и не обязательно соответствуют значениям, которые будут использованы на практике.
Таблица 2:
В таблице 2 показаны три примера ячеек в таблице, при этом ячейки идентифицированы посредством пар X и Y чисел ячеек со значениями (100, 60), (110, 40) и (170, 20). Каждой ячейке присвоен уникальный диапазон
значений n, и, таким образом, уникальное минимальное значение n.
Как пояснено выше, всего существует приблизительно 37 миллионов ячеек, что является намного меньшим количеством, чем приблизительно 57 миллионов миллионов идентифицируемых местоположений, так что использование таблицы поиска, имеющей запись для каждой ячейки, является практичным.
В первом прямом направлении, используемом при преобразовании координат по широте и по долготе в последовательности из трех слов, значение q минимального значения n в диапазоне для значений X и Y ячейки получается из таблицы привлекательности, а затем следующая формула используется для вычисления значения n привлекательности:
Во многих стандартных языках программирования таблица поиска таблицы привлекательности может быть кодирована в качестве двухмерного массива, обозначенного X и Y. В SQL это может быть просто база данных.
В альтернативных примерах, которые не охватывают всю поверхность земли, при работе в прямом направлении, если заданная пара X и Y отсутствует в таблице/базе данных, это означает, что указанное место находится где-то вне охвата системы и ему не присвоена фраза из трех слов. В данном случае может быть отображено подходящее сообщение об ошибке.
Во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе, положение является несколько более сложным. Поскольку значения n будут обычно находиться где-то в диапазоне значений n, присвоенных ячейке, а не являться максимальным или минимальным значением, невозможно просто найти значения n в таблице. Вследствие очень больших количеств определенных идентифицируемых местоположений непрактично использовать таблицу поиска с отдельной записью для каждого возможного значения n.
Соответственно, таблица привлекательности сортируется по значению "минимального значения n в диапазоне", что приводит к отсортированной таблице привлекательности.
Пример отсортированной таблицы привлекательности, созданной посредством сортировки записей таблицы 2, показан в таблице 3.
Таблица 3:
Затем осуществляется поиск в отсортированной таблице привлекательности для нахождения максимального значения "минимального значения n в диапазоне", которое меньше или равно n.
После нахождения записи с данным значением "минимального значения n в диапазоне" соответствующие значения X и Y могут быть прочитаны из отсортированной таблицы привлекательности. Затем следующие формулы используются для вычисления значений x и y:
Где q - значение "минимального значения n в диапазоне", div - результат целочислового деления и mod - остаток после целочислового деления.
В принципе, поиск может быть осуществлен посредством просмотра таблицы привлекательности с отсортированными записями по принципу запись за записью, но это вероятно является слишком времязатратным для того, чтобы быть практичным. Должны быть использованы способы интеллектуального поиска. В некоторых примерах используется способ двоичного поиска, тогда как в других примерах используется способ интерполяционного поиска. Данные способы интеллектуального поиска хорошо известны специалистам в данной области техники и не будут подробно описаны в данном документе.
В примерах, в которых отсортированная таблица привлекательности реализована на SQL или подобном языке, который поддерживает поиски значений между двумя значениями с использованием оператора BETWEEN, возможным является использование следующего способа поиска. Известен максимальный размер диапазона значений n, присвоенных любой ячейке, и определено, что для любого значения n существует по меньшей мере одно "минимальное значение n в диапазоне" со значением между n и n-максимальный размер. Соответственно, если осуществляется поиск значений "минимального значения n в диапазоне" между n и n-максимальный размер и используется максимальное найденное значение, оно будет являться правильным значением "минимального значения n в диапазоне". В одном примере будет осуществлен поиск между n и n-2 390 116.
Данный этап 52 степени привлекательности является полностью обратимым.
Несмотря на то, что таблица привлекательности указана выше в качестве одной таблицы, в некоторых примерах предпочтительно сохранить две отлично упорядоченные таблицы, таблицу привлекательности и отсортированную таблицу привлекательности, указанную выше, с отдельной таблицей, используемой для преобразований в различных направлениях.
Этап 53 перемешивания и неперемешивания преобразовывает целое число n в отличное от него целое число m, и наоборот.
Данный этап не является существенным и может быть пропущен в некоторых примерах. Однако он предоставляет ряд преимуществ.
Как отмечалось выше, на этапе 52 степени привлекательности местоположениям в одной ячейке обычно присваиваются одинаковые значения n. В результате того, каким образом значения n преобразовываются в слова, и наоборот, возможно, что местоположения с одинаковыми значениями n получат одинаковые последовательности из трех слов, например, с двумя идентичными словами и отличным третьим словом.
Это может привести к проблеме для пользователей, преобразующих последовательности из трех слов в местоположения, которая состоит в том, что если последовательность из трех слов введена неправильно с одним неправильным словом, это может привести к идентификации неправильного местоположения, которое находится относительно близко от правильного местоположения. Такое неправильное, но близкое местоположение может являться приемлемым и, следовательно, может быть не распознано пользователем как неправильное. Посредством включения этапа 53 перемешивания и неперемешивания гарантируется, что местоположения с одинаковыми значениями n крайне маловероятно получат одинаковые последовательности из трех слов, так что, если последовательность из трех слов введена неправильно с одним неправильным словом, это вероятно приведет к идентификации неправильного местоположения, которое находится далеко от правильного местоположения. Такое неправильное и удаленное местоположение может являться неприемлемым и, следовательно, может быть распознано пользователем как неправильное.
В некоторых примерах система может способствовать идентификации пользователем того, что неправильное местоположение находится далеко и является неприемлемым. Данное способствование может быть, например, предоставлено интерфейсом пользователя системы. В некоторых примерах система может указывать, в какой стране или, если возможно, в каком городе находится идентифицированное местоположение. В некоторых примерах система может указывать на то, что идентифицированное местоположение находится в отличном от текущего местоположения пользователя городе и/или стране, на практике во многих применениях системы пользователю станет очевидно, что произошла ошибка.
В некоторых примерах, в которых пользователя предупреждают о том, что идентифицированное местоположение является неправильным и, следовательно, произошла ошибка, система может способствовать идентификации пользователем того, какое слово является неправильным, для способствования идентификации ошибки и восстановления правильной последовательности из трех слов и местоположения. Данное способствование может быть, например, предоставлено интерфейсом пользователя системы.
Также, как отмечалось выше, на этапе 52 степени привлекательности местоположениям в ячейках, которые рассматриваются в качестве более привлекательных, присваиваются меньшие значения n. Как пояснено далее, местоположениям с меньшими значениями n присваиваются последовательности из трех слов, состоящие из более общеупотребительных слов.
Это может привести к проблеме, которая состоит в том, что поскольку ячейкам должны быть присвоены различные значения привлекательности и они должны быть перечислены по порядку, различным местоположениям неизбежно будут присвоены различные значения привлекательности и, следовательно, присвоены слова, рассматриваемые в качестве более или менее "лучших". Несмотря на то, что на практике результаты едва заметно будут отличаться для ячеек одного типа, например, ячеек в центрах различных крупных городов, любое очевидное отклонение может влиять на мнения пользователей и влиять на общественные отношения. Посредством включения этапа 53 перемешивания и неперемешивания гарантируется, что ячейкам подобного типа присвоены сочетания из слов, имеющих подобный уровень обыденности, и может быть предотвращено любое восприятие пользователем отклонения.
Этап 53 перемешивания и неперемешивания обратимо перемешивает целые числа n в отличный набор целых чисел m, и наоборот. В проиллюстрированном примере целые числа со значениями 0-19 999 999 999 будут перемешаны друг с другом, а затем целые числа со значениями в каждом последующем блоке из 2 000 000 000 целых чисел будут перемешаны друг с другом. В других примерах могут быть использованы различные размеры блоков. В некоторых примерах различные блоки могут иметь различные размеры. В некоторых примерах размеры блоков могут изменяться со временем.
В первом прямом направлении, используемом при преобразовании координат по широте и по долготе в последовательности из трех слов, сначала определяется, находится ли целочисловое значение n, которое должно быть перемешано, в диапазоне 0 - 19 999 999 999. Если нет, n преобразовывается в m с использованием уравнения:
Или же, в случае, если n превышает или равняется 20 000 000 000, n преобразовывается в m с использованием уравнения:
m = (2 000 000 000 * (n div 2 000 000 000))
Во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе, сначала определяется, находится ли целочисловое значение m, которое должно быть перемешано, в диапазоне 0 - 19 999 999 999. Если нет, m преобразовывается в n с использованием уравнения:
Или же, в случае, если m превышает или равняется 20 000 000 000, m преобразовывается в n с использованием уравнения:
n = (2 000 000 000 * (m div 2 000 000 000))
Конкретные уравнения 10 - 13 относятся к приведенным в качестве примера размерам блоков, обсужденным выше. Если используются различные или изменяющиеся размеры блоков, соответствующие изменения должны быть внесены в уравнения 10 - 13. Например, для предоставления блоков или групп с различными размерами начальные числа блоков или групп могут быть получены из последовательности выбранных целых с увеличивающимся размером, последовательности целых, предпочтительно начинающейся с 0, где целые обрабатываются для определения соответствующих начальных значений последовательных групп различных размеров. Одним способом достижения данной цели может являться выполнение математической операции относительно выбранных целых для определения соответствующих начальных значений последовательных групп различных размеров. Математическая операция может содержать возведение в куб значений выбранных целых. Следует понимать, что другие способы определения групп различных размеров также являются допустимыми. Некоторое преимущество достигается, если последовательность целых содержит арифметическую прогрессию выбранных целых, например, 0, 3000, 6000, 9000 и т.д., но это не является существенным.
В первом прямом направлении, используемом при преобразовании координат по широте и по долготе в последовательности из трех слов, уравнения (10) и (11) могут быть сжаты до одного уравнения, обозначенного как (11’), следующим образом:
m = [начальное число группы n] + ((F_i *[положение n в данной группе]) mod [размер группы n]) (11’).
Во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе, уравнения (12) и (13) могут быть сжаты до одного уравнения, обозначенного как (13’), следующим образом:
n = [начальное число группы m] + ((R_i *[положение m в данной группе]) mod [размер группы m]) (13’).
Для каждого из уравнений (11’) и (13’) i обозначает группу, и m и n всегда находятся в одной группе, так что [размер группы m] = [размер группы n] = допустим, S_i.
С учетом этого, единственным требованием (для прямого и обратного перемешивания) является, чтобы
F_i * R*i = K * S_i + 1 для некоторого целочислового числа K.
В некоторых примерах этап 53 перемешивания и неперемешивания может выполнить несколько операций перемешивания и неперемешивания подряд.
Этап 54 разделения и объединения преобразовывает целое число m в три целых i, j, k, и наоборот. Одним требованием для этого является гарантирование того, что преобразование происходит между небольшими значениями m и небольшими значениями i, j и k. Данное требование не является существенным, но если данное требование удовлетворяется, это упростит этап 55 преобразования слова.
Следует отметить, что в примерах, в которых не выполняется этап 53 перемешивания и неперемешивания, этап 54 разделения и объединения будет преобразовывать целое число n в три целых i, j, k, и наоборот.
В первом прямом направлении, используемом при преобразовании координат по широте и по долготе в последовательности из трех слов, целое число m должно быть преобразовано в три целых i, j, k.
Сначала мы определяем l = floor (cuberoot(m)). Затем гарантируется случай, в котором:
Затем существует три возможных случая в зависимости от значения m.
В первом случае, если l3 ≤ m < l3 + l2 + 2l +1:
Допустим, что r = m - l3
Имеем i = l, j = r div (l + 1), k = r mod (l + 1).
Во втором случае, если l3 + l2 + 2l + 1 ≤ m < l3 + 2l2 + 3l + 1:
Допустим, что r = m - (l3 + l2 + 2l +1).
Имеем i = r div (l + 1), j = l, k = r mod (l + 1).
В третьем случае, если l3 + 2l2 + 3l + 1 ≤ m < l3 + 3l2 + 3l + 1:
Допустим, что r = m - (l3 + 2l2 + 3l + 1).
Имеем i = r div l, j = r mod l, k = l.
Во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе, три целых i, j, k должны быть преобразованы в одно целое число m.
Сначала мы определяем l = max(i, j, k).
Если i = l, тогда значение m равняется:
Или же, если j = l, тогда значение m равняется:
Или же, если k = l, тогда значение m равняется:
Этап 55 преобразования слова преобразовывает каждое из целых i, j, k в слово, и наоборот.
В первом прямом направлении, используемом при преобразовании координат по широте и по долготе в последовательности из трех слов, необходимо идентифицировать слово, соответствующее каждому из трех целых чисел i, j и k.
Это может быть осуществлено посредством составления упорядоченного списка слов и выбора слова, по порядку соответствующего значению каждого из целых чисел i, j и k. Как обсуждено выше, в одном примере упорядоченный список слов содержит 38 000 различных слов. Выбранные три слова затем располагаются в следующем порядке, сначала слово, соответствующее значению i, затем слово, соответствующее значению j, а затем слово, соответствующее значению k, для образования последовательности из трех слов.
В одном примере список слов сохранен в качестве массива строк и выбор слова осуществлен посредством поиска массива, так что, например, целое число i преобразовывается в i-ю строку в массиве. В проиллюстрированном примере значения i, j и k могут равняться нулю, так что данный массив должен быть обозначен в качестве нулевого.
В данном примере два или даже все три слова в последовательности слов могут являться одинаковыми. В некоторых альтернативных примерах последовательности слов могут быть выбраны таким образом, что они всегда содержат три различных слова.
Упорядоченный список слов должен быть упорядочен с использованием наиболее удобных для восприятия пользователем слов, которым присвоено нижнее положение или меньшее значение в списке. В некоторой степени вопрос удобства для восприятия пользователем является субъективным и может включать различные критерии в зависимости от различных языков. Однако в целом предполагается, что более общеупотребительные слова, более короткие слова и слова с простыми правописанием и произношением будут рассмотрены в качестве более удобных для восприятия пользователем.
В некоторых примерах упорядоченный список слов не включает слова, которые имеют одинаковое звучание. Это может предоставить преимущество в предотвращении возможной путаницы.
Использование порядка слов i затем j затем k не является существенным, и другой порядок может быть использован при условии, что постоянно используется одинаковый порядок. Например, будет использован порядок слов j затем i затем k.
Во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе, необходимо преобразовать три слова в три соответствующих целых числа i, j и k. Это осуществляется с использованием ассоциативного массива, иногда называемого словарем или картой.
В ассоциативном массиве, если тремя словами в порядке являются W0, W1, W2, тогда ассоциативный массив a задается посредством назначения a[Wq] = q для каждого целого числа. Каждое слово затем может быть преобразовано в целое число посредством поиска слова, соответствующего целочисловому значению в ассоциативном массиве.
Если пользователь вводит недопустимое слово, то есть слово, которое не может быть найдено в ассоциативном массиве, тогда будет возвращено подходящее сообщение об ошибке для отображения на смартфоне 2 пользователя, идентифицирующее неопознанное слово.
Также, на практике обычно будет иметь место случай, когда возможных сочетаний слов больше, чем допустимых целочисловых трех значений i, j, k и идентифицируемых местоположений. В данном случае возможно, что пользователь может ввести три отдельных допустимых слова, которые не являются допустимой последовательностью из трех слов, соответствующей идентифицируемому местоположению. В данном случае при работе во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе, полученное целое число m (или n в примерах, которые не включают этап 53 перемешивания и неперемешивания) будет иметь недопустимое значение и будет возвращено подходящее сообщение об ошибке для отображения на смартфоне 2 пользователя, указывающее, что последовательность из трех слов является неправильной.
В некоторых примерах упорядоченный список слов не включает слова, которые имеют одинаковое звучание. Это может предоставить преимущество в предотвращении возможной путаницы.
В некоторых примерах при работе во втором обратном направлении система может быть способна идентифицировать вводимые слова, которые имеют одинаковое звучание со словами в упорядоченном списке слов, а затем обрабатывать данные вводимые слова в качестве слова, имеющего одинаковое звучание, в упорядоченном списке. В некоторых примерах это может быть осуществлено автоматически, в других примерах пользователю может быть отправлен запрос или задан вопрос о том, должна ли быть выполнена замена.
В некоторых примерах упорядоченный список слов может включать в качестве одной записи множество слов, которые имеют одинаковое звучание. В данных примерах при работе во втором обратном направлении система может рассматривать ввод любого из данных слов в качестве эквивалентных друг другу, так что все они создают одно целочисловое значение для i, j или k. В данных примерах система может быть выполнена с возможностью вывода нескольких слов, которые имеют одинаковое звучание, лишь при работе в первом прямом направлении.
В некоторых примерах система может быть способна идентифицировать вводимые слова, которые имеют альтернативные правописания слов в упорядоченном списке слов, а затем обрабатывать данные вводимые слова в качестве слова, имеющего соответствующее альтернативное правописание, в упорядоченном списке.
Факультативно, система 1 может быть оснащена дополнительной функцией оговоренных слов. Данная функция оговоренных слов применяется лишь во втором обратном направлении, используемом при преобразовании последовательностей из трех слов в координаты по широте и по долготе. Оговоренное слово является одним словом или буквочисленной последовательностью, выбранной пользователями и присвоенной конкретным местоположениям, выбранным пользователем. Пользователям может быть отправлен запрос на выбор оговоренных слов.
При использовании данной опции сервер 3 сохраняет базу данных, в которой хранятся все оговоренные слова и соответствующие координаты по широте и по долготе. Когда сервер 1 принимает оговоренное слово со смартфона 2 пользователя, сервер осуществляет поиск оговоренного слова в базе данных и возвращает соответствующие координаты по широте и по долготе, а не следует последовательности этапов, описанных выше. На практике количество оговоренных слов будет значительно меньше, чем общее количество идентифицируемых местоположений, следовательно, с использованием такого простого подхода поиска обработка оговоренных слов будет приемлемо быстрой.
Следует отметить, что может существовать ряд различных оговоренных слов, соответствующих одному местоположению, в отличие от последовательностей из трех слова, где каждое местоположение соответствует одной последовательности из трех слов.
Следует понимать, что оговоренные слова не являются личными для пользователя, выбравшего их, но они могут быть использованы любым пользователем для нахождения выбранного местоположения. То есть, оговоренные слова могут быть использованы любым пользователем, который о них знает.
Например, гостиница может выбрать оговоренное слово "hawthornhotel" и присвоить его своему собственному местоположению, чтобы клиенты или персонал доставки мог использовать его для нахождения гостиницы. Поскольку размер гостиницы, скорее всего, будет в целом больше, чем 3м на 3м, вероятно, что данное оговоренное слово будет присвоено улице или проезжей части снаружи главного входа гостиницы. Также, большая гостиница может иметь несколько оговоренных слов для различных местоположений, таких как "hawthornhotelserviceentrance" для служебного входа.
Являются ли оговоренные слова одним словом или строкой текста - не существенно. Однако это может быть предпочтительным для гарантирования того, что оговоренные слова и последовательности из трех слов не приводят в замешательство. Использование одного слова позволяет серверу легко отличать оговоренные слова от стандартных последовательностей из трех слов лишь посредством их синтаксиса без необходимости более сложного анализа.
Факультативно, в других примерах оговоренные слова могут быть также доступны в первом прямом направлении, используемом при преобразовании координат по широте и по долготе в слова. Также, поскольку на практике количество оговоренных слов будет значительно меньше, чем общее количество идентифицируемых местоположений, простой подход поиска может быть использован для проверки того, имеет ли введенный набор координат соответствующее оговоренное слово, и для предоставления оговоренного слова.
В некоторых примерах система 1 может быть выполнена с возможностью работы на нескольких различных языках. Для поддержки нескольких языков отдельный упорядоченный список слов предоставляется для каждого языка.
В многоязычных системах списки слов на каждом языке могут быть собраны таким образом, чтобы отсутствовали слова, которые являются одинаковыми в списках для различных языков. Например, слово "gift" является допустимым словом, как на английском, так и на немецком, но данное слово будет включено лишь в один из английских и немецких упорядоченных списков слов. Это может предоставить преимущество в том, что при работе во втором обратном направлении, преобразующем последовательности из трех слов в координаты по широте и по долготе, сервер может идентифицировать язык вводимой последовательности слов посредством самих слов без необходимости указания языка, поскольку слова появляются лишь в списке слов одного языка.
В многоязычных системах при работе в первом прямом направлении, используемом при преобразовании координат по широте и по долготе в последовательности их трех слов, пользователю необходимо информировать систему о том, на каком языке должна быть предоставлена последовательность из трех слов. В некоторых примерах данное информирование может быть выполнено по умолчанию, например, система может предположить, что пользователю необходимо предоставить последовательность из трех слов на том же языке, какой пользователь выбрал для использования на вебсайте для получения доступа к серверу системы. В некоторых примерах при отсутствии данного информирования система может предоставить последовательность из трех слов на языке по умолчанию.
В многоязычных системах степень привлекательности, присвоенная различным ячейкам, может изменяться в зависимости от различных языков. Например, на английском Лондон будет иметь более высокую степень привлекательности, чем Париж, тогда как на французском Париж будет иметь более высокую степень привлекательности, чем Лондон. Для этого необходимо, чтобы этап 52 степени привлекательности выполнялся отдельно для каждого отличного языка с различными значениями n, присвоенными одинаковым ячейкам в зависимости от различных языков.
В проиллюстрированном примере ячейкам, оцененным как более привлекательные, присвоены меньшие значения n. В других примерах ячейкам, оцененным как более привлекательные, могут быть присвоены большие значения n при условии, что соответствующие изменения вносятся и на других этапах алгоритма.
В проиллюстрированном примере три слова должны находиться в конкретной последовательности. В других примерах последовательность слов может не учитываться. Однако, если последовательность слов не учитывается, предполагается, что эффективность системы будет снижена, то есть потребуется большее количество уникальных слов для идентификации заданного количества местоположений.
В проиллюстрированном примере система охватывает всю поверхность мира. В других примерах охваченные географические области могут быть меньше. В некоторых примерах система может охватывать лишь материковую область. В других примерах могут быть исключены по существу ненаселенные дикие местности вокруг одного или обоих полюсов. В некоторых примерах система может охватывать лишь конкретный континент, страну или область. В одном примере система может охватывать лишь Европу, в одном примере система может охватывать лишь Великобританию.
В проиллюстрированном примере используется последовательность из трех слов. В других примерах может быть использована последовательность, содержащая различное количество слов. Использование трех слов может предоставить преимущества. Если бы было использовано лишь два слова, количество необходимых уникальных слов было слишком большим для удобного предоставления с использованием одного языка и было бы необходимо использовать слова, которые неизвестны пользователям. Данная проблема могла бы не возникнуть, если бы область, охваченная системой, была меньше. Если используется больше трех слов пользователи могут столкнуться с проблемой запоминания последовательности слов.
В проиллюстрированном примере система включает смартфоны пользователя. В других примерах смартфоны могут быть заменены альтернативными устройствами мобильной связи или другими устройствами пользователя. Данные альтернативные устройства пользователя должны иметь достаточную коммуникационную функциональность для возможности установки связи с сервером 3. Однако необязательно, чтобы их первичной функцией являлось предоставление мобильной связи с пользователями.
В проиллюстрированном примере система идентифицирует местоположения со степенью разрешения приблизительно 3м, при этом каждое местоположение идентифицируется в качестве находящегося в конкретном квадрате или области приблизительно 3 метра на 3 метра. В других примерах местоположения могут быть идентифицированы с отличной степенью разрешения в качестве находящихся в квадрате или области, имеющей отличный размер.
В проиллюстрированном примере координаты местоположения являются координатами GPS в виде координат по широте и по долготе до шести десятичных знаков. В других примерах могут быть использованы различные системы координат. Также, в некоторых примерах могут быть использованы координаты, имеющие различные уровни точности. Следует понимать, что точность, с которой изобретение может идентифицировать местоположения, то есть в описанном примере размер идентифицированных квадратов или областей, будет в конечном счете зависеть от точности координат местоположения.
В проиллюстрированном примере средства определения местоположения являются спутниковой навигационной системой, такой как GPS. В других примерах могут быть использованы различные навигационные системы.
В проиллюстрированном примере используется один центральный сервер. В других примерах распределенная система обработки, такая как сеть серверов, может быть использована вместо одного центрального сервера.
В проиллюстрированном примере сеть Интернет используется для связи между различными частями системы. В других примерах могут быть использованы различные сети передачи данных. В некоторых примерах устройства пользователя могут быть способны использовать ряд различных средств связи для связи с сервером.
В проиллюстрированном примере система идентификации местоположения включает центральный сервер, доступ к которому имеет множество смартфонов или других вычислительных устройств. В других примерах вся система может быть предоставлена на одном вычислительном устройстве, таком как персональный компьютер (PC) или смартфон пользователя. В целом, предполагается, что проиллюстрированная серверная архитектура может являться предпочтительной для пользователей, поскольку то количество данных, которое должно быть сохранено и обработано системой, может быть сложно или затратно предоставить на нескольких вычислительных устройствах пользователя. С другой стороны, преимущество предоставления всей системы на одном вычислительном устройстве, таком как карманное вычислительное устройство, например, смартфон, планшетный компьютер или тому подобное, состоит в том, что система может быть затем использована в режиме офлайн. Под режимом офлайн понимается, что система может быть использована для создания идентификатора местоположения в соответствии с изобретением или для идентификации местоположения посредством идентификатора местоположения без соединения с другим вычислительным устройством, таким как сервер, через сеть, такую как, сеть Интернет, независимо от того, соединено ли или имеет ли возможность соединения с сетью карманное вычислительное устройство. Как и раньше, средства для получения географических координат местоположения могут содержать часть карманного вычислительного устройства или могут являться вспомогательным устройством, соединенным с ним посредством проводного или беспроводного соединения.
Системы и устройство, описанные выше, могут быть реализованы по меньшей мере частично в программном обеспечении. Специалистам в данной области техники будет понятно, что устройство, описанное выше, может быть реализовано с использованием вычислительного оборудования общего назначения или с использованием оговоренного оборудования.
Различные компоненты системы могут быть предоставлены программными модулями, исполняющимися на компьютере.
Аппаратные элементы, операционные системы и языки программирования данных компьютеров являются традиционными по своей природе и исходя из этого, специалисты в данной области техники в достаточной мере знакомы с ними. Конечно, функции сервера могут быть распределенно реализованы на ряде подобных платформ для распределения нагрузки обработки.
В данном случае аспекты способов и устройства, описанных в данном документе, могут быть выполнены на вычислительном устройстве, таком как сервер. Программные аспекты технологии могут быть представлены как "продукты" или "изделия производства", как правило, в виде исполняемого кода и/или соответствующих данных, которые содержатся на или включены по типу машиночитаемого носителя. Носители "запоминающего" типа включают любую или всю память компьютеров, процессоров или тому подобного, или связанные с ней модули, такие как различные полупроводниковые запоминающие устройства, накопители на магнитной ленте, дисковые накопители и тому подобное, которые могут в любое время обеспечить сохранение разработки программного обеспечения. Связь со всем или частями программного обеспечения может временами устанавливаться через сеть Интернет или различные другие телекоммуникационные сети. Данные связи, например, могут обеспечить загрузку программного обеспечения из одного компьютера или процессора на другой компьютер или процессор. Таким образом, другой тип носителей, который может содержать программные элементы, включает оптические, электрические или электромагнитные волны, например, используемые по всему физическому интерфейсу между локальными устройствами, через проводные и оптические наземные сети и через различные воздушные линии связи. Физические элементы, которые содержат данные волны, такие как проводные или беспроводные линии связи, оптические линии связи или тому подобное, также могут быть рассмотрены в качестве носителей, содержащих программное обеспечение. В данном контексте, если не ограничено материальными непромежуточными "запоминающими" носителями, термины, такие как "машиночитаемый носитель", относятся к любому носителю, который принимает участие в предоставлении команд процессору для исполнения.
Следовательно, машиночитаемый носитель может принимать много форм, включая, помимо всего прочего, материальный запоминающий носитель, носитель несущей волны или физический транзакционный носитель. Энергонезависимые запоминающие носители включают, например, оптические или магнитные диски, такие как любые запоминающие устройства в компьютере (компьютерах) или тому подобное, например, используемые для реализации кодирования, декодирования и т.д., показанных на графических материалах. Энергозависимые запоминающие носители включают динамическую память, такую как основная память компьютерной платформы. Материальные средства передачи включают коаксиальные кабели; медный провод и оптоволокно, включая провода, которые содержат шину внутри компьютерной системы. Средства передачи несущей волны могут принимать форму электрических или электромагнитных сигналов, или акустических или световых волн, таких как генерируются во время радиочастотных (RF) и инфракрасных (IR) передач данных. Общие формы машиночитаемых носителей, следовательно, включают, например: дискету, гибкий диск, жесткий диск, магнитную ленту, любой другой магнитный носитель, CD-ROM, DVD или DVD-ROM, любой другой оптический носитель, перфокарты, бумажную перфоленту, любой другой физический запоминающий носитель с сеткой из отверстий, RAM, PROM и EPROM, FLASH-EPROM, любую интегральную схему или картридж памяти, данные или команды передачи несущей волны, кабели или линии связи, передающие такую несущую волну, или любой другой носитель, с которого компьютер может считать программный код и/или данные. Многие из данных форм машиночитаемых носителей могут быть включены в передачу одной или нескольких последовательностей из одной или нескольких команд на процессор для исполнения.
Специалистам в данной области техники будет понятно, что, несмотря на то, что в вышеизложенном описании рассматривается наилучший способ и, по необходимости, другие способы осуществления изобретения, изобретение не должно ограничиваться конкретными конфигурациями устройства или этапами способа, раскрытыми в данном описании предпочтительного варианта осуществления. Следует понимать, что в данном случае могут быть осуществлены различные модификации, и, что предмет изобретения, раскрытый в данном документе, может быть реализован в различных формах и примерах, и, что идеи могут быть применены к многочисленным приложениям, лишь некоторые из которых были описаны в данном документе. Следующей формулой изобретения предполагается заявление любого или всех применений, модификаций и вариаций, которые подпадают под истинный объем настоящих идей. Специалистам в данной области техники будет понятно, что изобретение имеет широкий диапазон применений, и, что варианты осуществления могут иметь широкий диапазон модификаций без отступления от идеи изобретения, как определено в прилагаемой формуле изобретения.
Несмотря на то, что настоящее изобретение было описано в отношении конкретных приведенных в качестве примера вариантов осуществления, следует понимать, что различные модификации, изменения и/или сочетания признаков, раскрытых в данном документе, будут понятны специалистам в данной области техники без отступления от сущности и объема изобретения, как изложено в следующей формуле изобретения.
Группа изобретений относится к идентификатору местоположения. Технический результат – обеспечение возможности идентификации сообщения местоположений удобным для восприятия пользователя образом. Для этого предусмотрено: получение географических координат местоположения; преобразование географических координат в одно уникальное значение; преобразование одного уникального значенияв уникальную группу из множества значений; преобразование множества значений в равное множество соответствующих слов; и предоставление множества слов в качестве идентификатора местоположения, и способ идентификации местоположения, включающий: получение идентификатора местоположения для местоположения; при этом идентификатор местоположения содержит множество слов; преобразование множества слов в уникальную группу из равного множества соответствующих значений; преобразование уникальной группу из множества значений в одно уникальное значение; преобразование одного уникального значенияв географические координаты; и вывод географических координат. 4 н. и 22 з.п. ф-лы, 5 ил., 3 табл.