BR112015026511B1 - Método implementado por computador para produzir um identificador de localização, método implementado por computador para identificar uma localização, aparelho para identificar uma localização e método identificador de localização - Google Patents

Método implementado por computador para produzir um identificador de localização, método implementado por computador para identificar uma localização, aparelho para identificar uma localização e método identificador de localização Download PDF

Info

Publication number
BR112015026511B1
BR112015026511B1 BR112015026511-1A BR112015026511A BR112015026511B1 BR 112015026511 B1 BR112015026511 B1 BR 112015026511B1 BR 112015026511 A BR112015026511 A BR 112015026511A BR 112015026511 B1 BR112015026511 B1 BR 112015026511B1
Authority
BR
Brazil
Prior art keywords
location
words
integer
integers
cell
Prior art date
Application number
BR112015026511-1A
Other languages
English (en)
Other versions
BR112015026511A2 (pt
Inventor
Mohan GANESALINGAM
Christopher SHELDRICK
Jack WALEY-COHEN
Original Assignee
What3Words Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48537530&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BR112015026511(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by What3Words Limited filed Critical What3Words Limited
Publication of BR112015026511A2 publication Critical patent/BR112015026511A2/pt
Publication of BR112015026511B1 publication Critical patent/BR112015026511B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/14Receivers specially adapted for specific applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • H04W64/006Locating users or terminals or network equipment for network management purposes, e.g. mobility management with additional information processing, e.g. for direction or speed determination

Abstract

MÉTODO, APARELHO E PROGRAMA DE COMPUTADOR PARA IDENTIFICAR E COMUNICAR LOCALIZAÇÕES. por tratar-se de um método para produzir um identificador de localização, compreendendo: obter as coordenadas geográficas de uma localização; converter as coordenadas geográficas em valor único individual n; converter o valor único individual n em um grupo exclusivo tendo uma pluralidade de valores; converter a pluralidade de valores em uma pluralidade igual de palavras respectivas; e prover a pluralidade de palavras como um identificador de localização, e um método de identificação de uma localização, compreendendo: obter um identificador de localização para uma localização, tal identificador de localização compreendendo uma pluralidade de palavras; converter a pluralidade de palavras em um grupo exclusivo tendo uma pluralidade igual de valores respectivos; converter o grupo exclusivo tendo uma pluralidade de valores em um valor único individual n; converter o valor único individual n em coordenadas geográficas; e transmitir/exibir as coordenadas geográficas.

Description

[001] Este invento refere-se geralmente a um método e um aparelho para a identificação e comunicação de localizações, e em particular a um método e um aparelho para identificar e comunicar as localizações de uma maneira amigável para um usuário humano.
ANTECEDENTES DA INVENÇÃO
[002] Nos últimos anos, os sistemas de localização baseados em satélite têm tido uso generalizado, sendo capazes de determinar com grande precisão a localização de um dispositivo incorporando o sistema de localização. Além de estarem incorporados em dispositivos de navegação especializados, tais sistemas de localização baseados em satélite estão rotineiramente incluídos em telefones inteligentes (smartphones) e dispositivos similares de comunicação móvel e / ou de computação de uso geral.
[003] O uso de coordenadas numéricas geométricas para identificar localizações, tais como as coordenadas de latitude e longitude ou referências de grade, é bem conhecido, e os sistemas de localização baseados em satélite geralmente identificam as localizações que utilizam essas coordenadas numéricas. Por exemplo, um sistema de GPS (Global Positioning System - Sistema de Posicionamento Global) identifica localizações usando coordenadas de GPS, que são comumente apresentadas como coordenadas de latitude e longitude de alta resolução.
[004] Um problema prático com o uso de coordenadas numéricas para identificar localizações é que as cadeias numéricas resultantes não são muito amigáveis para os usuários. Na prática, as pessoas geralmente acham que cadeias de números são difíceis de lembrar com precisão ou de serem comunicados verbalmente para outras pessoas. Além disso, introduzir manualmente, com exatidão, sequências de números em um dispositivo, por exemplo, para dizer a um dispositivo de navegação onde você deseja ir, ou para incorporar uma localização em uma mensagem enviada para outra pessoa, pode ser relativamente lento e demorado.
[005] Em alguns casos, os locais são identificados utilizando-se outros meios, tais como os códigos postais ou nomes de ruas, possivelmente em conjunto com os números dos edifícios, mas essas abordagens sofrem do problema de que podem ser relativamente imprecisas e, geralmente, são designadas apenas para edifícios. Em particular, os códigos postais geralmente são atribuídos somente aos locais onde se supõe que a correspondência vai ser entregue ou retirada. Como resultado, muitas vezes essas abordagens são úteis apenas em áreas urbanas, onde uma alta densidade de códigos, nomes e números adequados foi atribuída. Além disso, os códigos postais não são necessariamente mais fáceis de lembrar e de serem comunicados verbalmente do que as coordenadas numéricas. Além disso, diferentes países ou regiões usam sistemas diferentes para a identificação de endereços, e muitos desses sistemas de endereços são relativamente simples e de valor limitado para a identificação ou comunicação de localizações específicas.
[006] De preferência, o presente método e aparelho resolve este problema.
DESCRIÇÃO GERAL DA INVENÇÃO
[007] Em um primeiro aspecto, a invenção provê um método de computador implementado para produzir um identificador de localização compreendendo: receber em um processador as coordenadas geográficas de uma localização compreendendo sequências de números de meios de determinação de localização; no referido processador, executar as etapas de: - converter as coordenadas geográficas compreendendo sequências de números em um inteiro único individual n; - converter o inteiro único individual n em um grupo único tendo uma pluralidade de inteiros; e - converter a pluralidade de inteiros em um número de palavras respectivas onde o número de palavras respectivas é igual ao número de inteiros compreendendo referido grupo único tendo uma pluralidade de inteiros; e - tornar o número de palavras respectivas disponível como um identificador de localização.
[008] De preferência, o método compreende ainda definir uma matriz de células através de uma área geográfica; e no referido processador, executar a etapa de converter as coordenadas geográficas compreendendo uma sequência de números em um inteiro único individual n, compreendendo a realização das etapas de: converter as coordenadas geográficas em um valor de identidade de célula que identifica a célula que contém a localização, e um valor de posição de célula que identifica a posição da localização no interior da célula; e converter o valor de identidade de célula e um valor de posição de célula em um inteiro único individual n.
[009] De preferência, as coordenadas geográficas são coordenadas de latitude e longitude.
[010] Preferivelmente, a pluralidade de palavras está em uma sequência definida.
[011] Preferencialmente, o valor de identidade de célula é um par de números inteiros X, Y, e o valor de posição de célula é um par de números inteiros x, y.
[012] Preferivelmente, as coordenadas de latitude e longitude são convertidas no valor de identidade de célula e no valor de posição de célula utilizando as equações: X = floor((Longitude + 180) * 24) Y = floor((Latitude + 90) * 24) x = floor(W(Y) * frac((Longitude + 180) * 24)) y = floor(1546 * frac((Latitude + 90) * 24)) onde W(Y) = max(1, floor (1546 * cos((Y + 0,5) / 24 - 90)))
[013] De preferência, o valor de identidade de célula e os valores de posição de célula X, Y, x e y são convertidos em um inteiro único individual n, atribuindo-se a cada célula identificada por um valor de identidade de célula X, Y uma faixa única de valores de n tendo um valor q mais baixo, obtendo-se então n por meio da equação: n = q + 1.546 * x + y
[014] De preferência, o inteiro único individual n é convertido em um grupo único de três inteiros i, j, k, onde os três inteiros i, j e k são convertidos em três palavras respectivas; e as três palavras são providas como um identificador de localização.
[015] De preferência, converter o inteiro único individual n no grupo único de três inteiros i, j, k compreende: converter o inteiro único individual n em um valor inteiro único individual m, dividindo-se os valores possíveis de n em blocos de valores, e misturar os valores de n em um bloco de valores para obter m.
[016] De preferência, a conversão do inteiro único individual n em um grupo único de três inteiros i, j, k compreende ainda a conversão do valor único individual m em um grupo único de três inteiros i, j, k, da seguinte maneira: definir l = floor(cuberoot (m)); então no caso em que l3 < m < l3 + l2 + 21 + 1, então i = l, j = r div (l + 1), e k = r mod (l + 1), onde r = m - l 3; ou no caso em que l 3 + l 2 + 2l + 1 < m < l 3 + 2l 2 + 3l + 1, então i = r div (l + 1), j = l, e k = r mod (l + 1), onde r = m - (l 3 + l 2 + 2l + 1); ou no caso em que l 3 + 2l 2 + 3l + 1 < m < l 3 + 3l 2 + 3l + 1, então i = r div l, j = r mod l, k = l, onde r = m - (l 3 + 2l 2 + 3l + 1).
[017] Preferencialmente, o grupo único de três inteiros i, j, k são convertidos em três palavras respectivas, comparando-se cada inteiro com uma lista ordenada de palavras e convertendo-se cada inteiro para a palavra na posição do inteiro na lista ordenada.
[018] Em um segundo aspecto, a invenção provê um aparelho adaptado para produzir um identificador de localização, ao realizar o método do primeiro aspecto.
[019] Em um terceiro aspecto, o invento provê um programa de computador que produz um identificador de localização compreendendo instruções de computador legíveis que, quando executadas por um processador, farão o processador executar as etapas do método do primeiro aspecto.
[020] Em um quarto aspecto, a invenção provê um método para identificar uma localização, implementado por computador, compreendendo: - receber em um processador de um módulo de identificação de localização um identificador de localização para uma localização, onde o identificador de localização compreende uma pluralidade de palavras; - no referido processador, executar as etapas de: - converter a pluralidade de palavras em um grupo único tendo um número de inteiros respectivos onde o número de inteiros é igual ao número de palavras compreendendo referida pluralidade de palavras; - converter o grupo único de inteiros em um inteiro único individual n; - converter o inteiro único individual n em coordenadas geográficas compreendendo sequências de números; e - Transmitir / exibir as coordenadas geográficas compreendendo sequências de números em um meio de determinação de localização.
[021] De preferência, o método compreende ainda definir uma matriz de células através de uma área geográfica; e no referido processador, executar a etapa de converter o inteiro único individual n em coordenadas geográficas compreende a realização das etapas de: - converter o inteiro único individual n em um valor de identidade de célula que identifica a célula contendo a localização e um valor de posição de célula que identifica a posição da localização dentro da célula; e - converter o valor de identidade de célula e o valor de posição de célula em coordenadas geográficas.
[022] De preferência, as coordenadas geográficas são coordenadas de latitude e longitude.
[023] Preferencialmente, a pluralidade de palavras está em uma sequência definida.
[024] De preferência, o valor de identidade de célula é um par de números inteiros X, Y, e o valor de posição de célula é um par de números inteiros x, y.
[025] De preferência, o valor de identidade de célula e o valor de posição de célula são convertidos em coordenadas geográficas, utilizando as equações: Latitude = (Y + ((y + 0,5) / 1546)) / 24 * 90 Longitude = (X + ((x + 0,5) / (W(Y))) / 24 - 180 onde W(Y) = max(1, floor(1546 * cos((Y + 0,5) / 24 - 90)))
[026] De preferência, o inteiro único individual n é convertido no valor de identidade de célula e nos valores de posição de célula X, Y, x e y, associando-se cada célula identificada por um valor de identidade de célula X, Y com uma faixa única de valores de n, cada faixa única tendo um valor q mais baixo, e identificando-se a faixa atribuída de valores de n na qual o inteiro n está; em seguida, toma-se o valor de identidade de célula X, Y associado com a faixa atribuída identificada, e determina-se X e Y utilizando as equações; x = (n - q) div 1546 y = (n - q) mod 1546
[027] De preferência, a pluralidade de palavras compreende três palavras; as três palavras são convertidas em um grupo único de três inteiros respectivos i, j e k; e o grupo único de três inteiros i, j, k é convertido em um valor único inteiro n;
[028] De preferência, a conversão do grupo único de três inteiros i, j, k no inteiro único individual n compreende: converter um valor inteiro único individual m no inteiro único individual n, dividindo-se os valores possíveis de m em blocos de valores com tamanho igual, e misturar os valores de m em um bloco de valores, para obter n.
[029] De preferência, a conversão do grupo único de três inteiros i, j, k no inteiro único individual n compreende ainda a conversão do valor único m em um grupo único de três inteiros i, j, k, da seguinte maneira: definir l = max(i; j; k); então no caso em que i = l , então m = l 3 + (l + 1) j + k; ou no caso em que j = l, então m = l 3 + l 2 + 2l + 1 + (l + 1) i + k; ou no caso em que k = L, então m = l 3 + 2l 2 + 3l + 1 + li + j
[030] De preferência, as três palavras são convertidas no grupo único de três respectivos inteiros i, j, k, armazenando-se as palavras e valores de números inteiros em uma matriz associativa, e procurando-se a palavra correspondente a cada número inteiro.
[031] Em um quinto aspecto, o invento provê um aparelho adaptado para identificar uma localização, que realiza o método do quarto aspecto.
[032] Em um sexto aspecto, a invenção provê um programa de computador para identificação de localização, compreendendo instruções de computador legíveis que, quando executadas por um processador, farão o processador executar as etapas do método do quarto aspecto.
[033] Adicionalmente, o invento provê sistemas, dispositivos e artigos de manufatura, para implementar qualquer um dos acima mencionados aspectos do invento.
DESCRIÇÃO DAS FIGURAS
[034] A invenção será agora descrita em detalhes com referência às seguintes figuras, nas quais:
[035] A figura 1 é um diagrama de um exemplo de um sistema de acordo com a presente invenção;
[036] A figura 2 é um diagrama de um exemplo de dispositivo de usuário utilizado no sistema da figura 1;
[037] A figura 3 é um fluxograma de operação, em uma primeira direção, do sistema da figura 1;
[038] A figura 4 é um fluxograma de operação, em uma segunda direção, do sistema da figura 1; e
[039] A figura 5 é um diagrama da operação do servidor do sistema da figura 1.
DESCRIÇÃO DETALHADA
[040] A figura 1 ilustra uma vista geral de um exemplo de um sistema de identificação de localização e de comunicação 1 de acordo com a presente invenção.
[041] O sistema 1 compreende uma série de dispositivos de usuário 2 e um servidor central 3. Os dispositivos de usuário 2 compreendem telefones inteligentes (smartphones) 2a e computadores pessoais (CPs) 2b, onde cada um dos dispositivos de usuário 2, isto é, os telefones inteligentes de usuário 2a e computadores pessoais de usuário 2b, pode se comunicar com o servidor central 3 através da Internet 4. Por motivos de clareza, apenas três telefones inteligentes de usuário 2a e um único CP de usuário 2b são mostrados na figura 1, porém deve ser observado que, na prática, o sistema 1 pode compreender um grande número de dispositivos do usuário 2, tais como smartphones de usuário 2a e CPs de usuário 2b.
[042] A figura 2 ilustra um exemplo de um telefone inteligente de usuário 2a do sistema 1 em mais detalhes. Como mostrado na figura 2, um smartphone de usuário 2a inclui um processador de dados 10, um mostrador visual 11, uma interface de usuário 12 que permite que as instruções do usuário sejam introduzidas no smartphone 2a, um alto-falante 13, e um microfone 14. Os vários componentes do smartphone 2a operam sob o controle do processador 10. A interface de usuário 12 pode ser integrada com o mostrador visual, tal como uma tela de toque (touch screen). Em outros exemplos, a interface de usuário 12 pode ser um teclado dedicado separado do mostrador visual. Os smartphones incluindo esses componentes são bem conhecidos pelos peritos na arte, e assim não precisam ser descritos em detalhe. Deve ser entendido que os CPs de usuário 2b têm uma funcionalidade semelhante.
[043] Além disso, o smartphone 2a compreende meios de determinação de localização 15, um módulo de mapeamento ou navegação 16, e um módulo de identificação de localização 11. O módulo de navegação 16 e o módulo de identificação de localização 17 estão dispostos para receberem informações de posição vindas dos meios de determinação de localização 15. No exemplo ilustrado, os meios de determinação de localização 15 são um sistema de posicionamento global (GPS). Em outros exemplos, diferentes sistemas de navegação por satélite podem ser utilizados. O módulo de navegação 16 e o módulo de identificação de localização 17 podem incluir hardwares dedicados, ou podem compreender programas ou aplicativos de software executados em um processador 10 do smartphone 2a. Em alguns exemplos, um CP de usuário 2b pode não incluir os meios de determinação de localização 15. Em alguns exemplos, um CP de usuário 2b que não compreende os meios de determinação de localização pode ainda ter acesso às informações de localização a partir de meios de determinação de localização separados.
[044] O módulo de identificação de localização 17 utiliza as informações de posição fornecidas pelos meios de determinação de localização 15 para prover um usuário com serviços baseados em localização.
[045] Para maior clareza, a operação do sistema 1 com um smartphone de usuário 2a compreendendo meios de determinação de localização 15 será discutida.
[046] A figura 3 é um fluxograma de um exemplo de um serviço baseado em localização de acordo com a presente invenção. No exemplo da figura 3, o smartphone 2a provê o usuário com as informações que identificam a localização atual do usuário, em resposta a uma solicitação do usuário. O usuário pode, por exemplo, requisitar essas informações para que o usuário possa comunicar a localização para outra pessoa. Por exemplo, o usuário pode querer informar alguém sobre a localização atual do usuário.
[047] Em primeiro lugar, o usuário solicita ao smartphone 2a a identificação da sua localização atual, utilizando a interface de usuário 12 em uma etapa de solicitação 20. Em resposta a esta solicitação, o módulo de identificação de localização 17 obtém as coordenadas de localização atuais do smartphone 2a a partir dos meios de determinação de localização 15, em uma etapa de obtenção 21. Estas coordenadas de localização atuais são fornecidas pelos meios de determinação de localização 15 como coordenadas de GPS, que são coordenadas de latitude e longitude com precisão de seis casas decimais, como por exemplo "52,123456, -0,654321". As coordenadas posicionais estão prontamente disponíveis com este grau de precisão a partir de sistemas de navegação baseados em satélite, tal como o GPS.
[048] As coordenadas de latitude e longitude obtidas da posição atual do smartphone 2a são então enviadas pelo módulo de identificação de localização 17 para o servidor 3, através da Internet 4, utilizando a funcionalidade de comunicação do smartphone 2a, em uma etapa de envio 22.
[049] Em seguida, o servidor 3 converte as coordenadas de latitude e longitude recebidas em um identificador de localização compreendendo uma sequência exclusiva de três palavras, como por exemplo "microfone do tablet ativado", em uma etapa de conversão 23. Esta conversão é executada usando um algoritmo descrito abaixo em detalhes.
[050] O servidor 3 retorna então o identificador de localização com a sequência de três palavras para módulo de identificação de localização 17 do smartphone 2a, através da Internet 4, em uma etapa de retorno 24.
[051] O identificador de localização recebido é então exibido para o usuário no mostrador visual 11 do smartphone 2a como um texto compreendendo a sequência exclusiva de três palavras, em uma etapa de exibição 25. Alternativamente, ou além disso, na etapa de exibição 25 o identificador de localização recebido pode ser provido para o usuário como voz (áudio), compreendendo a sequência exclusiva de três palavras, através do alto- falante 13. Em alguns exemplos em que o identificador de localização de três palavras é provido ao usuário como voz, a voz pode ser gerada a partir do texto do identificador de localização de três palavras pelo smartphone 2a.
[052] O usuário pode então usar o identificador de localização compreendendo a sequência exclusiva de três palavras para identificar a sua localização atual. Por exemplo, o usuário pode memorizar ou gravar a sequência exclusiva de três palavras para que ele possa utilizar a sequência de três palavras para identificar a sua posição atual em um momento posterior. Em outro exemplo, o usuário pode dizer a sequência de três palavras para outra pessoa, tanto em uma conversação face a face como por telefone, para comunicar a localização para a outra pessoa, para que ela possa identificar a localização. Em outro exemplo, o usuário pode comunicar a localização através do envio da sequência de três palavras para outra pessoa, como texto, por exemplo, utilizando e-mail ou SMS (Short Message Service - Serviço de Mensagem Curta), para que a outra pessoa possa identificar a localização. Em outro exemplo, o usuário pode comunicar a localização tornando a sequência de três palavras disponível através de mídia social, para que uma ou mais pessoas tendo acesso à mídia social possam identificar a localização.
[053] Em outros exemplos, em vez de identificar a localização atual do usuário, as coordenadas de latitude e longitude obtidas podem ser de outra localização, como por exemplo um local proposto para uma reunião ou uma visita, ou uma localização que o usuário ou outra pessoa pode achar interessante. Em tais exemplos, uma vez que as coordenadas de latitude e longitude não são a localização atual do usuário, elas devem ser obtidas de uma maneira diferente. Por exemplo, as coordenadas de latitude e longitude podem ser obtidas a partir de um aplicativo de mapeamento no smartphone do usuário, com o usuário selecionando um local de interesse em um mapa exibido, e o aplicativo de mapeamento fornecendo as coordenadas de latitude e longitude do local selecionado.
[054] A figura 4 é um fluxograma de um outro exemplo de um serviço baseado em localização de acordo com a presente invenção. No exemplo da figura 4, o smartphone 2 exibe para um usuário a localização identificada por um identificador de localização compreendendo uma sequência exclusiva de três palavras conhecida pelo o usuário. O usuário pode, por exemplo, querer que esta localização seja identificada, para que possa viajar para esse local.
[055] Em primeiro lugar, o usuário solicita que o smartphone 2a exiba, em uma etapa de solicitação 30, a localização identificada por um identificador de localização compreendendo uma sequência exclusiva de três palavras.
[056] Em seguida, o usuário insere o identificador de localização com a sequência de três palavras, por exemplo, "pão canto coldre", utilizando a interface de usuário 12 em uma etapa de entrada ou inserção 31. Alternativamente, em alguns exemplos, a solicitação e / ou a inserção (entrada) pode ser feita oralmente utilizando-se o microfone 14. Em tais exemplos, o smartphone 2a deve incluir ou ter acesso a meios de reconhecimento de fala adequados.
[057] O smartphone 2a passa o identificador de localização com a sequência de três palavras inserida para o módulo de identificação de localização 17, e o módulo de identificação de localização 17 envia então o identificador de localização de três palavras para o servidor 3 através da Internet 4, utilizando a funcionalidade de comunicação do smartphone 2, em uma etapa de envio 32.
[058] O servidor 3 converte então o identificador de localização exclusivo com a sequência de três palavras recebido em coordenadas de latitude e longitude, com seis casas decimais, por exemplo, "73,354721, 23,879527", em uma etapa de conversão 33. Esta conversão é realizada usando um algoritmo descrito abaixo em detalhes.
[059] Em seguida, o servidor 3 retorna essas coordenadas de latitude e longitude para módulo de identificação de localização 17 do smartphone 2 através da Internet 4, em uma etapa de retorno 34.
[060] O módulo de identificação de localização 17 passa as coordenadas de latitude e longitude recebidas para os meios de determinação de localização 15, e os meios de determinação localização 15 exibem então para o usuário, no mostrador visual 11 do smartphone 2a, a localização determinada, em uma etapa de exibição 35. Por exemplo, os meios de determinação de localização 15 podem exibir um mapa no mostrador visual 11, incluindo a, ou centralizado na, localização determinada, e indicar a localização determinada como uma marca ou cursor sobre o mapa. Alternativamente, ou adicionalmente, na etapa de exibição 35, os meios de determinação de localização 15 podem exibir no mostrador visual 11 instruções para guiar o usuário até a localização determinada. Em alguns exemplos em que o usuário é direcionado para a localização determinada, as instruções podem ser dadas como voz (áudio), através de um alto-falante do smartphone 2a.
[061] No exemplo ilustrado, o sistema 1 compreende dispositivos de usuário 2 na forma de smartphones 2a e computadores pessoais (CP) 2b do usuário. Em outros exemplos, o sistema 1 pode, adicionalmente ou alternativamente, compreender dispositivos de usuário 2 sob a forma de outros tipos de dispositivos de computação, como por exemplo computadores do tipo laptop e / ou tablet. Esta lista de exemplos não pretende ser exclusiva.
[062] No exemplo ilustrado, alguns dos dispositivos de usuário são smartphones de usuário 2a compreendendo meios de determinação de localização. Não é essencial que todos os dispositivos de usuário compreendam meios de determinação de localização. Em outros exemplos, alguns ou todos os dispositivos de usuário 2 podem estar dispostos de modo a comunicarem-se com meios de determinação de localização separados. Em outros exemplos, alguns ou todos os dispositivos do usuário 2 podem não ter nenhum acesso a meios de determinação de posição. Algumas funcionalidades do sistema podem não estar disponíveis em um dispositivo de usuário 2 que não tem acesso a meios de determinação de posição, como por exemplo a identificação da localização atual do usuário, no entanto o sistema ainda pode ser utilizado através de tal dispositivo de usuário 2 para prover outros serviços, por exemplo, a identificação de um local proposto para uma reunião, ou exibir o local identificado por um identificador de localização.
[063] No exemplo ilustrado, os dispositivos do usuário são smartphones de usuário 2a compreendendo um módulo de mapeamento ou navegação. Não é essencial que os dispositivos de usuário compreendam um módulo de mapeamento ou navegação.
[064] Em alguns exemplos, o sistema 1 pode compreender um website que pode ser acessado por dispositivos de computação do usuário. Em alguns exemplos, o website pode ser hospedado pelo servidor 1. Em outros exemplos, o website pode ser hospedado por um servidor separado. Nesses exemplos, o website pode prover funções de mapeamento e / ou de navegação para os dispositivos de computação do usuário que acessam o website.
[065] Como discutido acima, de acordo com a presente invenção as localizações são identificadas utilizando-se identificadores ou nomes de localização exclusivos constituídos por palavras em lugar de coordenadas numéricas, com cada identificador de localização sendo constituído por três palavras em uma sequência específica, e o método e o aparelho da invenção realizam a conversão de coordenadas geográficas em identificadores de localização exclusivos com três palavras, realizando a conversão dos identificadores de localização exclusivos de três palavras em coordenadas geográficas. Tais identificadores de localização feitos com uma sequência de três palavras são geralmente muito mais fáceis para os usuários lembrarem e comunicarem em comunicações escritas e verbais do que as cadeias numéricas que compõem as coordenadas geográficas. Por exemplo, usando o primeiro exemplo dado acima, a maioria das pessoas vai achar a frase "microfone do tablet ativado" mais fácil de lembrar, escrever, ler, dizer e entender em voz, do que a sequência de números "52,123456 - 0,654321". Isto também é verdade para outras formas de codificação de posição geográfica que utilizam sequências de letras e números para identificar as coordenadas geográficas, e a maioria das pessoas vai achar a frase "microfone do tablet ativado" mais fácil de lembrar, escrever, ler, dizer e entender em voz, do que uma sequência de letras números aleatórios, tal como "t6D3we1".
[066] A teoria de operação do invento pode ser explicada como se segue. Usando-se coordenadas de GPS na forma de coordenadas de latitude e longitude definidas com seis casas decimais, cada local na superfície da Terra pode ser identificado unicamente como estando em uma caixa ou área específica com cerca de 3 por 3 metros. Definir localizações para esta granularidade de aproximadamente 3 por 3 metros é algo suficientemente preciso para a maioria dos propósitos.
[067] Para cobrir toda a superfície da Terra, o número total de caixas diferentes que devem ser identificadas unicamente é de cerca de 5,7 * 1013, ou 57 trilhões. Se cada nome exclusivo for composto por três palavras reais em uma sequência específica, definir este número de nomes exclusivos exigirá aproximadamente 38.500 palavras reais, que estão prontamente disponíveis na maioria dos idiomas, tal como em Inglês.
[068] Em um exemplo alternativo, se apenas aquelas caixas com aproximadamente 3 por 3 metros localizadas em terra firme forem consideradas, e atribuídas com identificadores de localização, e as regiões geralmente desabitadas ao redor dos pólos norte e sul forem excluídas, o número total de caixas diferentes que devem ser identificadas unicamente é de cerca de 2,7 * 1013, ou 27 trilhões. Se cada nome exclusivo for composto por três palavras reais em uma sequência específica, definir este número de nomes exclusivos exigirá cerca de 25.000 palavras reais, que estão prontamente disponíveis na maioria dos idiomas, tal como em Inglês.
[069] É preferível que as palavras usadas para formarem as sequências de três palavras sejam palavras reais. Isto pode tornar mais fácil para os usuários lembrarem, pronunciarem, escreverem e identificarem as palavras.
[070] Conforme explicado acima, na presente invenção um algoritmo é utilizado para converter as coordenadas de latitude e longitude em identificadores de localização com sequências de três palavras, e vice-versa.
[071] Em princípio, pode parecer possível gerar um banco de dados contendo todas as combinações de palavras correspondentes a cada localização definível, usando uma coordenada exclusiva de latitude e longitude com seis casas decimais, e realizar a conversão usando uma coordenada, ou uma sequência de três palavras, para procurar a sequência de três palavras correspondente ou coordenada, respectivamente. No entanto, esta abordagem de força bruta exigiria um banco de dados com um tamanho de muitas centenas de Terabytes, que na prática seria difícil de manusear. Em particular, tal banco de dados seria difícil ou impossível de pesquisar em qualquer espaço de tempo praticável, a fim de realizar as conversões desejadas. Por conseguinte, no presente invento é utilizado um algoritmo para efetuar as conversões.
[072] A estrutura geral de um exemplo de um algoritmo de conversão de acordo com a presente invenção é mostrado na figura 5. O algoritmo 40 é, como um todo, reversível, e cada uma das etapas que constituem o algoritmo também é reversível. Portanto, o mesmo algoritmo 40 pode ser utilizado para converter as coordenadas de latitude e longitude em identificadores de localização com sequências de três palavras, e converter identificadores de localização com sequências de três palavras em coordenadas de latitude e longitude.
[073] Uma etapa de conversão de valor de célula e de posição 51 converte as coordenadas de latitude e longitude em quatro valores inteiros de célula e de posição X, Y, x, y, e vice-versa.
[074] Uma etapa de classificação de atratividade 52 converte os quatro valores inteiros de célula e de posição X, Y, x, y em um valor único inteiro n, e vice-versa.
[075] Uma etapa de misturar e desmisturar 53 converte o número inteiro n em um número inteiro diferente m, e vice-versa.
[076] Uma etapa de divisão e combinação 54 converte o número inteiro m em três inteiros i, j, k, e vice-versa.
[077] Uma etapa de conversão de palavra 55 converte cada um dos inteiros i, j, k em uma palavra, e vice-versa.
[078] O algoritmo converte coordenadas de latitude e longitude em identificadores de localização com sequências de três palavras, através da realização de cada uma das etapas em uma primeira direção, de avanço, na sequência 51-52-53-54-55. O algoritmo converte identificadores de localização com sequências de três palavras em coordenadas de latitude e longitude, através da realização de cada uma das etapas em uma segunda direção, reversa, na sequência 55-54-53-52-51.
[079] As diferentes etapas 51 a 55 do algoritmo serão agora descritas em mais detalhes. Elas serão descritas na ordem em que elas são realizadas para converter uma coordenada de latitude e longitude em um identificador de localização com uma sequência de três palavras.
[080] A etapa de conversão de célula 51 converte coordenadas de latitude e longitude com seis casas decimais, tais como coordenadas de GPS, em quatro valores inteiros de célula e posição X, Y, x, y, e vice-versa. A presente invenção divide a superfície do mundo em uma matriz ou grade com aproximadamente 3,7 * 107 células, isto é, aproximadamente 37 milhões de células. No equador, essas células são quadrados com 4,64 km, ou seja, cerca de 5 km, de lado. Devido à forma aproximadamente esférica da Terra, o tamanho e o formato dessas células varia, com as células tendo largura aproximadamente constante na direção Norte - Sul, e largura variável na direção Leste - Oeste, com a dimensão Leste - Oeste das células sendo geralmente menor em localizações mais afastadas do equador. No entanto, como ambas as coordenadas de latitude e longitude e as células são definidas em termos angulares, isto não afeta a precisão da conversão.
[081] O par de valores inteiros de célula X e Y identifica em qual célula a localização está, enquanto que o par de valores inteiros de posição x e y indica onde, dentro dessa célula, a localização está situada. Especificamente, o par de valores inteiros de posição x e y identifica uma caixa específica de 3 por 3 metros dentro da célula identificada pelo par de valores inteiros de célula X e Y. Assim, o par de valores inteiros de célula X e Y são uma coordenada definida em termos de grade de células, enquanto que o par de valores inteiros de posição x e y são uma coordenada dentro de uma célula. Por conseguinte, os quatro valores inteiros X, Y, x, y são referidos como valores de célula e de posição. As células são atribuídas com uma faixa diferente de valores de posição x, y com base na área da célula, de modo que as células com uma área maior são atribuídas com um maior número de valores de posição x, y. Assim, também por esta razão, a dimensão Leste - Oeste das células, sendo geralmente menor em locais mais distantes do equador, não afeta a precisão da conversão. Como resultado, as células com uma área maior contêm um maior número de localizações identificáveis, de modo que a granularidade, ou o tamanho da área de cada localização identificável, é aproximadamente constante. As células mais próximas do equador geralmente serão atribuídas com um maior número de valores de posição x, y e localizações identificáveis.
[082] Na primeira direção, de avanço, utilizada durante a conversão das coordenadas de latitude e longitude em sequências de três palavras, as seguintes fórmulas são usadas para calcular os valores de célula e de posição X, Y, x e y: X = floor((Longitude + 180) * 24) (1) Y = floor((Latitude + 90) * 24) (2) x = floor(W(Y) * frac((Longitude + 180) * 24)) (3) onde W(Y) = max(1, floor(1546 * cos((Y + 0,5)/24 - 90))) y = floor(1546 * frac((Latitude + 90) * 24)) (4)
[083] Onde o floor de um número real é o maior número inteiro menor ou igual a esse número real. A parte fracionária do número real q é q - floor (q); isto é escrito como frac (q). Mais informalmente, o floor de um número real é a parte antes da vírgula decimal, e parte fracionária é a parte após a vírgula decimal.
[084] Assim, floor(3,1415) = 3 e frac(3,1415) = 0,1415.
[085] Na segunda direção, reversa, utilizada durante a conversão de sequências de três palavras em coordenadas de latitude e longitude, as seguintes fórmulas são usadas para calcular os valores de latitude e longitude: Latitude = (Y + ((y + 0,5) / 1546))/24 - 90 (5) Longitude = (X + ((x + 0,5) / (W(Y)))/24 - 180 (6) Novamente, com W(Y) = max(1, floor(1546 * (cos(Y + 0,5)/24 - 90)))
[086] Embora esta etapa de conversão de célula 51 seja reversível, ela é apenas imperfeitamente reversível, e não perfeitamente reversível. Isto é, se uma coordenada de latitude e longitude original é convertida para um valor inteiro de célula e de posição, e em seguida convertida de volta para uma coordenada de latitude e longitude final, as coordenadas de latitude e longitude original e final serão ligeiramente diferentes. No entanto, na prática, a diferença é pequena, no máximo de cerca de 2,1 metros, e não causa um problema no presente exemplo, onde a granularidade da identificação de localização pelas sequências de três palavras é de aproximadamente 3 por 3 metros. Essa reversibilidade imperfeita surge em parte pelo fato de que as coordenadas de latitude e longitude são números reais, enquanto que os valores de célula e de posição são inteiros.
[087] A etapa de classificação de atratividade 52 converte os quatro valores inteiros de célula X, Y, x, y em um valor único inteiro n, e vice- versa. O valor inteiro n é referido como a classificação de atratividade. Como explicado anteriormente, a respeito da etapa de conversão de célula 51, cada par de valores inteiros de célula X e Y identifica uma célula específica, cada célula sendo um quadrado com aproximadamente 5 km por 5 km no equador. Conforme discutido acima, o tamanho e o formato das células variam em localizações diferentes. O valor inteiro n é um valor atribuído a uma célula, indicando o grau ou quantidade relativa da vontade dos usuários do sistema em quererem identificar localizações naquela célula, ou, em outras palavras, a atratividade da célula. Por exemplo, pode-se esperar que mais usuários vão querer identificar localizações em uma célula localizada no meio de uma grande cidade, como Londres, por exemplo, ao invés de quererem identificar localizações em uma célula situada em uma área deserta, tal como no deserto do Saara. De maneira mais geral, pode-se esperar que mais usuários vão querer identificar localizações em uma célula localizada em uma área urbana do que irão querer identificar localizações em uma célula em uma área rural.
[088] A classificação de atratividade n de uma localização é usada para determinar quais palavras serão usadas para formar a sequência de palavras atribuída a essa localização. No exemplo ilustrado as localizações consideradas como sendo de maior interesse para os usuários recebem um valor mais baixo de n, e as localizações atribuídas com um valor mais baixo de n são atribuídas com palavras mais amigáveis para o usuário, para formarem a sequência de palavras atribuída. A questão sobre quais palavras são consideradas como mais amigáveis é, inevitavelmente, e em certa medida, subjetiva. Contudo, as palavras geralmente podem ser consideradas como mais amigáveis se elas forem mais fáceis para os usuários usarem, por isso, por exemplo, palavras mais curtas, palavras de uso mais comum, palavras que não são facilmente confundidas com outras palavras, e / ou palavras com ortografia e pronúncia simples podem geralmente ser consideradas mais amigáveis.
[089] Na etapa de classificação atratividade 52, cada célula, que é identificada por um par específico de valores inteiros de célula X e Y, é atribuída com uma faixa correspondente de valores de n, em que cada valor de n na faixa corresponde a um par específico de valores inteiros de posição x e y. Assim, cada conjunto de quatro valores inteiros de célula X, Y, x, y corresponde a um valor único inteiro n, e vice-versa.
[090] Esta correspondência está ilustrada na tabela 1, que mostra uma relação explicativa entre exemplos de valores de célula X e Y e faixas de números de n. Deve ser notado que os valores na tabela 1 são ilustrativos, para a explicação do princípio envolvido, e não correspondem necessariamente aos valores que seriam utilizados na prática. Tabela 1:
Figure img0001
[091] A Tabela 1 mostra três exemplos de células, com as células identificadas pelos pares de números de célula X e Y com os valores (100, 60), (111, 40) e (170, 20). Cada célula é atribuída com uma faixa exclusiva de valores de n.
[092] Como pode ser visto na Tabela 1, as diferentes células foram atribuídas com faixas de valores de n contendo diferentes valores de números. Isto corresponde à faixa de valores de posição x, y atribuídos para a célula, que por sua vez depende da área da célula, como explicado acima. Nos exemplos mostrados na Tabela 1, a célula (100, 60) está em uma grande cidade, de modo que ela é considerada como tendo uma elevada atratividade, e por isso tem a menor faixa de valores de n; a célula (170, 20) é urbana, de modo que ela é considerada como tendo uma atratividade mediana, e por isso tem uma faixa média de valores de n; e a célula (110, 40) é rural, de modo que ela é considerada como tendo uma atratividade baixa, e por isso tem a maior faixa de valores de n. Além disso, nos exemplos mostrados na Tabela 1, a célula (110, 40) tem a maior área, e por isso tem a maior faixa de tamanho de valores de n; a célula (100, 60) tem uma área mediana, e por isso tem uma faixa de tamanho média de valores de n; e a célula (170, 20) tem a menor área, e por isso tem a menor faixa de valores de n.
[093] O sistema usado para atribuir atratividade às células pode ser tão complexo quanto desejado em qualquer sistema específico. A complexidade do processo usado para atribuir atratividade não tem nenhum impacto sobre o funcionamento do sistema. Em um exemplo, a atratividade é atribuída às células com base no país em que estão, e se elas são rurais, ou urbanas, ou estão em uma grande cidade. As células urbanas são atribuídas com uma atratividade maior do que as células rurais, e as células em uma grande cidade são atribuídas com uma atratividade maior do que as células urbanas. As células em diferentes países podem, por exemplo, ser atribuídas com valores de atratividade baseados na probabilidade dos usuários do país de origem do operador do sistema, e / ou os usuários que usam o idioma do sistema, viajarem para os países. Em alguns exemplos, as células nas cidades identificadas como cidades muito grandes ou como destinos de viagem muito comuns podem ser tratadas como um caso especial e consideradas como tendo uma atratividade maior, como por exemplo Londres e Paris.
[094] A fim de converter os quatro valores inteiros de célula X, Y, x, y em um valor único inteiro n, e vice-versa, uma tabela de atratividade é utilizada. A tabela de atratividade é uma tabela de consulta que contém o valor mais baixo da faixa de valores de n atribuído a cada célula. Assim, a tabela de consulta terá um número de entradas igual ao número de células definidas, ou, em outras palavras, o número de pares de valores inteiros de célula X e Y válidos.
[095] O conteúdo da tabela de atratividade é ilustrado pela Tabela 2, que mostra uma relação explicativa entre exemplos de valores de célula X e Y e os valores mais baixos da faixa de números atribuídos a n. Deve ser notado que os valores na Tabela 2 são ilustrativos, para a explicação do princípio envolvido, e não correspondem necessariamente aos valores que seriam utilizados na prática. Tabela 2:
Figure img0002
[096] A Tabela 2 mostra três exemplos de células de uma tabela, com as células identificadas pelos pares de números de célula X e Y com valores (100, 60), (110, 40) e (170, 20). Cada célula é atribuída com uma faixa exclusiva de valores de n, e assim um menor valor único de n.
[097] Como explicado acima, existem apenas cerca de 37 milhões de células, que é um número muito menor do que os aproximadamente 57 milhões de milhões de locais identificáveis, de modo que o uso de uma tabela de consulta tendo uma entrada para cada célula é prático.
[098] Na primeira direção, de avanço, utilizada na conversão de coordenadas de latitude e longitude em sequências de três palavras, o valor q do valor mais baixo de n, na faixa para os valores de célula X e Y, é obtido a partir da tabela de atratividade, e então a seguinte fórmula é usada para calcular o valor de atratividade n: n = q + 1546 x + y (7)
[099] Em muitas linguagens de programação padrão, as tabelas de atratividade e de consulta poderiam ser codificadas como uma matriz bidimensional indexada por X e Y. Em SQL elas podem ser apenas um banco de dados.
[0100] Em exemplos alternativos que não cobrem toda a superfície da Terra, quando se opera na direção de avanço, se um dado par X e Y não estiver presente na tabela / banco de dados, isto significa que a localização em questão está em um local não coberto pelo sistema, e por isso não foi atribuído com uma frase de três palavras. Neste caso, uma mensagem de erro adequada pode ser exibida.
[0101] Na segunda direção, reversa, utilizada na conversão de sequências de três palavras em coordenadas de latitude e longitude, a posição é um pouco mais complicada. Como os valores de n geralmente estarão em algum lugar dentro da faixa de valores de n atribuídos a uma célula, em vez de ser o maior ou o menor valor, não é possível simplesmente procurar os valores de n na tabela. Devido aos números muito grandes de localizações identificáveis definidas, não é prático utilizar uma tabela de consulta com uma entrada separada para cada valor possível de n.
[0102] Logo, a tabela de atratividade é ordenada pelo valor do "menor valor de n na faixa", resultando em uma tabela de atratividade ordenada.
[0103] Um exemplo de uma tabela de atratividade ordenada produzida pela ordenação das entradas da Tabela 2 é mostrado na Tabela 3. Tabela 3:
Figure img0003
Figure img0004
[0104] Então, a tabela de atratividade ordenada é pesquisada para que seja encontrado o maior valor do "menor valor de n na faixa" que é menor que ou igual a n.
[0105] Uma vez que a entrada com este valor do "menor valor de n na faixa" é encontrada, os valores de X e Y correspondentes podem ser lidos a partir da tabela de atratividade ordenada. As seguintes fórmulas são então usados para calcular os valores de x e y: x = (n - q) div 1546 (8) y = (n - q) mod 1546 (9)
[0106] Quando q é o valor do "menor valor de n na faixa", div é o resultado da divisão de número inteiro, e mod é o resto da divisão de número inteiro.
[0107] Em princípio, a pesquisa pode ser feita passando por toda a tabela de atratividade ordenada, entrada por entrada, mas isto tende a ser muito demorado para ser prático. Métodos de busca inteligentes devem ser utilizados. Em alguns exemplos, um método de pesquisa binária é utilizado, enquanto que em outros exemplos um método de pesquisa por interpolação é utilizado. Estes métodos de pesquisa inteligentes são bem conhecidos pelos peritos na arte e não serão aqui descritos em detalhes.
[0108] Nos exemplos em que a tabela de atratividade ordenada é implementada em SQL, ou uma linguagem semelhante, que suporta pesquisas para valores entre dois valores utilizando um operador BETWEEN, é possível utilizar o seguinte método de pesquisa. O tamanho máximo da faixa de valores de n atribuídos a qualquer célula é conhecido, e para qualquer valor de n é certo que haverá pelo menos um "menor valor de n na faixa" com um valor entre n e o tamanho máximo de n. Assim, se uma pesquisa for feita por valores do "menor valor n na faixa", entre n e o máximo tamanho de n, e o maior valor encontrado for usado, este será o valor correto do "menor valor n na faixa". Em um exemplo, esta pesquisa será entre n e n - 2.390.116.
[0109] Esta etapa de classificação de atratividade 52 é perfeitamente reversível.
[0110] Embora a tabela de atratividade seja referida acima como uma única tabela, em alguns exemplos pode ser preferido manter duas tabelas ordenadas diferentes, a tabela de atratividade e a acima citada tabela de atratividade ordenada, com a tabela separada sendo utilizada para conversões em diferentes direções.
[0111] A etapa de misturar e desmisturar 53 converte o número inteiro n em um número inteiro diferente m, e vice-versa.
[0112] Esta etapa não é essencial, e pode ser omitida em alguns exemplos. No entanto, ela provê uma série de vantagens.
[0113] Como observado acima, na etapa de classificação de atratividade 52, as localizações na mesma célula tendem a ser atribuídas com valores semelhantes de n. Como um resultado do modo como valores de n são convertidos em palavras e vice-versa, é provável que as localizações com valores semelhantes de n recebam sequências de três palavras semelhantes, por exemplo com duas palavras idênticas e uma terceira palavra diferente.
[0114] Isto pode resultar em um problema para os usuários que convertem sequências de três palavras em localizações, onde, se uma sequência de três palavras for inserida incorretamente, com uma palavra errada, isto pode resultar em uma localização errada sendo identificada, a qual fica relativamente próxima da localização correta. Tal localização errada, mas próxima, pode ser plausível, e por isso não pode ser reconhecida pelo usuário como sendo errada. Ao incluir a etapa de misturar e desmisturar 53, pode-se assegurar que seja excepcionalmente improvável que as localizações com valores similares de n recebam sequencias de três palavras semelhantes, de modo que se uma sequência de três palavras for inserida incorretamente, com uma palavra errada, é provável que isto resulte em uma localização errada sendo identificada, a qual é distante da localização correta. Tal localização errada e remota pode ser implausível, e por isso pode ser reconhecida pelo usuário como sendo errada.
[0115] Em alguns exemplos, o sistema pode ajudar o usuário a identificar que uma localização errada é remota e implausível. Esta assistência pode ser provida, por exemplo, com uma interface de usuário do sistema. Em alguns exemplos, o sistema pode ressaltar em qual país ou, se for o caso, em qual cidade a localização identificada está. Em alguns exemplos, o sistema pode indicar quando a localização identificada está em uma cidade e / ou país diferente da localização atual do usuário, e, na prática, em muitas aplicações do sistema isto irá tornar mais óbvio para o usuário que ocorreu um erro.
[0116] Em alguns exemplos, onde o usuário está ciente de que a localização identificada está errada, de modo que ocorreu um erro, o sistema pode ajudar o usuário a identificar qual palavra está incorreta, para ajudar a identificar o erro e recuperar a sequência de três palavras correta e a localização. Esta assistência pode ser provida, por exemplo, com uma interface de usuário do sistema.
[0117] Além disso, como mencionado acima, na etapa de classificação de atratividade 52, as localizações em células consideradas como mais atrativas são atribuídas com valores de n menores. Como explicado abaixo, as localizações com menores valores de n são atribuídas com sequências de três palavras formadas por palavras mais comuns.
[0118] Isto pode resultar em um problema, porque, como as células devem ser atribuídas com diferentes valores de atratividade e classificadas em ordem, é inevitável que localizações diferentes serão atribuídas com diferentes valores de atratividade, e atribuídas, portanto, com palavras consideradas mais, ou menos, "melhores". Embora, na prática, seja improvável que os resultados sejam sensivelmente diferentes para as células de mesmo tipo, como por exemplo as células nos centros de grandes cidades diferentes, qualquer desvio percebido pode ter um impacto sobre as atitudes dos usuários e ter um impacto de relações públicas. Ao incluir a etapa de misturar e desmisturar 53, pode-se assegurar que as células de um tipo semelhante sejam atribuídas com combinações de palavras tendo um nível similar de generalidade, evitando qualquer percepção de desvio feita pelo usuário.
[0119] A etapa de misturar e desmisturar 53 mistura reversivelmente os números inteiros n em um conjunto diferente de números inteiros m, e vice-versa. No exemplo ilustrado, os números inteiros com valores de 0 a 19.999.999.999 serão misturados uns com os outros e, em seguida, os números inteiros com valores em cada bloco consecutivo de 2.000.000.000 de inteiros serão misturados entre si. Em outros exemplos, podem ser utilizados diferentes tamanhos de blocos. Em alguns exemplos, diferentes blocos podem variar de tamanho. Em alguns exemplos, os tamanhos dos blocos podem variar ao longo do tempo.
[0120] Na primeira direção, de avanço, utilizada para converter coordenadas de latitude e longitude em sequências de três palavras, em primeiro lugar determina-se se o valor inteiro n a ser misturado está na faixa de 0 a 19.999.999.999. Se não estiver, n é convertido em m usando a equação: m = (n * 3.639.313) mod 20.000.000.000 (10)
[0121] Caso contrário, no caso em que n é maior que ou igual a 20.000.000.000, n é convertido em m utilizando a equação: m = (2.000.000.000 * (n div 2.000.000.000)) + ((24.036.583*(n mod 2.000.000.000)) mod 2.000.000.000) (11)
[0122] Na segunda direção, reversa, utilizada para converter sequências de três palavras em coordenadas de latitude e longitude, em primeiro lugar determina-se se o valor inteiro m a ser misturado está na faixa de 0 a 19999999999. Se não estiver, m é convertido em n usando a equação: n = (5083377 * m) mod 20.000.000.000 (12)
[0123] Caso contrário, no caso em que m é maior que ou igual a 20.000.000.000, m é convertido em n usando a equação: n = (2.000.000.000 * (m div 2.000.000.000)) + ((9.664.108.247*(m mod 2.000.000.000)) mod 2.000.000.000) (13)
[0124] As equações específicas 10 a 13 referem-se aos tamanhos de blocos exemplificativos discutidos acima. Se tamanhos de blocos diferentes, ou variáveis, forem utilizados, mudanças correspondentes devem ser feitas nas equações 10 a 13. Por exemplo, para prover blocos ou bandas de tamanhos diferentes, os números de início dos blocos ou bandas podem ser derivados de uma série de números inteiros selecionados com tamanho crescente, tal série de números inteiros começando preferivelmente com 0, em que os números inteiros são manipulados para definirem os respectivos valores de início das sucessivas bandas de tamanhos diferentes. Uma maneira de conseguir isto pode ser realizar uma operação matemática nos números inteiros selecionados, para definir os respectivos valores de início das sucessivas bandas de tamanhos diferentes. A operação matemática pode compreender usar os valores cúbicos dos inteiros selecionados. Deve ser notado que outros métodos para definir bandas de tamanhos diferentes são também válidos. Alguma vantagem é obtida quando a série de números inteiros compreende uma progressão aritmética de números inteiros selecionados, como por exemplo, 0, 3.000, 6.000, 9.000, etc., mas isto não é essencial.
[0125] Na primeira direção, de avanço, usada para a conversão de coordenadas de latitude e longitude em sequências de três palavras, as equações (10) e (11) podem ser juntadas em uma única equação indicada como (11'), como se segue: m = [início da banda de n] + + ((F_i * [posição de n em sua banda]) mod [tamanho da banda de n]) (11')
[0126] Na segunda direção, reversa, utilizada para converter sequências de três palavras em coordenadas de latitude e longitude, as equações (12) e (13) podem ser juntadas em uma única equação indicada como (13'), como se segue: n = [início da banda de m] + ((R_i * [posição de m em sua banda]) mod [tamanho da banda de m]) (13')
[0127] Para cada uma das equações (11') e (13'), i é o índice da banda, e m e n estão sempre na mesma banda, de tal forma que: [tamanho da banda de m] = [tamanho da banda de n] = S_i
[0128] Diante disso, a única exigência (mistura na direção de avanço e na direção reversa) é que: F_i * R * i = K * S_i + 1 para algum número inteiro K
[0129] Em alguns exemplos, a etapa de misturar e desmisturar 53 pode realizar múltiplas operações de mistura e desmistura em sequência.
[0130] A etapa de divisão e combinação 54 converte o número inteiro m em três inteiros i, j, k, e vice-versa. Um requisito ao fazer isto é assegurar que a conversão se mova entre pequenos valores de m e pequenos valores de i, j e k. Esta exigência não é essencial, mas se este requisito for satisfeito isto irá simplificar a etapa de conversão de palavra 55.
[0131] Deve ser notado que nos exemplos em que a etapa de misturar e desmisturar 53 não é realizada, a etapa de divisão e combinação 54 converterá o número inteiro n em três inteiros i, j, k, e vice-versa.
[0132] Na primeira direção, de avanço, utilizada para converter coordenadas de latitude e longitude em sequências de três palavras, o número inteiro m deve ser convertido em três inteiros i, j, k.
[0133] Em primeiro lugar, define-se l = floor(cuberoot(m)). Garante-se então que seja o caso em que: l3 < m < (l + 1)3 isto é, l 3 < m < l 3 + 3l 2 + 3l (14)
[0134] Existem então três casos possíveis, dependendo do valor de m.
[0135] Em um primeiro caso, onde l 3 < m < l 3 + l 2 + 2l + 1: Faz-se r = m - l 3 Toma-se i = l, j = r div (l + 1), k = r mod (l + 1)
[0136] Em um segundo caso, em que l 3 + l 2 + 2l + 1 < m < l 3 + 2l 2 + 3l + 1 : Faz-se r = m - (l 3 + l 2 + 2l +1) Toma-se i = r div (l + 1), j = l, k = r mod (l + 1)
[0137] No terceiro caso, em que l 3 + 2l 2 + 3l + 1 < m < l 3 + 3l 2 + 3l + 1 : Faz-se r = m - (l 3 + 2l 2 + 3l + 1) Toma-se i = r div l, j = r mod l, k = l
[0138] Na segunda direção, reversa, utilizada na conversão de sequências de três palavras em coordenadas de latitude e longitude, os três inteiros i, j, k devem ser convertidos em um único número inteiro m.
[0139] Em primeiro lugar, define-se l = max (i, j, k)
[0140] Se i = l , então o valor de m é: m = l 3 + (l + 1) j + k (15)
[0141] Caso contrário, se j = l, então o valor de m é: m = l 2 + l 3 + 2l + 1 + (l + 1) i + k (16)
[0142] Caso contrário, se k = l, então o valor de m é: m = l 3 + 2l 2 + 3l + 1 + li + j (17)
[0143] A etapa de conversão de palavra 55 converte cada um dos inteiros i, j, k em uma palavra, e vice-versa.
[0144] Na primeira direção, de avanço, usada para a conversão de coordenadas de latitude e longitude em sequências de três palavras, é necessário identificar uma palavra correspondente a cada um dos três números inteiros i, j e k.
[0145] Isto pode ser feito através da compilação de uma lista ordenada de palavras, selecionando-se a palavra correspondente, em ordem, ao valor de cada um dos inteiros i, j e k. Como discutido acima, em um exemplo, a lista ordenada de palavras contém 38.000 palavras diferentes. As três palavras selecionadas são então dispostas na seguinte ordem, primeiro a palavra correspondente ao valor i, então a palavra que corresponde ao valor de j, e em seguida a palavra correspondente ao valor de k, para formar a sequência de três palavras.
[0146] Em um exemplo, a lista de palavras é armazenada como uma matriz de cadeias e a seleção da palavra é realizada por pesquisa de matriz, de modo que, por exemplo, um número inteiro i é convertido na i-nésima cadeia na matriz. No exemplo ilustrado, é possível que os valores de i, j e k sejam zero, e assim esta matriz deve ser indexada por zero.
[0147] Neste exemplo, é possível que duas, ou mesmo todas as três, palavras na sequência de palavras sejam iguais. Em alguns exemplos alternativos, as sequências de palavras podem ser selecionadas de modo a que elas sempre contenham três palavras diferentes.
[0148] A lista ordenada de palavras deve ser ordenada com as palavras mais amigáveis para o usuário sendo atribuídas com uma posição ou valor mais baixo na lista. Até certo ponto a questão da facilidade de utilização é subjetiva, e pode incluir considerações diferentes em diferentes idiomas. No entanto, em geral, pode-se esperar que as palavras mais comumente usadas, as palavras mais curtas e as palavras facilmente grafadas e pronunciadas sejam consideradas como mais amigáveis.
[0149] Em alguns exemplos, a lista ordenada de palavras não inclui palavras que são homófonas umas da outras. Isto pode prover a vantagem de evitar possíveis confusões.
[0150] O uso da ordem de palavras i, depois j, e então k, não é essencial, e uma outra ordem poderia ser utilizada, desde que a mesma ordem seja usada de forma consistente. Por exemplo, a ordem de palavras j, então i, e depois k poderia ser usada.
[0151] Na segunda direção, reversa, utilizada para converter sequências de três palavras em coordenadas de latitude e longitude, é necessária para converter três palavras em três números inteiros correspondentes i, j e k. Isto é feito utilizando-se uma matriz associativa, algumas vezes referida como um dicionário ou mapa.
[0152] Na matriz associativa, se as três palavras em ordem forem W0, W1, W2, a matriz associativa a é inicializada definindo-se a[Wq] = q para cada inteiro. Cada palavra pode então ser convertida em um número inteiro, procurando-se a palavra correspondente ao valor inteiro na matriz associativa.
[0153] Se um usuário introduz uma palavra inválida, isto é, uma palavra que não pode ser encontrada na matriz associativa, uma mensagem de erro apropriada será retornada e exibida no smartphone de usuário 2, identificando a palavra não reconhecida.
[0154] Além disso, na prática, normalmente existe o caso em que há mais combinações de palavras possíveis do que grupos de três inteiros válidos i, j, k e localizações identificáveis. Neste caso, é possível que um usuário possa inserir três palavras válidas individualmente, que não são uma sequência de três palavras válida correspondendo a uma localização identificável. Se isto ocorrer, durante a operação na segunda direção, reversa, utilizada para converter sequências de três palavras em coordenadas de latitude e longitude, o inteiro m derivado (ou n, nos exemplos que não incluem a etapa de misturar e desmisturar 53) terá um valor inválido, e uma mensagem de erro apropriada será retornada e exibida no smartphone de usuário 2, indicando que a sequência de três palavras está incorreta.
[0155] Em alguns exemplos, a lista de palavras ordenada não inclui palavras que são homófonas umas das outras. Isto pode prover a vantagem de evitar possíveis confusões.
[0156] Em alguns exemplos, quando está operando na segunda direção, reversa, o sistema pode ser capaz de identificar palavras inseridas que são homófonas de palavras na lista de palavras ordenada, e então tratar essas palavras inseridas como se elas fossem a palavra homófona na lista ordenada. Em alguns exemplos isto pode ser feito automaticamente, em outros exemplos o usuário pode ser alertado e perguntado se a substituição deve ser feita.
[0157] Em alguns exemplos, a lista de palavras ordenada pode incluir, como uma introdução exclusiva, uma pluralidade de palavras que são homófonas umas das outras. Em tais exemplos, quando está operando na segunda direção, reversa, o sistema pode considerar a introdução de qualquer uma dessas palavras como equivalentes entre si, de modo que todas elas produzam o mesmo valor inteiro de i, j ou k. Nestes exemplos, o sistema pode ser disposto para produzir a saída de um dos homófonos plurais apenas quando estiver operando na primeira direção, de avanço.
[0158] Em alguns exemplos, o sistema pode ser capaz de identificar a entrada de palavras tendo grafias alternativas das palavras na lista de palavras ordenada, e então tratar essas palavras introduzidas como se fossem a palavra alternativamente grafada, correspondente, na lista ordenada.
[0159] Opcionalmente, o sistema 1 pode ser provido com uma função adicional de palavras especiais, customizadas. Esta função palavras customizadas é aplicada apenas na segunda direção, reversa, utilizada para converter sequências de três palavras em coordenadas de latitude e longitude. Uma palavra customizada é uma palavra exclusiva, ou sequência alfanumérica, selecionada por um usuário e atribuída a uma localização específica selecionada pelo usuário. Os usuários podem ser cobrados pela seleção de palavras customizadas.
[0160] Quando esta opção for usada, o servidor 3 mantém um banco de dados que armazena todas as palavras customizadas e as coordenadas de latitude e longitude das localizações correspondentes. Quando o servidor 1 recebe uma palavra customizada vinda de um smartphone de usuário 2, o servidor procura a palavra customizada no banco de dados e retorna as coordenadas de latitude e longitude correspondentes, ao invés de seguir a sequência de etapas descrita acima. Na prática, o número de palavras customizadas será muito menor do que o número total de localizações identificáveis, de modo que uma abordagem de procura simples será rápida o bastante para lidar com as palavras customizadas.
[0161] Deve ser notado que pode haver um certo número de diferentes palavras customizadas que correspondem à mesma localização, em contraste com as sequências de três palavras, onde cada localização corresponde a uma sequência exclusiva de três palavras.
[0162] Deve ser entendido que as palavras customizadas não são privadas para que o usuário as selecione, podendo ser usadas por qualquer outro usuário para encontrar a localização selecionada. Isto é, as palavras customizadas podem ser usadas por qualquer usuário que tenha conhecimento delas.
[0163] Por exemplo, um hotel pode selecionar a palavra customizada "hawthornhotel" e atribuí-la à sua própria localização, para que os clientes ou entregadores possam usá-la para encontrar o hotel. Como um hotel geralmente é maior do que 3 por 3 metros, é provável que esta palavra customizada será atribuída à rua ou calçada em frente à entrada principal do hotel. Além disso, um grande hotel pode ter várias palavras customizadas para diferentes localizações, tal como "hawthornhotelserviceentrance" para a entrada de serviço.
[0164] Não é essencial que as palavras customizadas sejam uma palavra ou cadeia de texto exclusivo. No entanto, isso pode ser preferido, para assegurar que as palavras customizadas e as sequências de três palavras não possam ser confundidas. O uso de uma palavra exclusiva permite que o servidor diferencie facilmente as palavras customizadas a partir das sequências padronizadas de três palavras, meramente por sua sintaxe, sem a necessidade de qualquer análise mais complexa.
[0165] Opcionalmente, em outros exemplos, as palavras customizadas também podem estar disponíveis na primeira direção, de avanço, utilizada para converter coordenadas de latitude e longitude em palavras. Uma vez que, na prática, novamente, o número de palavras customizadas será muito menor do que o número total de localizações identificáveis, uma abordagem de procura simples pode ser usada para verificar se um conjunto de coordenadas introduzido possui uma palavra customizada correspondente, e para prover a palavra customizada.
[0166] Em alguns exemplos, o sistema 1 pode ser disposto para operar em múltiplos idiomas diferentes. A fim de suportar os múltiplos idiomas, uma lista ordenada de palavras separada é provida para cada idioma.
[0167] Em vários sistemas de idiomas, as listas de palavras em cada idioma podem ser montadas de forma a que não existam palavras iguais nas listas para os diferentes idiomas. Por exemplo, a palavra "gift" é uma palavra válida em Inglês e Alemão, mas esta palavra seria incluída em apenas uma das listas de palavras ordenadas em Inglês ou Alemão. Isto pode prover a vantagem de que, quando estiver operando na segunda direção, reversa, na conversão de sequências de três palavras em coordenadas de latitude e longitude, o servidor possa identificar o idioma da sequência de palavras introduzida a partir das próprias palavras, sem necessidade de ser informado sobre o idioma, porque as palavras aparecem somente em uma lista de palavras de um idioma.
[0168] Em vários sistemas de idiomas, durante a operação na primeira direção, de avanço, utilizada para converter coordenadas de latitude e longitude em sequências de três palavras, pode ser desejável que o usuário informe o sistema sobre qual idioma deve ser usado para prover a sequência de três palavras. Em alguns exemplos, esta informação pode ser efetuada por default (padrão assumido), por exemplo, o sistema pode assumir que o usuário deseja ser provido com uma sequência de três palavras no mesmo idioma que o usuário escolheu para usar em um website para acessar o servidor do sistema. Em alguns exemplos, na ausência de tal informação, o sistema pode prover a sequência de três palavras em um idioma default.
[0169] Em vários sistemas de idiomas, a classificação de atratividade atribuída a diferentes células pode variar, nos diferentes idiomas. Por exemplo, em inglês, Londres teria uma classificação de atratividade maior do que Paris, enquanto que em francês, Paris teria uma classificação de atratividade maior do que Londres. Isto exige que a etapa de classificação de atratividade 52 seja realizada separadamente para cada idioma diferente, com diferentes valores de n a serem atribuídos às mesmas células nos diferentes idiomas.
[0170] No exemplo ilustrado, as células classificadas como mais atrativas são atribuídas com valores menores de n. Em outros exemplos, as células classificadas como mais atrativas podem ser atribuídas com valores mais elevados de n, desde que modificações adequadas sejam feitas nas outras etapas do algoritmo.
[0171] No exemplo ilustrado, as três palavras devem estar em uma sequência específica. Em outros exemplos, a sequência de palavras pode não ser levada em conta. No entanto, se a sequência de palavras não for levada em consideração, é previsto que a eficiência do sistema seja reduzida, isto é, mais palavras exclusivas serão necessárias para identificar um determinado número de localizações.
[0172] No exemplo ilustrado, o sistema cobre a toda a superfície do mundo. Em outros exemplos, as áreas geográficas cobertas podem ser menores. Em alguns exemplos, o sistema pode cobrir somente as áreas em terra firme. Em outros exemplos, as áreas selvagens substancialmente desabitadas ao redor de um ou de ambos os pólos podem ser excluídas. Em alguns exemplos, o sistema pode cobrir apenas um continente, região ou país específico. Em um exemplo, o sistema pode cobrir apenas a Europa, em outro exemplo, o sistema pode cobrir somente o Reino Unido.
[0173] No exemplo ilustrado, uma sequência de três palavras é usada. Em outros exemplos, uma sequência compreendendo um número diferente de palavras pode ser usada. O uso de três palavras pode prover vantagens. Se apenas duas palavras foram utilizadas, o número de palavras exclusivas necessárias seria muito grande para serem facilmente providas por um único idioma, e seria necessário o uso de palavras que são desconhecidas para os usuários. Esta dificuldade não pode surgir se a área coberta pelo sistema for menor. Se mais de três palavras forem usadas, os usuários podem ter dificuldade em lembrar a sequência de palavras.
[0174] No exemplo ilustrado, o sistema compreende smartphones de usuário. Em outros exemplos, os telefones inteligentes (smartphones) podem ser substituídos por dispositivos de comunicação móveis ou outros dispositivos de usuário alternativos. Tais dispositivos de usuário alternativos terão funcionalidades de comunicação suficientes para que sejam capazes de se comunicar com o servidor 3. No entanto, não é necessário que sua função primária seja a de prover comunicações móveis para os usuários.
[0175] No exemplo ilustrado, o sistema identifica localizações com granularidade de aproximadamente 3 metros, onde cada localização é identificada como estando em uma caixa ou área específica com cerca de 3 por 3 metros. Em outros exemplos, as localizações podem ser identificadas com uma granularidade diferente, estando em uma caixa ou área tendo um tamanho diferente.
[0176] No exemplo ilustrado, as coordenadas de localização são coordenadas de GPS na forma de coordenadas de latitude e longitude tendo seis casas decimais. Em outros exemplos, diferentes sistemas de coordenadas podem ser utilizados. Além disso, em alguns exemplos, coordenadas com diferentes níveis de precisão podem ser usadas. Deve ser entendido que a precisão com a qual a invenção pode identificar localizações, isto é, no exemplo descrito, o tamanho das caixas ou áreas identificadas, em última análise, depende da precisão das coordenadas de localização.
[0177] No exemplo ilustrado, os meios de determinação de localização são um sistema de navegação baseado em satélite, tal como o GPS. Em outros exemplos, podem ser utilizados diferentes sistemas de navegação.
[0178] No exemplo ilustrado, um único servidor central é usado. Em outros exemplos, pode ser usado um sistema de processamento distribuído, tal como uma rede de servidores, em vez de um único servidor central.
[0179] No exemplo ilustrado, a Internet é usada para a comunicação entre as diferentes partes do sistema. Em outros exemplos, podem ser utilizadas diferentes redes de comunicação de dados. Em alguns exemplos, os dispositivos de usuário podem ser capazes de usar vários meios de comunicação diferentes para comunicar-se com o servidor.
[0180] No exemplo ilustrado, o sistema de identificação de localização compreende um servidor central acessado por uma pluralidade de smartphones, ou outros dispositivos de computação. Em outros exemplos, todo o sistema pode ser provido em um único dispositivo de computação, tal como um computador pessoal (CP) ou um smartphone de usuário. Em geral, é esperado que a arquitetura ilustrada baseada em servidor possa ser preferida pelos usuários, porque a quantidade de processamento e armazenamento de dados exigida pelo sistema poderá ser difícil ou dispendiosa para ser provida em alguns dispositivos de computação de usuário. Dito isto, uma vantagem de prover todo o sistema em um único dispositivo de computação, tal como um dispositivo de computação portátil, como por exemplo um smartphone, um computador do tipo tablet ou similar, é que o sistema pode, então, ser usado offline (desconectado da rede). Por off-line entende-se que o sistema pode ser utilizado para produzir um identificador de localização de acordo com a invenção, ou identificar uma localização a partir de um identificador de localização sem ter que se conectar a um outro dispositivo de computação, tal como um servidor através de uma rede como a Internet, independentemente do fato do dispositivo de computação portátil estar ou não conectado, ou capacitado para ser conectado a, uma rede. Como visto anteriormente, os meios para obter as coordenadas geográficas de uma localização podem compreender uma parte do dispositivo de computação portátil, ou podem ser um dispositivo acessório conectado ao mesmo através de uma conexão por ou sem fio.
[0181] Os sistemas e aparelhos descritos acima podem ser implementados, pelo menos parcialmente, em software. Os peritos na arte entenderão que o aparelho descrito acima pode ser implementado usando um equipamento de computador de uso geral ou utilizando equipamentos customizados.
[0182] Os diferentes componentes do sistema podem ser providos por módulos de software executados em um computador.
[0183] Os elementos de hardware, os sistemas operacionais e linguagens de programação de tais computadores são de natureza convencional, e presume-se que os peritos na arte estejam adequadamente familiarizados com os mesmos. Naturalmente, as funções do servidor podem ser implementadas de maneira distribuída em uma série de plataformas semelhantes, para distribuir a carga de processamento.
[0184] Aqui, os aspectos dos métodos e aparelhos aqui descritos podem ser executados em um dispositivo de computação, tal como um servidor. Os aspectos da tecnologia dos programas podem ser pensados como "produtos" ou "artigos fabricados", tipicamente na forma de código executável e / ou de dados associados, que são transportados ou estão incorporados em um tipo de meio legível por máquina. Os tipos de meios de "armazenamento" incluem toda e qualquer memória de computador, processador ou similar, ou seus módulos associados, tais como memórias em dispositivos semicondutores, unidades de fita, unidades de disco, e assim por diante, que possam prover armazenamento em qualquer tempo para a programação de software. Todo o software ou partes dele podem, por vezes, ser comunicadas através da Internet ou de várias outras redes de telecomunicação. Tais comunicações, por exemplo, podem permitir o carregamento do software de um computador ou um processador para outro computador ou processador. Assim, um outro tipo de mídia que possa portar os elementos de software inclui ondas ópticas, elétricas e eletromagnéticas, tais como aquelas utilizadas em interfaces físicas entre dispositivos locais, através de redes de telefones fixos por fio e fibras ópticas, e através de diversas conexões aéreas. Os elementos físicos que transportam tais ondas, tais como conexões por ou sem fio, conexões ópticas ou similares, também podem ser considerados como meios portadores de software. Conforme usados aqui, a menos que se restrinjam a meios de "armazenamento" tangíveis e não transitórios, os termos como "meio legível” por computador ou máquina referem-se a qualquer meio que participe do fornecimento de instruções para um processador, para execução.
[0185] Por isso, um meio legível por máquina pode assumir muitas formas, incluindo, mas não se limitando a, um veículo de armazenamento tangível, um meio portador de onda ou um meio de transação física. Meios de armazenamento não voláteis incluem, por exemplo, discos ópticos ou magnéticos, tais como quaisquer dispositivos de armazenamento em computador(es) ou similares, tais como aqueles que podem ser usados para implementar um codificador, um decodificador, etc., mostrados nos desenhos. Meios de armazenamento voláteis incluem memórias dinâmicas, tal como a memória principal de uma plataforma de computador. Meios de transmissão tangíveis incluem cabos coaxiais, fio de cobre e fibras ópticas, incluindo os fios que constituem o barramento dentro de um sistema de computador. Meios de transmissão portadores de onda podem assumir a forma de ondas acústicas ou de luz, ou sinais elétricos ou eletromagnéticos, tais como aqueles gerados durante a comunicação de dados por rádio frequência (RF) e infravermelho (IR). As formas mais comuns de meios legíveis por computador incluem, portanto, por exemplo: um disco flexível, um disco portátil, um disco rígido, uma fita magnética, qualquer outro meio magnético, um CD-ROM, um DVD ou DVD-ROM, qualquer outro meio óptico, cartões perfurados, fita de papel, qualquer outro meio de armazenamento físico com padrões de furos, uma RAM, uma PROM e / ou EPROM, uma FLASH-EPROM, qualquer outro chip ou cartucho de memória, uma onda portadora que transporta dados ou instruções, cabos ou ligações que transportam tal onda portadora, ou qualquer outro meio a partir do qual um computador possa ler o código e / ou os dados de programação. Muitas dessas formas de meios legíveis por computador podem estar envolvidas no transporte de uma ou mais sequências de uma ou mais instruções de um processador, para execução.
[0186] Os peritos na arte entenderão que, enquanto o que foi acima descrito é considerado o melhor modo de realização do invento e, se for o caso, incluindo também outros modos de realização, o invento não deve ser limitado às configurações de aparelhos ou etapas de processo específicos descritos nesta descrição da forma de incorporação preferida. Entende-se que várias modificações podem ser feitas e que o assunto aqui divulgado pode ser implementado através de várias formas e exemplos, e que os ensinamentos podem ser aplicados em numerosas aplicações, das quais apenas algumas foram aqui descritas. As reivindicações a seguir pretendem reivindicar quaisquer e todas as aplicações, modificações e variações que possam cair dentro do verdadeiro escopo dos presentes ensinamentos. Os peritos na técnica reconhecerão que a invenção tem uma ampla faixa de aplicações, e as formas de incorporação podem assumir uma grande variedade de modificações sem fugir do conceito inventivo conforme definido nas reivindicações anexas.
[0187] Embora a presente invenção tenha sido descrita em termos de formas de incorporação exemplificativas específicas, deve ser entendido que várias modificações, alterações e / ou combinações de características aqui descritas serão aparentes para os peritos na arte, sem que se afastem do espírito e do âmbito da invenção conforme definido pelas reivindicações seguintes.

Claims (25)

1. MÉTODO IMPLEMENTADO POR COMPUTADOR PARA PRODUZIR UM IDENTIFICADOR DE LOCALIZAÇÃO, caracterizado pelo fato de compreender: - receber em um processador coordenadas geográficas de uma localização compreendendo sequências de números de um meio de determinação de localização; no referido processador, executar as etapas de: - converter as coordenadas geográficas compreendendo sequências de números em um inteiro único individual n; - converter o inteiro único individual n em um grupo único tendo uma pluralidade de inteiros; e - converter a pluralidade de inteiros em um número de palavras respectivas, onde o número de palavras respectivas é igual ao número de inteiros compreendendo referido grupo único de uma pluralidade de inteiros; e - tornar o número de palavras respectivas disponível como um identificador de localização.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato do método compreender ainda a definição de uma matriz de células através de uma área geográfica; e no referido processador, a execução da etapa de converter as coordenadas geográficas, compreendendo sequências de números em um inteiro único individual n, compreende realizar as etapas de: - converter as coordenadas geográficas compreendendo sequência de números em um valor de identidade de célula que identifica a célula que contém a localização, e um valor de posição de célula que identifica a posição da localização dentro da célula; e - converter o valor de identidade de célula e um valor de posição de célula em um inteiro único individual n.
3. MÉTODO, de acordo com a reivindicação 2, caracterizado pelo fato das coordenadas geográficas compreendendo sequências de números serem coordenadas de latitude e longitude.
4. MÉTODO, de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato da pluralidade de palavras estar em uma sequência definida.
5. MÉTODO, de acordo com a reivindicação 2, caracterizado pelo fato do valor de identidade de célula ser um par de números inteiros X, Y, e o valor de posição de célula ser um par de números inteiros x, y.
6. MÉTODO, de acordo com a reivindicação 3, caracterizado pelo fato das coordenadas de latitude e longitude serem convertidas no valor de identidade de célula e no valor de posição de célula, utilizando as equações: X = floor((Longitude + 180) * 24) Y = floor((Latitude + 90) * 24) x = floor(W(Y) * frac((Longitude + 180) * 24)) y = floor(1546 * frac((Latitude + 90) * 24)) onde W(Y) = max(1, floor(1546 * cos((Y + 0,5)/24 - 90))).
7. MÉTODO, de acordo com qualquer uma das reivindicações 5 ou 6, caracterizado pelo fato do valor de identidade de célula e os valores de posição de célula X, Y, x e y serem convertidos em um inteiro único individual n através da atribuição, a cada célula identificada por um valor de identidade de célula X, Y, de uma faixa única de valores de n tendo um menor valor q, obtendo-se então n por meio da equação: n = q + 1.546 * x + y.
8. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato do inteiro único individual n ser convertido em um grupo único de três inteiros i, j, k, onde: os três inteiros i, j e k são convertidos em três palavras respectivas; e as três palavras são providas como um identificador de localização.
9. MÉTODO, de acordo com a reivindicação 8, caracterizado pelo fato da conversão do inteiro único individual n no grupo único de três inteiros i, j, k compreender: - converter o inteiro único individual n em um valor inteiro único individual m, dividindo-se os valores possíveis de n em blocos de valores; e - misturar os valores de n em um bloco de valores para obter m.
10. MÉTODO, de acordo com a reivindicação 9, caracterizado pelo fato da conversão do inteiro único individual n em um grupo único de três inteiros i, j, k compreender ainda a conversão do inteiro único individual m em um grupo único de três inteiros i, j, k, da seguinte maneira: definir l = floor (cuberoot (m)); então no caso em que l3 < m < l3 + l2 + 21 + 1, então i = l, j = r div (l + 1), e k = r mod (l + 1), onde r = m - l 3; ou no caso em que l 3 + l 2 + 2l + 1 < m < l 3 + 2l 2 + 3l + 1, então i = r div (l + 1), j = l e k = r mod (l + 1), onde r = m - (l 3 + l 2 + 2l + 1); ou no caso em que l3 + 21 2 + 31 + 1 < m < l3 + 31 2 + 31 + 1, então i = r div l, j = r mod l, k = l, onde r = m - (l 3 + 2l 2 + 3l + 1).
11. MÉTODO, de acordo com a reivindicação 10, caracterizado pelo fato do grupo único de três inteiros i, j, k ser convertido em três palavras respectivas, comparando-se cada inteiro com uma lista de palavras ordenada, e convertendo-se cada inteiro para a palavra na posição do inteiro na lista ordenada.
12. APARELHO, executando o método conforme definido na reivindicação 1, caracterizado pelo fato de ser adaptado para produzir um identificador de localização mediante a execução do referido método.
13. MÉTODO IMPLEMENTADO POR COMPUTADOR PARA IDENTIFICAR UMA LOCALIZAÇÃO, caracterizado pelo fato de compreender: - receber em um processador, de um módulo de identificação de localização, um identificador de localização para uma localização, em que o identificador de localização compreende uma pluralidade de palavras; - no referido processador, executar as etapas de: - converter a pluralidade de palavras em um grupo único tendo inteiros respectivos onde o número de inteiros é igual ao número de palavras compreendendo referida pluralidade de palavras; - converter o grupo único de inteiros em um inteiro único individual n; - converter o inteiro único individual n em coordenadas geográficas compreendendo sequências de números; e - transmitir / exibir as coordenadas geográficas compreendendo sequências de números em um meio de determinação de localização.
14. MÉTODO, de acordo com a reivindicação 13, caracterizado pelo fato do método compreender ainda a definição de uma matriz de células através de uma área geográfica, em que, no referido processador, a execução da etapa de conversão do inteiro único individual n em coordenadas geográficas, compreendendo sequências de números, compreende a realização das etapas de: - converter o inteiro único individual n em um valor de identidade de célula que identifica a célula que contém a localização, e em um valor de posição de célula que identifica a posição da localização dentro da célula; e - converter o valor de identidade de célula e o valor de posição de célula em coordenadas geográficas compreendendo sequências de números.
15. MÉTODO, de acordo com a reivindicação 14, caracterizado pelo fato das coordenadas geográficas compreendendo sequências de números serem coordenadas de latitude e longitude.
16. MÉTODO, de acordo com qualquer uma das reivindicações 13, 14 ou 15, caracterizado pelo fato da pluralidade de palavras estar em uma sequência definida.
17. MÉTODO, de acordo com qualquer uma das reivindicações 14 ou 15, caracterizado pelo fato do valor de identidade de célula ser um par de números inteiros X, Y e o valor de posição de célula ser um par de números inteiros x, y.
18. MÉTODO, de acordo com a reivindicação 14, caracterizado pelo fato do valor de identidade de célula e o valor de posição de célula serem convertidos em coordenadas geográficas compreendendo sequências de números, utilizando as equações: Latitude = (Y + ((y + 0,5)/1546))/24 * 90 Longitude = (X + ((x + 0,5)/(W(Y)))/24 - 180 onde W(Y) = max(1, floor(1546 * cos((Y + 0,5)/24 - 90))).
19. MÉTODO, de acordo com a reivindicação 17, caracterizado pelo fato do inteiro único individual n ser convertido no valor de identidade da célula e em valores de posição de célula X, Y, x e y, associando- se cada célula identificada por um valor de identidade de célula X, Y com uma faixa única de valores de n, cada faixa única tendo um menor valor q, e identificando-se a faixa atribuída de valores de n na qual o inteiro n está; em seguida, usando o valor de identidade de célula X, Y associado com a faixa atribuída identificada, determina-se x e y por meio das equações: x = (n - q) div 1546 y = (n - q) mod 1546.
20. MÉTODO, de acordo com a reivindicação 13, caracterizado pelo fato da pluralidade de palavras compreender três palavras; em que: - as três palavras são convertidas em um grupo único de três respectivos inteiros i, j e k; e - o grupo único de três inteiros i, j, k é convertido em um inteiro único individual n.
21. MÉTODO, de acordo com a reivindicação 20, caracterizado pelo fato da conversão do conjunto único de três inteiros i, j, k no inteiro único individual n compreender: - converter um valor inteiro único individual m no inteiro único individual n, dividindo-se os valores possíveis de m em blocos de valores de igual tamanho; e - misturar os valores de m em um bloco de valores, para obter n.
22. MÉTODO, de acordo com a reivindicação 21, caracterizado pelo fato da conversão do grupo único de três inteiros i, j, k no inteiro único individual n compreender ainda a conversão do valor único individual m em um grupo único de três inteiros i, j, k, da seguinte maneira: definir l = max (i; j; k); então no caso em que i = l, então m = l 3 + (l + 1) j + k; ou no caso em que j = l, então m = l 3 + l 2 + 2l + 1 + (l + 1) i + k; ou no caso em que k = l, então m = l 3 + 2l 2 + 3l + 1 + li + j.
23. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato das três palavras serem convertidas no grupo único de três respectivos inteiros i, j, k, armazenando-se as palavras e os valores inteiros em uma matriz associativa, e procurando-se a palavra correspondente a cada número inteiro.
24. APARELHO PARA IDENTIFICAR UMA LOCALIZAÇÃO, executando o método conforme definido na reivindicação 13, caracterizado pelo fato de ser adaptado para identificar uma localização através da execução do referido método.
25. MÉTODO IDENTIFICADOR DE LOCALIZAÇÃO, executando o método definido na reivindicação 13, caracterizado pelo fato de compreender instruções legíveis por computador que, quando executadas por um processador, farão com que o processador execute as etapas do referido método.
BR112015026511-1A 2013-04-19 2014-04-14 Método implementado por computador para produzir um identificador de localização, método implementado por computador para identificar uma localização, aparelho para identificar uma localização e método identificador de localização BR112015026511B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1307148.5A GB2513196A (en) 2013-04-19 2013-04-19 A method and apparatus for identifying and communicating locations
GB1307148.5 2013-04-19
PCT/GB2014/051152 WO2014170646A1 (en) 2013-04-19 2014-04-14 A method and apparatus for identifying and communicating locations

Publications (2)

Publication Number Publication Date
BR112015026511A2 BR112015026511A2 (pt) 2017-07-25
BR112015026511B1 true BR112015026511B1 (pt) 2023-04-04

Family

ID=48537530

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015026511-1A BR112015026511B1 (pt) 2013-04-19 2014-04-14 Método implementado por computador para produzir um identificador de localização, método implementado por computador para identificar uma localização, aparelho para identificar uma localização e método identificador de localização

Country Status (15)

Country Link
US (1) US9883333B2 (pt)
EP (1) EP2987344A1 (pt)
JP (1) JP6417397B2 (pt)
KR (3) KR102173272B1 (pt)
CN (2) CN105409252B (pt)
AP (1) AP2015008813A0 (pt)
AU (1) AU2014255510C1 (pt)
BR (1) BR112015026511B1 (pt)
CA (1) CA2909524C (pt)
GB (1) GB2513196A (pt)
MX (1) MX364994B (pt)
RU (1) RU2667036C9 (pt)
SA (1) SA515370002B1 (pt)
WO (1) WO2014170646A1 (pt)
ZA (1) ZA201507835B (pt)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9906609B2 (en) 2015-06-02 2018-02-27 GeoFrenzy, Inc. Geofence information delivery systems and methods
US10235726B2 (en) 2013-09-24 2019-03-19 GeoFrenzy, Inc. Systems and methods for secure encryption of real estate titles and permissions
US9363638B1 (en) 2015-06-02 2016-06-07 GeoFrenzy, Inc. Registrar mapping toolkit for geofences
US10121215B2 (en) 2014-07-29 2018-11-06 GeoFrenzy, Inc. Systems and methods for managing real estate titles and permissions
US9906902B2 (en) 2015-06-02 2018-02-27 GeoFrenzy, Inc. Geofence information delivery systems and methods
US10078705B2 (en) 2013-10-08 2018-09-18 Katharine Gillian Lee Providing electronic search and guidance using non-address destination designations
US10805761B2 (en) 2014-07-29 2020-10-13 GeoFrenzy, Inc. Global registration system for aerial vehicles
US9986378B2 (en) 2014-07-29 2018-05-29 GeoFrenzy, Inc. Systems and methods for defining and implementing rules for three dimensional geofences
US11838744B2 (en) 2014-07-29 2023-12-05 GeoFrenzy, Inc. Systems, methods and apparatus for geofence networks
US10237232B2 (en) 2014-07-29 2019-03-19 GeoFrenzy, Inc. Geocoding with geofences
US10375514B2 (en) 2014-07-29 2019-08-06 GeoFrenzy, Inc. Systems, methods and apparatus for geofence networks
US10115277B2 (en) 2014-07-29 2018-10-30 GeoFrenzy, Inc. Systems and methods for geofence security
US11240628B2 (en) 2014-07-29 2022-02-01 GeoFrenzy, Inc. Systems and methods for decoupling and delivering geofence geometries to maps
US11606666B2 (en) 2014-07-29 2023-03-14 GeoFrenzy, Inc. Global registration system for aerial vehicles
US10582333B2 (en) 2014-07-29 2020-03-03 GeoFrenzy, Inc. Systems and methods for geofence security
US9875251B2 (en) 2015-06-02 2018-01-23 GeoFrenzy, Inc. Geofence information delivery systems and methods
US10979849B2 (en) 2015-06-02 2021-04-13 GeoFrenzy, Inc. Systems, methods and apparatus for geofence networks
US10932084B2 (en) 2014-07-29 2021-02-23 GeoFrenzy, Inc. Systems, methods and apparatus for geofence networks
GB2549240A (en) * 2015-01-06 2017-10-18 What3Words Ltd A method for suggesting one or more multi-word candidates based on an input string received at an electronic device
GB2535439A (en) 2015-01-06 2016-08-24 What3Words Ltd A method for suggesting candidate words as replacements for an input string received at an electronic device
WO2016196496A1 (en) 2015-06-02 2016-12-08 GeoFrenzy, Inc. Geofence information delivery systems and methods
CN105185379B (zh) * 2015-06-17 2017-08-18 百度在线网络技术(北京)有限公司 声纹认证方法和装置
CN105101296A (zh) * 2015-07-14 2015-11-25 海能达通信股份有限公司 一种定位信息传输的方法及通信设备
CN107135244B (zh) 2016-02-29 2020-04-21 阿里巴巴集团控股有限公司 基于位置的业务实现方法和装置
US10852921B2 (en) * 2016-08-25 2020-12-01 Latloc, LLC Method of gathering, storing, and distributing user defined geographic location identities
EP3333725A1 (en) 2016-12-07 2018-06-13 UTB Envirotec Zrt. Method and computer program product for the production of a location identifier
CN110019571B (zh) * 2017-07-25 2023-10-03 哈曼国际工业有限公司 位置信息生成方法和装置以及位置信息识别方法和装置
WO2019070412A1 (en) * 2017-10-03 2019-04-11 Precision Location Intelligence, Inc. SYSTEM FOR GENERATING AND USING GEOGRAPHIC HASH EXPRESSIONS
US10987184B2 (en) 2017-10-27 2021-04-27 Drone Delivery Canada Corp. Medical or emergency package and method of use thereof
US11127305B2 (en) 2017-10-27 2021-09-21 Drone Delivery Canada Corp. Unmanned aerial vehicle delivery system for delivery of medical or emergency supplies
DE102017010181A1 (de) 2017-10-30 2019-05-02 Daimler Ag Adresszuordnungsverfahren sowie Recheneinrichtung zum Zuordnen einer Adresse zu einem abgegrenzten Ort
US20210368010A1 (en) * 2018-02-05 2021-11-25 Praveen Baratam Computer implemented method and a computer system for naming a venue
CN110832886B (zh) * 2018-06-06 2023-04-21 北京嘀嘀无限科技发展有限公司 确定位置标识符的系统和方法
RU2762785C1 (ru) * 2018-06-06 2021-12-22 Бейджин Диди Инфинити Текнолоджи Энд Девелопмент Ко., Лтд. Система идентификации сеток географической области на карте
DE102018006117A1 (de) 2018-08-02 2019-01-31 Daimler Ag Adresszuordnungsverfahren
WO2021071279A2 (ko) * 2019-10-09 2021-04-15 주식회사 에스360브이알 지리상의 위치를 특정하는 방법과 이를 이용하는 데이터베이스 및 데이터베이스의 데이터베이스
WO2021167422A1 (ko) 2020-02-20 2021-08-26 주식회사 에스360브이알 디지털 지도 기반의 온라인 플랫폼
RU2771000C1 (ru) * 2020-12-29 2022-04-25 Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" (ООО "ТОТ") Способ и система определения плотности туристического потока
KR102447172B1 (ko) 2021-06-08 2022-09-26 주식회사 에스360브이알 디지털 지도의 초기 화면에 보이는 장소를 개인화하는 방법 및 이를 이용하는 디지털 지도 시스템
DE102022201905B3 (de) 2022-02-24 2023-08-24 Volkswagen Aktiengesellschaft Verfahren zum Übermitteln einer Positionsinformation in einer Umgebung von einer ersten Person an zumindest eine zweite Person, Computerprogrammprodukt sowie Kommunikationsvorrichtung
WO2023219014A1 (ja) * 2022-05-09 2023-11-16 Ap Tech株式会社 符号化装置、及び復号化装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2780521B2 (ja) * 1991-07-11 1998-07-30 三菱電機株式会社 地図表示制御装置
DE19841732B4 (de) * 1998-09-12 2010-01-14 Volkswagen Ag Verfahren und Einrichtung zur Eingabe von Ortskoordinaten in ein Navigationssystem
JP2001005834A (ja) * 1999-06-24 2001-01-12 Asia Air Survey Co Ltd 位置情報変換方法及び位置情報変換のプログラムを記憶した記憶媒体
JP2002116689A (ja) * 2000-07-06 2002-04-19 Pioneer Electronic Corp 地図情報提供システムにおける道路情報の更新方法ならびにその更新サーバ、およびサーバプログラム、同プログラムを記録した記録媒体
JP3860797B2 (ja) * 2003-02-19 2006-12-20 株式会社エヌ・ティ・ティ・ドコモ 情報提供サーバ
US7676534B2 (en) 2003-06-27 2010-03-09 Tohru Nishioka Coordinate mutual converting module
US7302343B2 (en) * 2003-07-31 2007-11-27 Microsoft Corporation Compact text encoding of latitude/longitude coordinates
RU2228542C1 (ru) * 2003-08-14 2004-05-10 Общество с ограниченной ответственностью "Альтоника" Способ определения местоположения транспортного средства
US6934634B1 (en) * 2003-09-22 2005-08-23 Google Inc. Address geocoding
JP4814507B2 (ja) * 2004-11-01 2011-11-16 日立オートモティブシステムズ株式会社 差分地図データ配信方法
US20060109144A1 (en) * 2004-11-23 2006-05-25 Tony Xu A method and device for customizing a local map with a grid that can be rotated and zoomed
JP3885157B2 (ja) * 2005-08-02 2007-02-21 直生 上田 地理的座標変換方法、装置、プログラム、ならびに地理的座標コードを記した情報担持体および地図
JP5038793B2 (ja) * 2007-06-27 2012-10-03 株式会社エヌ・ティ・ティ・ドコモ 位置推定システム
US8386461B2 (en) * 2008-06-16 2013-02-26 Qualcomm Incorporated Method and apparatus for generating hash mnemonics
CN101639917A (zh) * 2008-07-30 2010-02-03 国际商业机器公司 硬拷贝信息处理系统和方法
US20100082564A1 (en) * 2008-10-01 2010-04-01 Navteq North America, Llc Spatial Index for Locating Geographic Data Parcels Stored on Physical Storage Media
WO2010126412A1 (en) * 2009-04-28 2010-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Predicting presence of a mobile user equipment
JP5399813B2 (ja) * 2009-08-20 2014-01-29 株式会社Nttドコモ 逆ジオコーディング装置、及び逆ジオコーディング方法
JP2013507711A (ja) * 2009-10-12 2013-03-04 ウェイタッグ(プロプライエタリー)・リミテッド 位置特定システムおよび位置特定システムを動作させるための方法
WO2011073965A1 (en) * 2009-12-16 2011-06-23 Loc8 Code Limited Navigation method using geographic location codes
CN101763605A (zh) * 2010-01-28 2010-06-30 成都东哈科技有限公司 三维数字城市消防预控管理系统
JP2012203408A (ja) * 2011-03-28 2012-10-22 Hisashi Endo 緯度経度の座標変換方法、およびその位置情報コード
GB201117901D0 (en) * 2011-10-18 2011-11-30 Tomtom Int Bv Map code: a public location encoding standard
US20130297639A1 (en) * 2012-05-03 2013-11-07 Craig Bobik Geographic coordinate translation system
US9268462B2 (en) * 2012-08-14 2016-02-23 Google Inc. External action suggestions in search results

Also Published As

Publication number Publication date
WO2014170646A1 (en) 2014-10-23
CN110110020A (zh) 2019-08-09
JP2016520903A (ja) 2016-07-14
CN105409252B (zh) 2019-08-13
KR20150144334A (ko) 2015-12-24
CN110110020B (zh) 2023-09-08
KR20200123875A (ko) 2020-10-30
RU2667036C2 (ru) 2018-09-13
RU2015148847A3 (pt) 2018-03-22
GB2513196A (en) 2014-10-22
CA2909524C (en) 2021-07-06
MX2015014699A (es) 2016-06-28
KR102173272B9 (ko) 2020-11-03
AU2014255510C1 (en) 2023-08-03
CA2909524A1 (en) 2014-10-23
MX364994B (es) 2019-05-16
JP6417397B2 (ja) 2018-11-07
EP2987344A1 (en) 2016-02-24
ZA201507835B (en) 2017-02-22
BR112015026511A2 (pt) 2017-07-25
AP2015008813A0 (en) 2015-10-31
AU2014255510A1 (en) 2015-11-12
SA515370002B1 (ar) 2018-08-05
RU2015148847A (ru) 2017-05-24
KR20210094137A (ko) 2021-07-28
AU2014255510B2 (en) 2018-02-08
KR102173272B1 (ko) 2020-11-03
US9883333B2 (en) 2018-01-30
CN105409252A (zh) 2016-03-16
KR102282561B1 (ko) 2021-07-27
GB201307148D0 (en) 2013-05-29
RU2667036C9 (ru) 2018-10-25
US20160073225A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
BR112015026511B1 (pt) Método implementado por computador para produzir um identificador de localização, método implementado por computador para identificar uma localização, aparelho para identificar uma localização e método identificador de localização
US11698261B2 (en) Method, apparatus, computer device and storage medium for determining POI alias
CN109478184B (zh) 识别、处理和显示数据点聚类
Fang et al. A GIS data model for landmark-based pedestrian navigation
US20070083557A1 (en) Geometry-based search engine for navigation systems
US9264857B1 (en) Compact codes for geographic locations
US10079888B2 (en) Generation and use of numeric identifiers for locating objects and navigating in spatial maps
Janarthanam et al. Evaluating a city exploration dialogue system combining question-answering and pedestrian navigation
CN114579882A (zh) 地址查询方法、获取地理编码预测模型的方法及对应装置
US20150248192A1 (en) Semi-Automated Generation of Address Components of Map Features
US20200149908A1 (en) Secure data navigation
Han et al. Human assisted positioning using textual signs
KR101233902B1 (ko) 서버, 사전 생성 방법, 및 사전 생성 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체
CN111737374A (zh) 位置坐标确定方法、装置、电子设备及存储介质
CN113569564B (zh) 一种地址信息的处理、显示方法和装置
CN111831897B (zh) 一种出行目的地推荐方法、装置、电子设备及存储介质
OA17572A (en) A method and apparatus for identifying and communicating locations.
CN114036285A (zh) Poi分类方法、电子设备及计算机存储介质
KR20150046021A (ko) 지리적 주소의 간이화된 표현을 위한 시스템 및 방법
WO2019177785A1 (en) System for location naming service
WO2018203107A1 (en) Generation and use of numeric identifiers for locating objects and navigating in spatial maps
Kejriwal et al. Offline Indoor Localization leveraging Human Perception of Textual Signs
TW201624316A (zh) 地理資訊整合街景之數位導覽系統及方法

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 14/04/2014, OBSERVADAS AS CONDICOES LEGAIS

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 10A ANUIDADE.