KR102173272B1 - 위치 식별 및 통신을 위한 방법 및 장치 - Google Patents

위치 식별 및 통신을 위한 방법 및 장치 Download PDF

Info

Publication number
KR102173272B1
KR102173272B1 KR1020157032877A KR20157032877A KR102173272B1 KR 102173272 B1 KR102173272 B1 KR 102173272B1 KR 1020157032877 A KR1020157032877 A KR 1020157032877A KR 20157032877 A KR20157032877 A KR 20157032877A KR 102173272 B1 KR102173272 B1 KR 102173272B1
Authority
KR
South Korea
Prior art keywords
words
integer
values
cell
integers
Prior art date
Application number
KR1020157032877A
Other languages
English (en)
Other versions
KR20150144334A (ko
KR102173272B9 (ko
Inventor
모한 게인세일링엄
크리스토퍼 셸드릭
잭 월리-코헨
Original Assignee
와트3워즈 리미티드
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=KR102173272(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 와트3워즈 리미티드 filed Critical 와트3워즈 리미티드
Priority to KR1020207030719A priority Critical patent/KR102282561B1/ko
Publication of KR20150144334A publication Critical patent/KR20150144334A/ko
Application granted granted Critical
Publication of KR102173272B9 publication Critical patent/KR102173272B9/ko
Publication of KR102173272B1 publication Critical patent/KR102173272B1/ko

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

위치의 지리학적 좌표를 획득하고, 지리학적 좌표를 단일 고유 값 n으로 변환하고; 단일 고유 값 n을 다수의 값의 고유 그룹으로 변환하고; 다수의 값을 동일한 다수의 개별적인 단어들로 변화하고; 및 다수의 단어들을 위치 식별자로서 제공하는 위치 식별자를 생성하는 방법, 및 다수의 단어들을 포함하는 위치에 대한 위치 식별자를 획득하고, 다수의 단어들을 동일한 다수의 개별적인 값의 고유 그룹으로 변환하고; 다수의 값의 고유 그룹을 단일 고유 값 n으로 변환하고; 단일 고유 값 n을 지리학적 좌표로 변환하고; 및 지리학적 좌표를 출력하는 위치를 식별하는 방법.

Description

위치 식별 및 통신을 위한 방법 및 장치{A Method and Apparatus for Identifying and Communicating Locations}
본 발명은 전체적으로 위치를 식별하고 통신하기 위한 방법 및 장치 특히, 인간 친화적인 방식에서 위치를 식별하고 통신하기 위한 방법 및 장치에 관한 것이다.
최근 몇 년동안, 매우 우수한 정확도를 갖는 위치 시스템을 통합한 디바이스의 위치를 판단할 수 있는 위성 기반 위치 시스템들이 일반적으로 사용되고 있다. 전문가 네비게이션 디바이스들에 통합되는 것 뿐만 아니라, 그러한 위성 기반 위치 시스템들은 스마트폰 및 유사한 모바일 통신 및/또는 일반용 컴퓨팅 디바이스들에 일반적으로 포함된다.
경위도 좌표(latitude and longitude coordinates) 또는 그리드 기준(grid references)과 같은, 위치를 식별하기 위한 지리학적 수치 좌표들(geometric numerical coordinates)의 사용이 알려져 있고, 위성 기반 위치 시스템은 일반적으로 이러한 수치 좌표를 사용하여 위치를 식별한다. 예를 들어, GPS 시스템은 주로 고해상도 경위도 좌표로서 존재하는 GPS 좌표를 사용하여 위치를 식별한다.
위치를 식별하기 위해 수치 좌표를 사용하는 것의 한 현실적인 문제는 도출된 숫자열들(strings of numbers)이 사용자에 대해 매우 사용자 비친화적이라는 것이다. 실제로, 사람들은 일반적으로 숫자열들이 정확하게 외우거나 다른 사람에게 구두로 통신하기 어려운 것을 알고 있다. 또한, 예를 들어 당신이 어디로 가고 싶어 하는지 네비게이션 디바이스에 말하거나, 또는 다른 사람에게 보내는 메시지에 위치를 포함하기 위해 디바이스에 정확하게 수동적으로 숫자열들을 입력하는 것은 상대적으로 느리고 시간 소모가 클 수 있다.
몇몇 케이스들에서, 위치들은 가능하게는 건물 번호와 함께 우편 번호나 도로명과 같은 다른 수단을 사용하여 실별되지만, 이러한 접근들은 상대적으로 부정확할 수 있고 일반적으로 건물에 대해서만 부여된다는 문제가 있다. 특히, 우편번호는 일반적으로 우편이 배송되거나 수취될 것으로 예상되는 위치에 대해서만 부여된다. 그 결과로서, 이러한 접근들은 이따금씩 고밀도로 적절한 코드, 이름 및 숫자들이 부여된 도시 지역에서만 단지 유용하다. 또한, 우편번호는 숫자 좌표에 비해 외우거나 구두로 통신하기에 반드시 더 쉬운 것은 아니다. 또한, 다른 국가 또는 지역들은 주소를 식별하기 위한 다른 시스템을 사용하고, 이러한 주소 시스템들의 다수는 상대적으로 단순하고(unsophisticated), 특정 위치를 식별하거나 통신하기 위해 제한적인 값을 갖는다.
바람직하게 제시되는 방법 및 장치는 이러한 문제를 다룬다.
일 양상에서, 본 발명은 다음을 포함하는 위치 식별자를 생성하는 컴퓨터 구현 방법을 제공한다: 프로세서에서 위치의 지리학적 좌표를 수신하고; 상기 프로세서에서
상기 지리학적 좌표를 단일 고유값(single unique value) n으로 변환하고;
상기 단일 고유값 n을 다수의 값들의 고유 그룹으로 변환하고;
상기 다수의 값들을 동일한 다수의 각각의 단어로 변환하고; 및
위치 식별자로서 사용가능한 상기 다수의 단어를 만드는 단계를 수행한다.
바람직하게, 방법은 지리학적 영역을 가로지르는 셀 배열(array of cells)을 정의하고; 및 상기 프로세서에서 지리학적 좌표를 단일 고유값 n으로 변환하는 단계를 수행하는 것이 이하의 단계를 수행하는 것을 포함한다: 지리학적 좌표를 위치를 포함하는 셀을 식별하는 셀 식별 값 및 셀 내에서 위치(location)의 포지션(position)을 식별하는 셀 포지션 값으로 변환하고; 셀 식별 값 및 셀 포지션 값을 단일 고유 값 n으로 변환하는 단계.
바람직하게, 지리학적 좌표들은 위도 및 경도 좌표이다.
바람직하게, 다수의 단어들은 정의된 시퀀스(sequence)로 있다.
바람직하게, 셀 식별 값은 정수(integers) X, Y의 쌍이고, 셀 포지션 값은 정수 x, y의 쌍이다.
바람직하게, 값 n 및 다수의 값들은 정수이다.
바람직하게, 위도 및 경도 좌표는 다음의 수식을 사용하여 셀 식별 값 및 셀 포지션 값으로 변환된다.
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))
여기서, W(Y) = max(1, floor(1546 * cos((Y + 0.5)/24 - 90))).
바람직하게, 셀 식별 값 및 셀 포지션 값들 X, Y, x 및 y는 셀 식별 값 X, Y에 의해 식별되는 각 셀을 할당하고, n의 값의 고유 범위는 최소값 q를 갖고, 그리고 다음의 수식을 사용하여 n을 획득하는 것에 의해 단일 고유 값 n으로 변환된다.
n = q + 1546*x + y.
바람직하게, 단일 고유 값 n은 세 개의 값 i, j, k의 고유 그룹으로 변환되고,
세 개의 값 i, j 및 k는 세 개의 각각의 단어로 변환되고; 및
세 개의 단어는 위치 식별자로서 제공된다.
바람직하게, 단일 고유 값 n을 세 개의 값 i, j, k의 고유 그룹으로 변환하고는 것은, n의 가능한 값을 값의 블럭으로 나눔으로써 단일 고유 값 n을 단일 고유 정수값 m으로 변환하고, 및
m을 획득하기 위해 값의 블록에서 n의 값들을 셔플링하는 것을 포함한다.
바람직하게 단일 고유 값 n을 세 개의 값 i, j, k의 고유 그룹으로 변환하는 것은 단일 고유 값 m을 세 개의 값 i, j, k으로 다음에 의해 변환하는 것을 포함한다.
l = floor (cuberoot(m))을 정의하고; 그리고
l3 = m < l3 + l2 + 2l +1인 경우에는
i = l, j = r div (l + 1), 및 k = r mod (l + 1), 여기서, r = m - l; 또는
l3 + l2 + 2l + 1 ≤ m < l3 + 2l2 + 3l + 1인 경우에는
i = r div (l + 1), j = l, and k = r mod (l + 1), 여기서, r = m - (l3 + l2 + 2l +1);
또는
l3 + 2l2 + 3l + 1 ≤ m < l3 + 3l2 + 3l + 1인 경우에는
i = r div l, j = r mod l, k = l, 여기서 r = m - (l3 + 2l2 + 3l + 1).
바람직하게, 세 개의 값 i, j, k의 고유 그룹은 단어들의 명령된 리스트 에 각 값을 비교하고, 명령된 리스트에서 값의 포지션에서 각 값을 단어로 변환함으로써 세 개의 각각의 단어들로 변환된다.
두 번째 양상에서, 본 발명은 첫 번째 양상의 방법을 수행함에 의해 위치 식별자를 생산하기 위해 적용된 정치를 제공한다.
세 번째 양상에서, 본 발명은 프로세서에 의해 실행될 때 프로세서가 첫 번째 양상의 방법의 단계들을 실행하도록 유발할 컴퓨터로 읽을 수 있는 지시를 포함한다.
네 번째 양상에서, 본 발명은 다음을 포함하는 위치를 식별하는 컴퓨터 구현 방법을 제공한다.
프로세서에서 위치에 대한 위치 식별자를 수신하고, 위치 식별자는 다수의 단어를 포함하며;
상기 프로세서에서
다수의 단어들을 동일한 수의 개별적인 값의 고유 그룹으로 변환하고;
단일 고유 값 n을 지리학적 좌표로 변환하고; 및
지리학적 좌표를 출력하는 단계가 수행된다.
바람직하게, 방법은 지리학적 영역을 가로지르는 셀 배열을 정의하고; 및 상기 프로세서에서 단일 고유 값 n을 지리학적 좌표로 변환하는 단계를 수행하는 것을 포함하되, 상기 단계를 수행하는 것은
단일 고유 값 n을 위치를 포함하는 셀을 식별하는 셀 식별 값과 셀 내에서 위치의 포지션을 식별하는 셀 포지션 값으로 변환하고; 및
셀 식별 값 및 셀 포지션 값을 지리학적 좌표로 변환하는 단계를 수행하는 것을 포함한다.
바람직하게, 지리학적 좌표는 위도 및 경도 좌표이다.
바람직하게 다수의 단어는 정의된 시퀀스로 되어 있다.
바람직하게, 셀 식별 값은 정수 X, Y의 쌍이고, 셀 포지션 값은 정수 x, y의 쌍이다.
바람직하게, 값 n 및 다수의 값들은 정수이다.
바람직하게, 셀 식별 값 및 셀 포지션 값은 다음의 수식을 사용하여 지리학적 좌표로 변환된다.
Latitude = (Y + ((y + 0.5)/1546))/24 * 90
Longitude = (X +((x+0.5)/(W(Y)))/24-180
여기서, W(Y) = max(1, floor(1546 * cos((Y + 0.5)/24 - 90))).
바람직하게, 단일 고유 값 n은 n의 값들의 고유 범위를 갖는 셀 식별 값 X, Y에 의해 식별되는 개별적인 셀을 연관(associationg)함으로써 변환되고, 각각의 고유 범위는 최소값 q을 갖고,
셀 식별 값 및 셀 포지션 값 X, Y, x 및 y로 변환되고, 값 n이 위치한 n의 값의 할당된 범위를 식별하고; 그리고 할당된 범위 내에서 연관된 셀 식별 값 X, Y를 취하고, 다음의 수식을 사용하여 x 및 y를 결정한다.
x = (n - q) div 1546
y = (n - q) mod 1546.
바람직하게, 다수의 단어들은 세 개의 단어들을 포함하고; 세 개의 단어들은 세 개의 개별적인 값들 i, j 및 k의 고유 그룹으로 변환되고, 세 개의 값들 i, j, k의 고유 그룹은 단일 고유 값 n으로 변환된다.
바람직하게, 세 개의 값 i, j, k의 고유 세트를 단일 고유 값 n으로 변환하는 것은: m의 가능한 값들을 동일한 크기의 값의 블록으로 나눔으로써 단일 고유 정수값 m을 단일 고유 값 n으로 변경하고, 및
n을 획득하기 위해 값들의 블록에서 m의 값들을 셔플링하는 것을 포함한다.
바람직하게, 세 개의 값들 i, j, k의 고유 그룹을 단일 고유 값 n으로 변환하는 것은 다음에 의해 단일 고유 값 m을 세 개의 값들 i, j, k의 고유 그룹으로 변환하는 것을 포함한다:
l = max(i; j; k)를 정의하고; 그리고
i = l인 경우,
m = l3 + (l + 1)j + k; 또는
j = l인 경우,
m = l3 + l2 + 2l + 1 + (l + 1)i + k; 또는
k = l인 경우,
m = l3 + 2l2 + 3l + 1 + li + j.
바람직하게, 세 개의 단어들은 연관된 열에서 단어들과 정수값들을 저장함에 의해 세 개의 각각의 값들 i, j, k의 고유 그룹으로 변환된다.
다섯번째 양상에서, 본 발명은 네번째 양상의 방법을 수행함에 의해 위치를 식별하기 위해 적용된 장치를 제공한다.
여섯번째 양상에서, 본 발명은 프로세서에 의해 실행될 때 프로세서에 네 번째 양상의 방법의 단계들을 실행하도록 유발할 컴퓨터로 읽을 수 있는 지시를 포함하는 위치 식별 컴퓨터 프로그램을 제공한다.
본 발명은 본 발명의 상술한 양상들의 어느 것에 의해 구현되기 위한 시스템, 디바이스, 제품(articles of manufacture)을 더 제공한다.
본 발명은 이제 이하의 도면을 참조하여 자세히 설명될 것이다.
도 1은 본 발명에 따른 시스템의 예시의 다이어그램이다;
도 2는 도 1의 시스템에서 사용된 사용자 디바이스의 예시의 다이어그램이다;
도 3은 도 1의 시스템의 제 1 방향에서 동작의 플로우 다이어그램이다;
도 4는 도 1의 시스템의 제 2 방향에서 동작의 플로우 다이어그램이다;
도 5는 도 1의 시스템의 서버의 동작의 다이어그램이다.
도 1은 본 발명에 따른 위치 식별 및 통신 시스템(1)의 예의 개요를 도시한다.
시스템(1)은 사용자 디바이스(2)와 중앙 서버(3)를 포함하다. 사용자 디바이스(2)는 스마트폰(2a) 및 개인용 컴퓨터(PC)(2b)를 포함하고, 사용자 스마트폰(2a) 및 사용자 PC(2b)인 사용자 디바이스(2)의 각각은 중앙 서버(3)과 인터넷(4)를 통해 통신할 수 있다. 비록, 명확성을 위해, 단지 세 개의 사용자 스마트폰(2a) 및 하나의 PC(2b)가 도 1에 도시되어 있으나, 실제 시스템(1)은 사용자 스마트폰(2a)과 PC(2b)와 같은 많은 수의 사용자 디바이스(2)를 포함할 수 있다.
도 2는 시스템(1)의 사용자 스마트폰(2a)의 예를 보다 자세하게 도시한다. 도 2에 도시된 것과 같이, 사용자 스마트폰(2a)은 데이터 프로세서(10), 시각 디스플레이(11), 사용자 명령이 스마트폰(2a)에 입력되는 것을 허용하는 사용자 인터페이스(12), 스피커(13) 및 마이크(microphone, 14)를 포함한다. 스마트폰(2a)의 다양한 구성들이 프로세서(10)의 제어 하에서 동작한다. 사용자 인터페이스(12)는 터치 스크린 디스플레이로서 시각 디스플레이와 함께 통합된다. 다른 예에서, 인터페이스(12)는 시각 디스플레이로부터 분리된 전용 키패드일 수 있다. 이러한 구성들을 포함하는 스마트폰은 당업자에게 잘 알려져 있고, 따라서 이것들은 자세하게 설명될 필요가 없다. PC(2b)가 유사한 기능을 가질 이 이해될 것이다.
또한, 스마트폰(2a)은 위치 결정 수단(15), 맵핑 또는 네비게이션 모듈(16) 및 위치 식별 모듈(11)을 포함한다. 네비게이션 모듈(16) 및 위치 식별 모듈(17)은 위치 결정 수단(15)로부터 포지션 정보를 수신하기 위해 배열된다. 도시된 예에서, 위치 결정 수단(15)는 위성 항법 시스템(global positioning system, GPS)이다. 다른 예에서, 다른 위성 기반 네비게이션 시스템이 사용될 수 있다. 네비게이션 모듈(16) 및 위치 식별 모듈(17)은 전용 하드웨어를 포함할 수 있고, 또는 스마트폰(2a)에의 프로세서(10) 상에서 구동되는 소프트웨어 프로그램 또는 어플리케이션을 포함할 수 있다. 일부 예에서, 사용자 PC(2b)는 위치 결정 수단(15)를 포함하지 않을 수 있다. 일부 예에서, 위치 결정 수단을 포함하지 않는 사용자 PC(2b)는 여전히 별도의 위치 결정 수단으로부터 위치 정보에 접근할 수 있다.
위치 식별 모듈(17)은 위치 기반 서비스를 사용자에게 제공하기 위해 위치 결정 수단(15)에 의해 제공된 포지션 정보를 사용한다.
명확성을 위해, 위치 결정 수단(15)를 포함하는 사용자 스마트폰(2a)를 구비한 시스템(1)의 동작이 설명될 것이다.
도 3은 본 발명에 따른 위치 기반 서비스의 예의 플로우챠트이다. 도 3의 예에서, 스마트폰(2a)은 사용자 요청에 대응하여 사용자의 현재 위치를 식별하는 정보를 사용자에게 제공한다. 사용자는 예를 들어, 이러한 정보를 원하여, 사용자는 다른 사람에게 위치를 통신할 수 있다. 예를 들어, 사용자는 다른 사람에게 사용자의 현재 위치를 알리고 싶어할 수 있다.
먼저, 사용자는 요청 단계(20)에서 사용자 인터페이스(12)를 사용하여 스마트폰(2a)에 대해 그들의 현재 위치의 식별을 요청한다. 이러한 요청에 대응하여, 위치 식별 모듈(17)은 획득 단계(21)에서 위치 결정 수단(15)로부터 스마트폰(2a)의 현재 위치 좌표를 획득한다. 이러한 현재 위치 좌표는 GPS 좌표로서 위치 결정 수단(15)에 의해 제공되며, 예를 들어, "52.123456, -0.654321"인 소수점 여섯째 자리인 위도 및 경도 좌표이다. 포지션적인 좌표들은 GPS와 같은 위성 기반 네비게이션 시스템으로부터 이런 정도의 정확도에 대해 용이하게 사용가능하다.
스마트폰(2a)의 현재 포지션의 획득된 위도 및 경도 좌표는 그리고 나서 전송 단계(22)에서 스마트폰(2a)의 통신 기능을 사용하여 인터넷(4)을 통해 위치 식별 모듈(17)에 의해 서버(3)에 전송된다.
그리고 나서 서버(3)는 변환 단계(23)에서 수신된 위도 및 경도 좌표를 예를 들어 "태블릿 마이크로폰 익사이티드(tablet microphone excited)"와 같은 고유의 세 단어 순서를 포함한 위치 식별자로 변환한다. 이러한 변환은 이하에서 상세하게 설명되는 알고리즘을 사용하여 수행된다.
서버(3)는 그리고나서 반환 단계(24)에서 인터넷(4)을 통해 스마트폰(2a)의 위치 식별 모듈(17)에 대해 세 단어 시퀀스 위치 식별자를 반환한다.
수신된 위치 식별자는 그리고 나서 디스플레이 단계(25)에서 고유 세 단어 시퀀스를 포함하는 텍스트로서 스마트폰(2a)의 시각 디스플레이(11) 상에 사용자에게 디스플레이된다. 그렇지 않으면, 또는 부가적으로, 디스플레이 단계(25)에서 수신된 위치 식별자는 스피커(13)을 통한 고유 세 단어 시퀀스를 포함한 음성으로서 사용자에게 제공될 수 있다. 세 단어 위치 식별자가 음성으로서 사용자에게 제공되는 일부 예에서, 음성은 스마트폰(2a)에 의해 세 단어 식별자의 텍스트로부터 생성될 수 있다.
그리고 사용자는 그들의 현대 위치를 식별하기 위해 고유 세 단어 시퀀스를 포함하는 위치 식별자를 사용할 수 있다. 예를 들어, 사용자는 그들의 현재 위치를 이후에 식별하기 위한 세 단어 시퀀스를 사용할 수 있도록 고유 세 단어 시퀀스를 암기 또는 기록할 수 있다. 다른 예에서 사용자는 다른 사람에 대해 위치를 통신하여 그들이 위치를 식별할 수 있도록 하기 위해 다른 사람에 대해 대면 대화 또는 전화에 의해 세 단어 시퀀스를 말할 수 있다. 다른 예에서, 사용자는 예를 들어 이메일이나 SMS와 같은 텍스트로서 다른 사람에게 세 단어 시퀀스를 전송함으로써, 위치를 통신할 수 있어서, 다른 사람이 위치를 식별할 수 있다. 다른 예에서, 사용자는 소셜 미디어에 대해 접근하는 사람 또는 사람들이 위치를 식별할 수 있 도록 소셜 미디어를 통해 사용가능한 세 단어 시퀀스를 형성함으로써 위치를 통신할 수 있다.
다른 예에서, 사용자의 현재 위치를 식별하는 대신, 획득된 위도 및 경도 좌표는 예를 들어, 만나거나 방문하기 위해 예정된 위치 또는 사용자 또는 제 3 자가 관심을 가질 수 있는 위치와 같은 다른 위치일 수 있다. 이러한 예에서, 경도 및 위도 좌표는 사용자의 현재 위치가 아니기 때문에 그들은 다른 방식으로 획득되어야 한다. 예를 들어, 위도 및 경도 좌표는 디스플레이된 지도 상에서 관심의 위치를 사용자가 선택하고 맵핑 어플리케이션은 선택된 위치의 위도 및 경도를 제공함에 의해 사용자 스마트폰 상에서 맵핑 어플리케이션으로부터 획득될 수 있다.
도 4는 본 발명에 따른 위치 기반 서비스의 다른 예의 플로우차트이다. 도 4의 예에서, 스마트폰(2)는 사용자에게 알려진 고유 세 단어 시퀀스를 포함하는 위치 식별자에 의해 식별되는 위치를 사용자에게 도시한다. 사용자는 예를 들어, 그들은 위치로 여행할 수 있도록 이러한 식별된 위치를 원할 수 있다.
먼저, 사용자는 요청 단계(30)에서 스마트폰(2a)에 대해 고유 세 단어 시퀀스를 포함하는 위치 식별자에 의해 식별된 위치를 도시할 것을 요청할 수 있다.
그리고 나서, 사용자는 입력 단계(31)에서 사용자 인터페이스(12)를 사용하여 예를 들어, "브레드 싱잉 홀스터(bread singing holster)"와 같은 세 단어 시퀀스 위치 식별자를 입력한다. 그렇지 않으면, 일부 예에서, 요청 및/또는 입력은 마이크(14)를 사용하여 구두로 이루어질 수 있다. 이러한 예에서, 스마트폰(2a)은 적절한 음성 인식 수단에 대한 접근을 포함하거나 구비하여야 한다.
스마트폰(2a)은 위치 식별 모듈(17)에 대해 세 단어 시퀀스 위치 식별자를 입력하는 것을 통과하고, 위치 식별 모듈(17)은 그리고 나서 전송 단계(32)에서 스마트폰(2)의 통신 기능을 사용하여 인터넷(4)을 통해 서버(3)에 대해 세 단어 시퀀스 위치 식별자를 전송한다.
서버(3)는 그리고 나서 변환 단계(33)에서 수신된 고유 세 단어 시퀀스를 예를 들어 "73.354721, 23.879527"인 소수점 여섯자리로 위도 및 경도 좌표로 변환할 수 있다. 이러한 변환은 이하에서 상세하게 설명되는 알고리즘을 사용하여 수행된다.
서버(3)는 반환 단계(34)에서 인터넷(4)을 통해 스마트폰(2)의 위치 식별 모듈(17)에 대해 위도 및 경도 좌표를 반환한다.
위치 식별 모듈(17)은 그리고 나서 수신된 위도 및 경도 좌표를 위치 결정 수단(15)에 전달하고, 위치 결정 수단(15)은 그리고 나서 디스플레이 단계(35)에서 스마트폰(2a)의 시각 디스플레이(11) 상에서 사용자에 대해 결정된 위치를 디스플레이한다. 예를 들어, 위치 결정 수단(15)은 결정된 위치를 포함하거나 또느 중앙에 위치한 시각 디스플레이(11) 상에서 지도를 디스플레이할 수 있고, 지도 상에서 마크 또는 커서로서 결정된 위치를 나타낼 수 있다. 그렇지 않으면, 또는 부가적으로, 디스플레이 단계(35)에서 위치 결정 수단(15)은 사용자를 결정된 위치에 가이드 하기 위해 시각 디스플레이(11) 상에 방향을 표시할 수 있다. 사용자가 결정된 위치에 대해 지시된 일부 예에서, 방향은 스마트폰(2a)이 스피커를 통해 음성으로서 주어질 수 있다.
도시된 예에서, 시스템(1)은 사용자 스마트폰(2a) 및 개인 컴퓨터(PC)(2b)의 형태인 사용자 디바이스(2)를 포함한다. 다른 예에서, 시스템(1)은 추가적으로 또는 대안으로, 예를 들어, 랩탑 및 태블릿 컴퓨터와 같은 다른 종류의 컴퓨팅 디바이스의 형태로 사용자 디바이스(2)를 포함할 수 있다. 이러한 예들의 리스트는 배제되는 것으로 의도되는 것이 아니다.
도시된 예에서, 사용자 디바이스의 일부는 위치 결정 수단을 포함하는 사요자 스마트폰(2a)이다. 모든 사용자 디바이스들이 위치 결정 수단을 포함하는 것이 필수적인 것은 아니다. 다른 예에서, 일부 또는 전체 사용자 디바이스(2)는 분리된 위치 결정 수단과 통신하도록 배열된다. 다른 예에서, 일부 또는 전체 사용자 디바이스(2)는 포지션 결정 수단에 대한 접근을 하지 않을 수 있다. 시스템의 일부 기능은 예를 들어 사용자의 현재 위치를 식별하는 포지션 결정 수단에 대해 접근하지 않는 사용자 디바이스(2)를 통해 이용할 수 없을 수 있으나, 시스템은 여전히 예를 들어 미팅을 위한 제안된 위치를 식별하거나 위치 식별자에 의해 식별된 위치를 도시하는 다른 서비스를 이러한 사용자 디바이스(2)에 제공하는 것에 의해 사용될 수 있다.
도시된 예에서 사용자 디바이스는 맵핑 또는 네비게이션 모듈을 포함하는 스마트폰(2a)이다. 사용자 디바이스가 맵핑 또는 네비게이션 모듈을 포함하는 것이 필수적인 것은 아니다.
일부 예에서, 시스템(1)은 사용자 컴퓨팅 디바이스에 의해 접근될 수 있는 웹사이트를 포함할 수 있다. 일부 예에서, 웹사이트는 서버(1)에 의해 호스팅될 수 있다. 다른 예에서, 웹사이트는 개별적인 서버에 의해 호스팅될 수 있다. 이러한 예에서, 웹사이트는 접근하는 사용자 컴퓨팅 디바이스에 대해 맵핑 및/또는 네비게이션 기능을 제공할 수 있다.
상술한 바와 같이, 본 발명에 따르면 위치가 수치적 좌표 대신 단어로 이루어진 고유 위치 식별자 또는 이름을 사용하여 식별되고, 각각의 위치 식별자는 특정 시퀀스의 세 단어로 이루어지며, 본 발명의 방법 및 장치는 고유 세 단어 위치 식별자로 지리학적 좌표의 변환을 수행하며, 고유 세 단어 위치 식별자를 지리학적 좌표로 변환을 수행한다. 세 단어의 시퀀스로 이루어진 이러한 위치 식별자는 지리학적 좌표를 형성하는 숫자의 나열(strings of numbers)에 비해 사용자가 기억하고 문자 통신 또는 구두로 통신하기에 일반적으로 훨씬 더 쉽다. 예를 들어, 위에서 주어진 첫번째 예를 사용하면, 대부분의 사람들은 숫자 시퀀스 "52.123456, -0.654321"에 비해 "태블릿 마이크로폰 익사이티드(tablet microphone excited)"의 문구가 기억하기, 쓰기, 읽기, 말하기 및 말로 이해하기 쉬운 것을 알 수 있을 것이다. 지리적인 좌표를 식별하기 위해 문자 및 숫자 시퀀스를 사용하는 지리학적 포지션을 인코딩하는 다르 형태에 대해, 대부분의 사람들이 " t6D3we1"와 같은 무작위의 문자 및 숫자 시퀀스에 비해 "태블릿 마이크로폰 익사이티드(tablet microphone excited)"의 문구가 기억하기, 쓰기, 읽기, 말하기 및 말로 이해하기 쉬운 것을 알 수 있을 것 또한 사실이다.
본 발명의 동작의 원리가 이하에서 설명될 수 있다. 소수점 여섯째 자리로 정의된 위도 및 경도의 형태인 GPS 좌표를 사용함으로써, 지구 표면 상에서 모든 위치는 특정 대략 3미터 곱하기3미터 박스 또는 영역인 것으로서 고유하게 식별될 수 있다. 이러한 대략 3m 곱하기 3m 입상(granularity)에 대한 위치를 정의하는 것은 대부분의 목적을 위해 충분히 정확하다.
지구의 전체 면을 커버하기 위해, 고유하게 식별되어야 하는 다른 박스들의 전체 수는 대략 5.7 * 1013 또는 5천7백만의 백만이다. 만약 특정 시퀀스에서 각각의 고유 이름이 세 개의 실제 단어로 이루어진다면, 이러한 수의 고유 이름을 정의하는 것은 대략 38,500개의 실제 단어를 요구할 것이고, 영어와 같은 대부분의 언어에서 용이하게 사용가능하다.
대안적인 예에서, 만약 단지 이러한 지상에 위치한 대략 3m 곱하기 3m 박스들이 고려되고 위치 식별자를 할당받는다면, 그리고 북극과 남극을 둘러싼 일반적으로 사람이 살지 않는 영역을 배제한다면, 고유하게 식별되어야 하는 다른 박스들의 전체 수는 약 2.7 * 1013 또는 2천 7백만의 백만이다. 만약 특정 시퀀스에서 각각의 고유 이름이 세 개의 실제 단어로 이루어진다면, 이러한 수의 고유 이름을 정의하는 것은 대략 25,000개의 실제 단어를 요구할 것이고, 영어와 같은 대부분의 언어에서 용이하게 사용가능하다.
세 개의 단어 시퀀스를 형성하는데 사용되는 단어들은 실제 단어인 것이 바람직하다 이것은 사용자로 하여금 단어를 기억하고, 발음하고, 적고 식별하기 쉽게 할 수 있다.
위에서 설명된 것처럼, 본 발명에서 알고리즘이 위도 및 경도 좌표를 세 개의 단어 시퀀스 위치 식별자로 또는 그 반대로 변환하는데 사용된다.
원리적으로, 소수점 여섯 자리의 위도 및 경도 좌표를 사용하여 정의 가능한 모든 영역에 대응하는 전체 단어 조합을 포함하는 데이터베이스를 생성하고, 대응되는 세 개의 단어 시퀀스 또는 좌표 각각을 참조하기 위해 좌표 또는 세 개의 단어 시퀀스를 사용하는 것에 의해 변환을 수행하는 것이 가능할 것으로 보인다. 그러나 이러한 억지적인 접근(brute force approach)은 데이터 베이스에 사이즈에서 수백개의 테라바이트(terabytes)를 요구할 수 있고, 이것은 실제로 다루기 어려울 수 있다. 특히, 이러한 데이터베이스는 원하는 변환을 수행하기 위해 어떠한 실행 가능한 시간에서 서치하는 것이 어렵거나 불가능할 수 있다. 따라서, 본 발명에서 알고리즘은 변환을 수행하기 위해 사용된다.
본 발명에 따른 변환 알고리즘의 예의 전체적인 구조가 도 5에 도시된다. 알고리즘(40)은 전체로서 가역적(reversible)이고, 알고리즘을 구성하는 각각의 단계 역시 가역적이다. 따라서, 동일한 알고리즘(40)이 위도 및 경도를 세 개의 단어 시퀀스로 변환하고, 세 개의 단어 시퀀스 위치 식별자를 위도 및 경도 좌표로 변환하는데 사용될 수 있다.
셀 및 포지션 값 변환 단계(51)는 위도 및 경도 좌표를 4개의 정수 셀 및 포지션값 X,Y, x, y으로 그리고 그 반대로 변환한다.
매력 평가 단계(attractiveness rating step, 52)는 4개의 정수 셀 및 포지션 값 X, Y, x, y를 단일 정수값 n으로 그리고 그 반대로 변환한다.
셔플링 및 언셔플링 단계(53)는 정수 n을 다른 정수 m으로 그리고 그 반대로 변환한다.
분리 및 결합 단계(54)는 정수 m을 세 개의 정수 i, j, k로 그리고 그 반대로 변환한다.
단어 변환 단계(55)는 각각의 정수 i, j, k를 단어로 그리고 그 반대로 변환한다.
알고리즘은 51-52-53-54-55 순서인 첫번째 순방향에서 각각의 단계들을 수행함에 의해 위도 및 경도 좌표를 세 개의 단어 시퀀스 위치 식별자로 변환한다. 알고리즘은 55-54-53-52-51순서인 두번째 역방향에서 각각의 단계들을 수행함에 의해 세 개의 단어 위치 식별자를 위도 및 경도 좌표로 변환한다.
알고리즘의 다른 단계들 51 내지 55은 보다 자세하게 설명될 것이다. 그들은 위도 및 경도 좌표를 세 개의 단어 시퀀스 위치 식별자로 변환하기 위해 수행되는 순서로 설명되었다.
셀 변환 단계(51)는 GPS 좌표와 같은 소수점 여섯자리 위도 및 경도 좌표를 네 개의 정소 셀 및 포지션 값 X, Y, x, y로 그리고 그 반대로 변환한다. 본 발명은 지구의 면을 대략 3.7*107, 즉 3천 7백만개의 셀의 배열 또는 그리드(grid)로 나눈다. 적도에서 이러한 셀들은 지엽적으로 4.64km, 즉 약 5km의 제곱이다. 지구의 대략적인 구 형태로 인해, 이러한 셀의 크기 및 형상이 변할 것이며, 셀은 북-남 방향에서 폭은 대략적으로 일정하고, 동-서 방향에서 폭이 변하며, 셀의 동-서 방향 치수는 적도로부터 멀어진 위치일수록 더 작다. 그러나, 위도 및 경도 좌표가 및 셀들이 모두 각도 단위로 정의되어 있기 때문에, 이것은 변환의 정확성에 영향을 주지 않는다.
정수 셀 값 X 및 Y의 쌍은 어떤 셀에 위치가 있는지 식별하는 반면, 정수 포지션 값 x 및 y는 그 셀 내에서 위치가 어디에 위치해 있는지 나타낸다. 특히, 정수 포지션 값 x 및 y는 정수 셀 값 X 및 Y에 의해 식별된 셀 내에서 특정 3m 곱하기 3m를 식별한다. 따라서, 정수 셀 값 X 및 Y의 쌍은 셀 그리드에 관해 정의되는 반면, 정수 포지션 값 x 및 y는 셀 내에서의 좌표이다. 따라서, 네 개의 정수값 X, Y, x, y는 셀 및 포지션 값으로 언급된다. 셀들은 셀의 영역에 기반하여 포지션 값 x, y의 범위를 달리하도록 할당되어, 더 넓은 영역을 갖는 셀은 더 큰 수의 포지션 값 x, y를 할당받는다. 따라서, 이러한 이유로, 전체적으로 적도로부터 먼 위치일수록 더 작은 셀의 동-서 치수는 변환의 정확도에 영향을 주지 않는다. 결과적으로, 더 넒은 영역을 갖는 셀은 더 많은 수의 식별가능항 위치를 포함하고, 따라서 입상 또는 각 식별 가능한 위치의 영역의 크기는 대략적으로 일정하다. 적도에 더 가까운 셀들은 전체적으로 더 큰 수의 포지션값 x, y 및 식별가능한 위치를 할당받는다.
위도 및 경도 좌표를 세 개의 단어 시퀀스로 변환할 때 사용되는 첫번째, 정방향에서 다음의 수식이 셀 및 포지션 값들 X, Y, x, y를 계산하기 위해 사용된다.
X = floor((Longitude + 180) * 24) (1)
Y = floor((Latitude + 90) * 24) (2)
x = floor(W(Y) * frac((Longitude + 180) * 24)) (3)
Where W(Y) = max(1, floor(1546 * cos((Y + 0.5)/24 - 90)))
y = floor(1546 * frac((Latitude + 90) * 24)) (4)
여기서 실수(real number)의 바닥(floor)은 그 실수에 비해 작거나 같은 최대 정수이다. 실수 q의 소수부(fractional part)는 q - floor(q)이다; 우리는 이것을 frac(q)로 기재한다. 보다 약식으로, 실수의 바닥(floor)은 소수점 이전의 부분이고, 소수부는 소수점 이후의 부분이다. (따라서, floor(3.1415) = 3 and frac(3.1415) = 0.1415).
세 개의 단어 시퀀스를 위도 및 경도 좌표로 변환할 때 사용되는 두 번째, 역방향에서, 이하의 수식이 위도 및 경도값을 계산하는데 사용된다
Latitude = (Y + ((y + 0.5)/1546))/24 - 90 (5)
Longitude = (X +((x+0.5)/(W(Y)))/24-180 (6)
다시, 여기서, W(Y) = max(1, floor(1546 * cos((Y + 0.5)/24 - 90))).
비록, 이러한 셀 변환 단계(51)가 가역적이지만, 단지 불완전하게 가역적인 것일 뿐, 완전하게 가역적인 것은 아니다. 즉, 만약 원래 위도 및 경도 좌표가 정수 셀 및 포지션 값으로 변환되고 그리고 최종 위도 및 경도 좌표로 다시 변환된다면, 원래와 최종 위도 및 경도 좌표는 약간 다를 것이다. 그러나, 실제로 그 차이는 작고, 최대 2.1m, 세 단어 시퀀스에 의해 위치 식별의 입상이 약 3m 곱하기 3m인 본 예에서 문제되지 않는다. 이러한 불완전 가역성은 위도 및 경도 좌표가 실수가 아닌 반면, 셀 및 포지션값들은 정수라는 사실로부터 기인한다.
매력 평가 단계(52)는 네 개의 정수 셀 값 X, Y, x, y를 단일 고유 값 n 또는 그 반대로 변환한다. 정수값 n은 매력 평가로서 언급된다. 셀 변환 단계(51)게 관하여 앞에서 설명하였듯이, 정수 셀 값 X 및 Y의 각 쌍은 특정 셀을 식별하고, 각 셀은 적도에서 5km 곱하기 5km이다. 앞에서 언급하였듯이, 셀의 크기 및 형상은 다른 위치에서 가변된다. 정수값 n은 시스템의 사용자가 그 셀에서 위치를 식별하고자 기재하는 상대적인 정도 또는 양을 나타내는 셀에 할당된 값으로, 달리 말하면, 셀의 매력(attractiveness)이다. 예를 들어, 사하라 사막과 같은 황야 영역에서 셀 내의 위치를 식별할려고 하는 것에 비해 보다 많은 사용자가 런던과 같은 주요 도시의 중앙에 위치한 셀에서 위치를 식별하고자 할 것이 예상될 수 있다. 보다 일반적으로, 교외 지역에서 셀 내의 위치를 식별하고자 할 것에 비해 보다 많은 사용자가 도심 영역에 위치한 셀 내의 위치를 식별하고자 할 것이 예상될 수 있다.
위치의 매력 평가 n은 그 위치에 할당된 단어 시퀀스를 형성하는데 어떤 단어들이 사용되는지 결정하는데 사용된다. 도시된 예에서, 사용자들에게 더 많은 관심을 받는 것으로 간주되는 위치들은 n의 더 작은 값을 할당받고, n의 더 작은 값을 할당받은 위치들은 그 위치에 할당된 단어 시퀀스를 형성하는 보다 사용자 친화적인 단어들이 할당된다. 어떠한 단어들이 보다 사용자 친화적인 것으로 간주되는지의 의문은 필연적으로 어느 정도 주관적이다. 그러나 단얼들은 일반적으로 사용자가 사용하기에 더 쉽다면 더 사용자 친화적으로 간주될 수 있고, 예를 들어, 더 짧은 단어들, 더 일반적으로 사용되는 단어들, 다른 단어들과 쉽게 혼동되지 않는 단어들 및/또는 더 단순한 철자와 발음의 단어들이 일반적으로 보다 사용자 친화적으로 고려될 수 있다.
매력 평가 단계(52)에서, 특정 정수 셀 값 X 및 Y의 쌍에 의해 식별된 각 셀은 대응되는 n의 값의 범위를 할당받고, 범위에서 n의 각 값은 특정 정수 포지션 값 x 및 y의 쌍에 대응된다. 따라서, 네 개의 셀 값 X, Y, x, y의 각 세트는 단일 정수 값 n 및 그 역으로 대응된다.
이러한 관련성은 셀 값 X 및 Y와 n의 숫자 범위 사이의 설명적인 관계를 나타내는 도 1에 의해 도시된다. 표 1에서 값들은 포함된 원리를 설명하기 위해 도시된 것으로, 실제 사용될 값과 필연적으로 일치하지 않는다.
X Y n 값 범위
100 60 100,000,001 - 105,000,000
110 40 9,000,000,001 - 9,010,000,000
170 20 2,000,000,001 - 2,004,000,000
도 1은 표에서(100, 60), (111, 40) 및 (170, 20)의 셀 번호 쌍 X 및 Y에 의해 식별된 셀의 세 개의 예를 나타낸다. 각 셀은 n의 값의 고유 범위를 할당받는다.
표 1에서 볼 수 있듯이, 다른 셀들은 값들의 다른 숫자를 포함하는 n의 값의 범위를 할당받는다. 이것은 앞서 설명하였듯이 셀에 할당된 포지션 값 x, y의 범위에 대응된다. 표 1에 도시된 예에서, 셀 (100, 60)은 주요 도시이어서, 높은 매력을 갖는 것으로 간주되고, 따라서 n 값의 가장 낮은 범위를 갖고, 셀 (170, 20)은 도심이어서 중간 매력을 갖는 것으로 간주되고 따라서 n 값의 중간 범위를 갖고, 셀 (110, 40)은 교외이어서, 낮은 매력을 갖는 것으로 간주되고 따라서 n 값의 가장 높은 범위를 갖는다. 또한, 표 1에 도시된 예에서, 셀 (110, 40)은 가장 넓은 면적을 갖고 따라서 n값의 가장 큰 크기의 범위를 갖고, 셀 (100, 60)은 중간 영역이어서 n값의 중간 크기의 범위를 갖고, 셀 (170, 20)은 가장 작은 영역을 가져서 n값의 가장 작은 범위를 갖는다.
셀에 대해 매력을 할당하기 위해 사용되는 시스템은 어떠한 특정 시스템에서 요구된 만큼 복잡할 수 있다. 매력을 할당하는데 사용되는 절차의 복잡성은 시스템의 동작에 아무런 영향이 없다. 일 예에서, 매력도는 셀들이 위치한 국가에 기반하고 그들이 교외, 또는 도심 또는 주요 도시인지 여부에 따라 할당된다. 도심 셀들은 교외 셀들에 비해 더 높은 매력을 할당받고, 주요 도시에서의 셀들은 도심 셀들에 비해 더 높은 매력을 할당받는다. 다른 국가에서의 셀들은 예를 들어, 운영자의 본국(home country)으로부터 및/또는 시스템의 언어를 사용하는 사용자들이 국가를 얼마나 여행할 가능성이 있는 지에 기반하여 매력 값을 할당받을 수 있다. 일부 예에서, 예를 들어 런던이나 파리와 같은 매우 주요한 도시 또는 매우 일반적인 여행 목적지로서 식별된 도시의 셀들은 특별 케이스로 취급되고, 매우 높은 매력을 갖는 것으로 간주될 수 있다.
네 개의 정수 X, Y, x, y를 단일 정수 값 n으로 그리고 그 반대로 변환하기 위해, 매력 표(attractiveness table)가 사용된다. 매력 표는 각 셀에 할당된 n 값 범위의 최저값의 값을 포함하는 룩업테이블이다. 따라서, 룩업테이블은 정의된 셀의 수, 달리 말하면 유효한 정수 셀 갑 X 및 Y의 쌍의 수에 동등한 수의 항목(entries)을 가질 수 있다.
매력 표의 내용이 셀 값 X 및 Y와 n의 할당된 수치 범위의 최저값 사이의 설명적인 관계를 보여주는 표 2에 도시된다. 표 2의 값들은 포함된 원리를 설명하기 위한 예시적인 것이며, 실제 사용될 수 있는 값들과 필연적으로 일치하지는 않는다.
X Y 범위에서 최저 n 값
... ... ...
100 60 100,000,001
... ... ...
110 40 9,000,000,001
... ... ...
170 20 2,000,000,001
... ... ...
표 2는 표에서 값 (100, 60), (110, 40) 및 (170, 20)을 갖는 셀 번호 쌍 X 및 Y에 의해 식별되는 셀들의 세가지 예를 도시한다. 각 셀은 n의 값의 고유 범위, 및 따라서 n의 고유 최저값을 할당받는다.
앞에서 설명한 것처럼, 식별가능한 약 5천 7백만의 백만개 위치에 비해 훨신 작은 수인 단지 약 3천 7백만개의 셀이 있기 때문에, 각 셀에 대한 항목을 갖는 룩업 테이블의 사용은 실용적이다.
위도 및 경도 좌표를 세 개의 단어 시퀀스로 변환할 때 사용되는 첫번째, 순방향에서 셀 값 X 및 Y에 대한 범위에서 최저 n값의 값 q는 매력 표로부터 획득될 수 있고, 그리고 나서 이하의 수식이 매력 값 n을 계산하는데 사용된다.
n = q + 1546x + y (7)
많은 표준 프로그래밍 언어에서, 매력 표 룩업 테이블은 X 및 Y에 의해 인덱스된 2차 배열로서 부호화될 수 있다. SQL에서 그것은 단지 데이터베이스일 수 있다.
지구의 표면 전체를 커버하지 않는 대안적인 예에서, 순방향에서 동작할 때, 주어진 X 및 Y 쌍이 테이블/데이터베이스에 존재하지 않는다면, 이것은 문제의 영역은 시스템에 의해 커버되지 않는 어딘가이어서 세 개의 단어 구 (phrase)를 할당받지 않았음을 의미한다. 이러한 케이스에서, 적절한 에러 메시지가 표시될 수 있다.
세 개의 단어 시퀀스를 위도 및 경도 좌표로 변환할 때 사용되는 두번째, 역박향에서, 포지션은 좀 더 복잡하다. n의 값이 셀에 할당된 n의 값의 범위 내에 어딘가일 것이기 때문에, 최고 또는 최저값에 비해 표에서 n의 값을 단순히 참보하는 것이 가능하지 않다. 정의된 식별 가능 위치의 매우 많은 수에 기인하여, n의 모든 가능한 값을 위해 개별적인 항목을 갖는 룩업테이블을 사용하는 것은 실용적이지 않다.
따라서, 매력 표는 "범위에서 최저 n 값"의 값에 의해 정렬되고, 정렬된 매력 표를 유발한다.
표 2의 항목을 정렬하여 생성된 정렬된 매력 표의 예가 도 3에 도시된다.
X Y 범위에서 최저 n 값
... ... ...
100 60 100,000,001
... ... ...
170 20 2,000,000,001
... ... ...
110 40 9,000,000,001
... ... ...
그리고 나서, 정렬된 매력 표는 n보다 작거나 동일한 "범위에서 최저 n값" 최대값을 찾기 위해 서치된다.
일단 "범위 내에서 최저 n 값"의 이러한 값을 갖는 항목이 발견되면, X 및 Y의 대응되는 값이 정렬된 매력 표로부터 읽혀질 수 있다. 이하의 수식이 그리고 나서 x와 y 값을 계산하기 위해 사용된다.
x = (n - q) div 1546 (8)
y = (n - q) mod 1546 (9)
여기서, q가 "범위 내에서 최저 n 값"의 값일 때, div는 정수 나누기(integer division)의 결과이고, mod는 정수 나누기 이후의 나머지이다.
원리적으로, 서치는 항목에 의해 전체 정렬된 매력 표 항목을 통해 진행되는 것에 의해 이루어질 수 있으나, 이것은 실용화되기에 시간이 너무 많이 소모되기 쉽다. 인텔리전트 서치 방법들이 사용되어야 한다. 다른 예에서 보간법 서치(interpolation search) 방법이 사용된 반면, 일부 예에서 바이너리 서치(binary search) 방법이 사용된다. 이러한 인텔리전트 서치 방법들은 당업자에게 잘 알려져 있고, 여기서 구체적으로 설명하지 않을 것이다.
정렬된 매력 표가 BETWEEN 연산자를 사용하여 두 개의 값들 사이에서 값들에 대해 서치를 지원하는 SQL 또는 유사한 언어에서 구현되는 예에서, 이하의 서치 방법을 사용하는 것이 가능하다. 어느 셀에 할당된 n 값의 범위의 최대 크기가 알려져 있고, n의 어떠한 값에 대해서도 n과 n-최대 크기의 사이에 값을 갖는 적어도 하나의 "범위에서 최소 n 값"이 있을 것이 확실하다. 따라서, 만약 서치가 n과 n- 최대 크기의 사이에서 "범위에서 최소 n 값"을 위해 이루어진다면, 검색된 최대값이 사용되고, 이것은 "범위에서 최소 n 값"의 정확한 값일 것이다. 일 예에서, 이것은 n과 n-2,390,116의 사이에서 서치가 있을 것이다.
매력 평가 단계(52)는 완벽하게 가역적이다.
비록 매력 표가 앞에서 단일 표로서 언급되었으나, 일부 예에서 다른 방향에서의 변환을 위해 사용되는 별개의 표인 앞에서 언급된 매력 표 및 정렬된 매력 표의 두 개의 다르게 정돈된 표(ordered table)를 유지하는 것이 바람직하다.
셔플링 및 언셔플링 단계(53)은 정수 n을 다른 정수 m 및 그 역으로 변환한다.
이 단계는 필수적이지 않고, 일부 예에서 생략될 수 있다. 그러나, 그것은 여러가지 장점을 제공한다.
앞에서 언급한 것처럼, 매력 평가 단계(52)에서, 동일한 셀 내에서 위치들은 n의 유사한 값들을 할당받기 쉽다. n의 값들이 단어로 변환되고 그리고 그 역으로 변환되는 방식의 결과로서, n의 유사한 값들을 갖는 위치들은 예를 들면 두 개의 동일한 단어 및 다른 세 번째 단어인 유사한 세 개의 단어 시퀀스를 받을 것이다.
이것은 사용자에 대해 세 개의 단어 시퀀스를 위치로 변환함에서 문제를 유발할 수 있고, 세 개의 단어 시퀀스가 한 단어가 잘 못된 채로 부정확하게 입력되면, 정확한 위치에 대해 상대적으로 가까운 식별된 잘못된 위치를 유발할 수 있다. 이러한 잘못된 그러나 가까운 위치는 타당할 수 있고(plausible), 따라서 사용자에게 잘못된 것으로 인식되지 않을 수 있다. 셔플링 및 언셔플링 단계(53)를 포함함으로써, n의 유사한 값들의 위치가 유사한 세 개의 단어 시퀀스를 특히 수신하지 않을 것임이 보증될 수 있고, 따라서 세 개의 단어 시퀀스가 만약 하나의 단어가 잘못되어 부정확하게 입력된다면, 정확한 위치로부터 원격인 식별된 잘못된 위치를 유발하기 쉽다. 이러한 잘못되고 원격인 위치는 타당하지 않을 수 있고, 따라서 사용자에 의해 잘못된 것으로 인식될 수 있다.
일부 예에서, 시스템은 사용자가 잘못된 위치가 원격이고 타당하지 않은 것임을 식별하는 것을 보조할 수 있다. 이러한 보조는 예를 들어 시스템의 사용자 인터페이스를 통해 제공될 수 잇다. 일부 예에서, 시스템은 어떤 국가 또는 만약 해당되면, 어떤 도시에 위치가 있는지 강조할 수 있다. 일부 예에서 시스템은 식별된 위치가 사용자의 현재 위치에 대해 다른 도시 및/또는 국가에 있을 때, 실제로 시스템의 많은 어플리케이션들에서 이것은 사용자들에게 에러가 발생했음을 명확하게 할 것이다.
일부 예에서, 사용자가 식별된 위치가 잘못되어 에러가 발생되었음을 인지하면, 시스템은 사용자로 하여금 에러를 식별하고 정확한 세 단어의 단어 시퀀스와 위치를 복구하도록 돕기 위해 어떤 단어가 부정확한지 식별하는 것을 보조할 수 있다.
또한, 위에서 언급한 것과 같이, 매력 평가 단계(52)에서, 보다 매력적인 것으로 간주된 셀에서의 위치는 n의 더 낮은 값을 할당받는다. 아래에서 설명되는 것처럼, n의 더 낮은 값을 갖는 위치는 보다 일반적인 단어들로 이루어진 세 단어의 시퀀스를 할당받는다.
이것은 셀들이 다른 매력 값을 할당받고 순서대로 랭크되어야 하기 때문에 문제가 될 수 있고, 다른 위치들이 다른 매력 값을 할당받을, 더 큰 또는 더 작은, "더 좋은" 것으로 간주되는 단어들이 할당될 것임은 필연적이다. 비록 실제에서 결과들이 예를 들어 다른 주요 도시의 중심에서의 셀들과 같은 동일한 타입의 셀들에 대해 현저하게 다르지 않을 것 같긴 하지만, 어떤 수신된 바이어스는 사용자 태도에 영향을 주고 대중의 연관성 영향을 갖는다. 셔플링 및 디셔플링 단계(53)를 포함함에 의해, 유사한 타입의 셀들이 공통된 유사한 레벨을 갖는 단어들의 조합을 할당받고, 바이어스의 어떠한 사용자 인지는 방지될 수 있다.
셔플링 및 디셔플링 단계(53)는 가역적으로 정수 n을 다른 정수 m의 세트로 그리고 그 역으로 셔플한다. 도시된 예에서, 0-19,999,999,999의 값을 갖는 정수들은 서로에 대해 셔플될 것이고, 2,000,000,000개 정수의 각 연속적인 블록은 서로에 대해 셔플될 것이다. 다른 예에서, 블록의 다른 크기가 사용될 수 있다. 일부 예에서, 다른 블록들이 크기에서 변경될 수 있다. 일부 예에서, 블록들의 크기는 시간에 따라 변할 수 있다.
위도 및 경도 좌표를 세 개의 단어 시퀀스로 변환할 때 사용되는 첫번째 순방향에서, 셔플되기 위한 정수 값 n이 범위 0 - 19,999,999,999에 위치하는지 여부가 먼저 판단된다. 만약 그렇지 않다면, n은 수식을 사용하여 m으로 변환된다.
m = (3,639,313 * n) mod 20,000,000,000 (10)
그렇지 않으면, n이 20,000,000,000에 비해 더 크거나, 동일한 경우, n은 수식을 사용하여 m으로 변환된다.
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)
세 개의 단어 시퀀스가 위도 및 경도 좌표로 변환되는 때 사용되는 두 번째 역방향에서, 셔플될 정수 값 m이 0 - 19,999,999,999의 범위에 있는지 여부가 먼저 판단된다. 만약 그렇지 않으면, m은 수식을 이용하여 n으로 변환된다.
n = (5,083,377 *m) mod 20,000,000,000 (12)
그렇지 않으면, m이 20,000,000,000에 비해 크거나 동일한 경우, m은 수식을 이용하여 n으로 변환된다.
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)
특정 수식 10 내지 13은 위에서 논의한 예시적인 클럭 크기와 관계된다. 만약 다르거나 가변되는 블록 크기가 사용된다면, 대응되는 변화들이 수식 10 내지 13에 이루어져야 할 것이다. 예를 들어, 다른 크기의 블록 또는 밴드(bands)를 제공하기 위해, 블록 또는 밴드의 시작 수는 증가하는 크기의 선택된 정수의 연속으로부터 유래할 수 있고, 정수가 연속적인 다른 크기의 밴드의 각각의 시작 값들을 정의하기 위해 조절되는 경우 정수의 연속은 바람직하게 0으로 시작한다. 이것을 달성하기 위한 한가지 방법은 연속적인 다른 크기의 밴드의 각각의 시작 값을 정의하기 위해 선택된 정수에 대해 수학적 연산을 수행하는 것일 수 있다. 수학적 연산은 선택된 정수의 세제곱된 값을 갖는 것을 포함할 수 있다. 다른 크기의 밴드를 정의하는 다른 방법들도 역시 유효할 것이다. 연속적인 정수가 예를 들어, 0, 3000, 6000, 9000와 같은 선택된 정수의 대수적인 수열을 포함하는 경우 일부 장점이 있으나, 이것이 필수적인 것은 아니다.
위도 및 경도 좌표를 세 가지 단어 시퀀스로 변환할 때 사용되는 첫 번째 순방향에서, 수식 (10) 및 (11)은 다음과 같이 (11')로 표현된 단일한 수식으로 합쳐질 수 있다(collapsed).
m = [start of n's band] + ((F_i *[position of n in its band]) mod [size of n's band]) (11').
세 개의 단어 시퀀스가 위도 및 경도 좌표로 변환될 때 사용되는 두 번째 역방향에서 수식 (12) 및 (13)은 다음과 같이 (13')로 표현된 단일한 수식으로 합쳐질 수 있다(collapsed).
n = [start of m's band] + ((R_i *[position of m in its band]) mod [size of m's band]) (13').
각각의 수식 (11') 및 (13')에 대해, i 인덱스는 밴드, m 및 n은 항상 같은 밴드 내에 있어서 말하자면 [size of m's band] = [size of n's band] = S_i이다.
이 상황에서, (정방향 및 역방향 셔플링을 위한) 유일한 요구는 다음이다.
어떠한 전체 숫자 K에 대해 F_i * R*i = K * S_i + 1
일부 예에서, 셔플링 및 언셔플링 단계(53)는 순차적으로 다수의 셔플링 또는 언셔플링 동작을 수행할 수 있다.
분리 및 결합 단계(splitting and combining step, 54)는 정수 m을 세 개의 정수 i, j, k로 그리고 그 역으로 변환한다. 이것을 수행함에 있어서 하나의 요구는 변환이 m의 작은 값들과 i, j, k의 작은 값들의 사이에서 이동하는 것을 보장해야 한다는 것이다. 이러한 요군 필수적이지 않으나, 만약 이러한 요구가 충족되면 그것은 단어 변환 단계(55)를 단순화할 것이다.
셔플링 및 언셔플링 단계(53)가 수행되지 않는 예들에서 분리 및 결합 단계(54)는 정수 n을 세 개의 정수 i, j, k로 그리고 그 역으로 변환할 것임을 주지해야 한다.
위도 및 경도 좌표를 세 개의 단어 시퀀스로 변환할 때 사용되는 첫 번째 순방향에서, 정수 m은 세 개의 정수 i, j, k로 변환된다.
먼저, 우리는 l = floor (cuberoot(m))을 정의한다. 그것은 다음의 케이스일 것을 보장한다.
l3 = m < (l + 1)3 i.e. l3 = m ≤ l3 + 3l2 + 3l (14)
m의 값에 따라, 가능한 세 가지 케이스가 있다.
l3 = m < l3 + l2 + 2l +1인 첫 번째 케이스에서:
r = m - l3으로 하고,
i = l, j = r div (l + 1), k = r mod (l + 1)을 수행한다.
l3 + l2 + 2l + 1 ≤ m < l3 + 2l2 + 3l + 1인 두 번째 케이스에서:
r = m - (l3 + l2 + 2l +1)으로 하고,
i = r div (l + 1), j = l, k = r mod (l + 1)을 수행한다.
l3 + 2l2 + 3l + 1 ≤ m < l3 + 3l2 + 3l + 1인 세 번째 케이스에서:
r = m - (l3 + 2l2 + 3l + 1)으로 하고,
i = r div l, j = r mod l, k = l을 수행한다.
세 개의 단어 시퀀스를 위도 및 경도 좌표로 변환할 때 사용되는 두 번째 역 방향에서, 정수 i, j, k는 단일 정수 m으로 변환된다.
먼저, 우리는 l = max(i, j, k)로 정의한다.
만약 i = l이면, m 의 값은 다음과 같다:
m = l3 + (l + 1)j + k. (15)
그렇지 않으면, 만약 j = l이면 m의 값은 다음과 같다:
m = l3 + l2 + 2l + 1 + (l + 1)i + k. (16)
그렇지 않으면 만약 k = l이면 m 의 값은 다음과 같다:
m = l3 + 2l2 + 3l + 1 + li + j. (17)
단어 변환 단계(55)는 각각의 정수 i, j, k를 단어로 그리고 그 역으로 변환한다.
위도 및 경도 좌표를 세 개의 단어 시퀀스로 변환하는 때 사용되는 첫 번째 정방향에서, 세 개의 정수 i, j, k 각각에 대응되는 단어를 식별하는 것이 필요하다.
이것은 단어들의 정리된 리스트를 컴파일링하고 각각의 정수 i, j 및 k의 값을 위하여 대응되는 단어를 선택함으로써 이루어질 수 있다. 앞에서 논의한 것처럼, 일 예에서 단어들의 정리된 리스트는 38,000개의 다른 단어들을 포함한다. 선택된 세 개의 단어들은 세 개의 단어 시퀀스를 형성하기 위해 이하의 순서, 첫번째 값 i에 대응되는 단어, 그 다음으로 값 j에 대응되는 단어, 그리고 값 k에 대응되는 단어로 배열된다.
일 예에서, 단어들의 리스트는 연속된 행렬로서 저장되고, 단어 선택은 행렬 룩업에 의해 이루어지며, 따라서 예를 들어 정수 i가 행렬에서 i번째 문자열로 변환된다. 도시된 예에서, i, j, k의 값이 0이 되는 것이 가능하며, 따라서 이러한 행렬은 반드시 0 인덱스이어야 한다.
이러한 예에서, 단어 시퀀스에서 단어의 두 개 또는 심지어 세 개 모두가 동일한 것이 가능하다. 일부 대안적인 예에서, 단어 시퀀스는 항상 세 개의 다른 단어들을 포함하도록 선택될 수 있다.
단어의 정리된 리스트는 리스트에서 더 낮은 포지션 또는 값이 할당된 가장 사용자 친화적인 단어로 정리되어야 한다. 일정 정도로 사용자 친화도의 문제는 주관적이고, 다른 언어에서 다른 고려가 포함될 수 있다. 그러나, 일반적으로 더 일반적으로 사용된 단어, 더 짧은 단어, 및 쉽게 철자가 되고 발음되는 단어들이 보다 사용자 친화적인 것으로 간주될 수 있다.
일부 예에서, 단어의 정리된 리스트는 다른 것의 동음이의어인 단어들을 포함하지 않는다. 이것은 가능한 혼동을 피할 수 있는 장점을 제공한다.
단어 순서 i 다음 j 다음 k의 사용은 필수적이지 않으며, 동일한 순서가 일관적으로 사용되는 것을 제공하는 다른 순서가 사용될 수 있다.
세 개의 단어 시퀀스를 위도 및 경도 좌표로 변환할 때 사용되는 두 번째, 역방향에서, 세 개의 단어를 세 개의 대응되는 정수 i, j 및 k로 변환하는 것이 필요하다. 이것은 가끔씩 사전 또는 지도로 언급되는 연관 배열을 사용하여 이루어진다.
연관 배열에서, 순서에서 세 개의 단어가 W0, W1, W2라면, 연관 배열 a는 각 정수에 대해 a[Wq] = q로 설정함으로써 초기화된다. 각 단어는 연관 배열에서 정수 값에 대응하는 단어를 검색함으로써 정수로 변환될 수 있다.
만약 사용자가 유효하지 않은 단어 즉, 연관 배열에서 발견될 수 없는 단어를 입력하면, 적절한 에러 메시지가 미인식 단어를 식별하도록 사용자 스마트폰(2) 상에 디스플레이되기 위해 반환된다.
또한, 실제로, 통상 유효한 정수 세 개(triples) i, j, k 및 식별 가능한 위치 대신 더 많은 가능한 단어 조합이 있는 케이스가 될 것이다. 이러한 케이스에서, 사용자가 식별 가능한 위치에 대응하여 유효하지 않은 세 개의 단어 시퀀스인 세 개의 개별적으로 유효한 단어들을 입력할 수 있는 것이 가능하다. 만약 이것이 발생하면, 세 개의 단어 시퀀스를 위도 및 경도 좌표로 변환하는 때 사용되는 두 번째, 역방향에서 동작할 때, 도출된 정수 m(또는 셔플링 및 언셔플링 단계(53)을 포함하지 않는 예에서 n)은 유효하지 않은 값을 가질 것이고, 적절한 에러 메시지가 세 개의 단어 시퀀스가 부정확함을 언급하도록 사용자 스마트폰(2) 상에 디스플레이 하기 위해 반환될 것이다.
일부 예에서, 단어들의 정리된 리스트는 다른 것에 대한 동음 이의어인 것은 포함하지 않는다. 이것은 가능한 혼동을 피하는 장점을 제공할 수 있다.
일부 예에서, 두번째, 역방향에서 동작될 때, 시스템은 단어들의 정리된 리스트에서 단어들의 동음이의어인 입력 단어를 식별하고 그들이 정리된 리스트에서 동음이의어 단어라면 이러한 입력 단어들을 처리할 수 있을 것이다. 일부 예에서, 이것은 자동적으로 이루어질 수 있고, 다른 예에서 사용자는 대체가 이루어져야 함을 유도받고 요구받을 수 있다.
일부 예에서, 단어들의 정리된 리스트는 다른 것의 동음이의어인 다수의 단어들을 단일 입력으로서 포함할 수 있다. 이러한 예에서, 두 번째, 역방향에서, 시스템은 이러한 단어들의 어느 것의 입력을 다른 것의 등가물로서 간주할 수 있어서, 그들 모두는 i, j 및 k를 위한 동일한 정수값을 생성할 수 있다. 이러한 예에서, 시스템은 단지 첫 번째, 정방향에서 동작될 때 복수의 동음이의어들 중 하나를 출력하도록 배열될 수 있다.
일부 예에서, 시스템은 단어들의 정리된 리스트에서 단어들의 대안적인 철자들인 입력 단어들을 식별하고, 만약 그들이 정리된 리스트에서 대응하는 대안적인 철자의 단어라면 이러한 입력 단어들을 처리하는 것이 가능할 수 있다.
선택적으로, 시스템(1)은 추가적인 맞춤 단어 기능을 제공할 수 있다. 이러한 맞춤 단어 기능은 단지 세 개의 단어 시퀀스를 위도 및 경도 좌표로 변환할 때 사용되는 두 번째, 역방향에서 적용된다. 맞춤 단어는 사용자에 의해 선택되고 사용자에 의해 선택된 특정 위치에 할당된 하나의 단어, 또는 글자와 숫자의 혼합 시퀀스이다. 사용자는 맞춤 단어를 선택하는데 요금이 부과될 수 있다.
이러한 옵션이 사용된 때, 서버(3)는 모든 맞춤 단어들과 대응되는 위치 위도 및 경도 좌표를 저장하는 데이터베이스를 유지한다. 서버(1)가 사용자 스마트폰(2)로부터 맞춤 단어를 수신한 때, 서버는 앞에서 언급된 단계들의 시퀀스를 따르는 것 보다는 데이터베이스에서 맞춤 단어를 검색하고 대응되는 위도 및 경도 좌표를 반환한다. 실제로, 맞춤 단어들의 수는 식별 가능한 위치의 전체 수보다는 대단히 작을 것이고, 따라서 이러한 단순한 검색 접근은 맞춤 단어들을 다루는데 허용될 정도로 빠를 것이다.
각 위치가 단일 세 개의 단어 시퀀스에 대응되는 상황에서 세 개의 단어 시퀀스에 비해, 동일한 위치에 대해 대응되는 많은 수의 다른 맞춤 단어들이 있을 수 있음을 주지해야 한다.
맞춤 단어들은 그들을 선택하는 사용자에 대해 개인적이지 않으며, 다만 선택된 위치를 찾기 위해 어떠한 사용자에 의해 사용될 수 있음을 이해하여야 한다. 즉, 맞춤 단어들은 그들을 일깨운 어떠한 사용자에 의해 사용될 수 있다.
예를 들어, 호텔은 맞춤 단어 "hawthornhotel"을 선택하고 이것을 그들의 고유 위치로 할당할 수 있어서 고객 또는 배달 직원은 호텔을 찾는데 그것을 사용할 수 있다. 호텔은 대체적으로 3m 곱하기 3m 보다 클 것이므로, 이러한 맞춤 단어는 호텔 현관 외부의 도로 또는 인도에 할당될 것이다. 또한, 큰 호텔은 업무용 출입구를 위한 "hawthornhotelserviceentrance" 과 같은 다른 지역들에 대한 다수의 맞춤 단어들을 가질 수 있다.
맞춤 단어들이 하나의 단어 또는 문자열(textstring)인 것이 필수적이지는 않다. 그러나, 이것은 맞춤 단어 및 세 개의 단어 시퀀스가 혼동되지 않도록 보증하는데 바람직할 수 있다. 하나의 단어의 사용은 서버가 보다 복잡한 분석을 위한 어떠한 필요도 없이 단지 그들의 구문을 통해 맞춤 단어들을 표준의 세 개의 단어 시퀀스로부터 쉽게 구분할 수 있도록 한다.
선택적으로, 다른 예에서, 맞춤 단어들은 위도 및 경도 좌표를 단어로 변환할 때 사용되는 첫 번째, 정방향에서 역시 사용가능할 수 있다. 다시, 실제로, 맞춤 단어들의 수는 식별 가능한 위치의 전체 수보다는 대단히 작을 것이고, 단순한 검색 접근이 좌표의 입력 세트가 대응되는 맞춤 단어를 갖는지 체크하고, 맞춤 단어를 제공하는데 사용될 수 있다.
일부 예에서, 시스템(1)은 다수의 다른 언어들에서 동작하도록 준비될 수 있다. 다수의 언어를 지원하도록 하기 위해, 단어의 개별적인 정리된 리스트가 각 언어에 대해 제공된다.
다수 언어 시스템에서, 각 언어에서 단어들의 리스트는 다른 언어에 대한 리스트에서 동일한 단어가 없도록 결합된다. 예를 들어, 단어 "gift"는 영어와 독일어 모두에서 유효한 단어이나, 이 단어는 영어 및 독일어로 정리된 단어 리스트 중 단지 하나에만 포함될 것이다. 이것은 세 개의 단어 시퀀스를 위도 및 경도 좌표로 변환하는 두 번째, 역방향에서 동작될 때, 단어들이 단지 하나의 언어의 단어 리스트에서만 나타나기 때문에 서버가 언어를 듣기 위한 필요없이 단어들 자체로부터 입력 단어 시퀀스의 언어를 식별할 수 있는 장점을 제공할 수 있다.
다수 언어 시스템에서, 위도 및 경도 좌표를 세 개의 단어 시퀀스로 변환할 때 사용되는 첫 번째, 정방향에서, 사용자가 시스템에 대해 어떤 언어의 세 개의 단어 시퀀스가 사용되어야 하는지 알려주는 것이 바람직하다. 일부 예에서, 이러한 통지는 초기설정, 예를 들어 시스템은 사용자가 시스템 서버에 접근하기 위해 웹사이트에서 사용하기로 선택한 동일한 언어에서 세 개의 단어 시퀀스를 제공받기를 원하는 것으로 추정할 수 있다. 일부 예에서, 이러한 통지의 부재시, 시스템은 세 개의 단어 시퀀스를 초기 설정 언어로 제공할 수 있다.
다수 언어 시스템에서, 다른 셀에 대해 할당된 매력 평가는 다른 언어에서 변할 수 있다. 예를 들어, 영어에서 런던은 파리에 비해 더 높은 매력 평가를 가질 수 있으나, 프랑스어에서는 파리가 런던에 비해 더 높은 매력 평가를 가질 수 있다. 이것은 매력 평가 단계(52)가 다른 언어에서 동일 셀에 할당된 n의 다른 값으로 각각 다른 언어에 대해 개별적으로 수행되도록 하는 것을 요구할 것이다.
도시된 예에서, 더 매력적인 것으로 평가된 셀들은 n의 더 낮은 값을 할당받는다. 다른 예에서, 알고리즘의 다른 단계에 대해 적절한 변화가 이루어진다면 더 매력적인 것으로 평가된 셀들은 더 높은 n의 값을 할당받을 수 있다.
도시된 예에서, 세 개의 단어들은 특정 시퀀스에 있어야 한다. 다른 예에서, 단어 시퀀스는 고려되지 않을 수 있다. 그러나, 단어 시퀀스가 고려되지 않는다면, 시스템의 효율성이 감소할 것이고, 즉, 더 많은 고유 단어들이 위치의 주어진 숫자를 식별하기 위해 요구될 것이다.
도시된 예에서, 시스템은 세계의 전체 표면을 커버한다. 다른 예에서, 커버된 지리학적 영역은 더 작을 수 있다. 일부 예에서, 시스템은 단지 육지 영역만 커버할 수 있다. 다른 예에서, 하나 또는 양 극(poles) 근처에서 거의 사람이 살지 않는 황야는 제외될 수 있다. 다른 예에서, 시스템은 단지 특정 대략, 국가 또는 지역만을 커버할 수 있다. 일 예에서, 시스템은 단지 유럽만을 커버할 수 있고, 일 예에서 시스템은 단지 영국만을 커버할 수 있다.
도시된 예에서, 세 개의 단어 시퀀스가 사용된다. 다른 예에서, 다른 수의 단어를 포함하는 시퀀스가 사용될 수 있다. 세 개의 단어의 사용은 장점을 제공할 수 있다. 만약 단지 두 개의 단어들만 사용된다면, 요구되는 고유 단어의 수는 너무 커서 하나의 언어에 의해 쉽게 제공되기 어렵고, 사용자들에게 알려져 있지 않은 단어들을 사용하는 것이 필요할 수 있다.
도시된 예에서, 시스템은 사용자 스마트폰을 포함한다. 다른 예에서, 스마트폰은 대안적인 이동 통신 디바이스 또는 다른 사용자 디바이스에 의해 대체될 수 있다. 이러한 대안적인 사용자 디바이스들은 서버(3)와 통신을 수행할 수 있는 충분한 통신 기능을 필요로 할 것이다. 그러나, 반드시 그들의 우선적 기능이 사용자에게 대한 모바일 통신을 제공하는 것인 케이스일 필요는 없다.
도시된 예에서, 시스템은 각 위치가 특정의 대략 3m 곱하기 3m의 박스 또는 영역에 있는 것으로 식별되는 대략 3m 입상으로 위치를 식별한다. 다른 예에서, 위치는 다른 크기를 갖는 박스 또는 영역으로서 다른 입상으로 식별될 수 있다.
도시된 예에서, 위치는 소수점 여섯 자리의 위도 및 경도 좌표의 형태인 GPS 좌표이다. 다른 예에서, 다른 좌표 시스템들이 사용될 수 있다. 또한, 일부 예에서, 다른 레벨의 정확도를 갖는 좌표들이 사용될 수 있다. 본 발명이 위치를 식별할 수 있는 정확도, 즉 설명된 예에서 식별된 박스 또는 영역의 크기는 위치 좌표의 정확성에 궁극적으로 종속될 것이다.
도시된 예에서, 위치 결정 수단은 GPS와 같은 위성 기반 네비게이션 시스템이다. 다른 예에서, 다른 네비게이션 시스템이 사용될 수 있다.
도시된 예에서, 신호 중앙 서버가 사용된다. 다른 예에서, 서버의 네트워크와 같은 분산 프로세싱 시스템이 단일 중앙 서버의 대신 사용될 수 있다.
도시된 예에서, 인터넷이 시스템의 다른 부분들이 사이에서 통신을 위해 사용된다. 다른 예에서, 다른 데이터 통신 네트워크가 사용될 수 있다. 일부 예에서, 사용자 디바이스는 서버와 통신하기 위한 다수의 다른 통신 수단을 사용할 수 있다.
도시된 예에서, 위치 식별 시스템은 다수의 스마트폰 또는 다른 컴퓨팅 디바이스들에 접근되는 중앙 서버를 포함한다. 다른 예에서, 전체 시스템은 사용자 퍼스널 컴퓨터(PC) 또는 스마트폰과 같은 단일 컴퓨팅 디바이스 상에 제공될 수 있다. 일반적으로, 시스템에 의해 요구되는 데이터 저장 및 처리의 양이 일부 사용자 컴퓨팅 디바이스 상에 제공되기 어렵거나 비용이 많이 들기 때문에 도시된 서버 기반 구조가 사용자들에게 선호될 수 있다. 그런 이유로, 예를 들어, 스마트폰, 태블릿 컴퓨터 등과 같은 단일 소형 컴퓨팅 디바이스 상에서 전체 시스템을 제공하는 장점은 오프라인 사용이 될 수 있다. 오프라인에 의한 것은 시스템이 본 발명에 따른 위치 식별자를 생성하거나 소형 컴퓨팅 디바이스가 네트워크에 연결되어 있거나 또는 연결될 수 있는지와 무관하게 인터넷과 같은 네트워크 상에 서버로서 다른 컴퓨팅 디바이스와 연결되지 않고 위치 식별자로부터 위치를 식별할 수 있는 시스템을 의미한다. 앞에 서와 같이, 위치의 지리학적 좌표를 획득하기 위한 수단은 소형 컴퓨팅 디바이스의 일부를 포함할 수 있고 또는 유선 또는 무선 연결에 의해 그에 연결된 액세서리 디바이스일 수 있다.
위에서 설명된 시스템 및 장치는 적어도 일부 소프트웨어로 구현될 수 있다. 본 발명의 기술 분야에서 통상의 지식을 가진 사람은 위에서 설명된 장치가 범용 컴퓨터 장비를 사용하여 또는 맞춤 장비를 사용하여 구현될 수 있음을 이해할 것이다.
시스템의 다른 구성들은 컴퓨터 상에서 수행되는 소프트웨어에 의해 제공될 수 있다.
이러한 컴퓨터의 하드웨어 구성, 동작 시스템 및 프로그래밍 언어는 사실상 전형적이고, 기술 분야에서 통상의 지식을 가진 사람은 그것에 충분하게 친숙한 것이 당연하다. 물론, 서버 기능은 프로세싱 부하를 분산시키기 위해 다수의 유사한 플랫폼 상에서 분산된 방식으로 구현될 수 있다.
여기서, 앞서 설명된 방법 및 장치들의 양상은 서버와 같은 컴퓨팅 디바이스 상에서 실현될 수 있다. 기술의 프로그램 양상들은 기계로 읽을 수 있는 매체의 타입으로 수행되거나 포함되는 실행가능한 코드 및/또는 관련 데이터의 형태에서 전형적으로 "생산품(products)" 또는 "제조물품(articles of manufacture)"으로 이해될 수 있다. "저장" 타입 매체는 소프트웨어 프로그래밍을 위해 언제라도 저장을 제공할 수 있는 다양한 반도체 메모리, 테이프 드라이브, 디스크 드라이브와 같은 컴퓨터, 프로세서 등 또는 그에 관련된 모듈의 어떤 또는 모든 메모리를 포함한다. 소프트웨어의 전체 또는 부분은 인터넷 또는 다양한 다른 원거리 통신 네트워크를 통해 때로는 통신될 수 있다. 이러한 통신은 예를 들어, 하나의 컴퓨터 또는 프로세서로부터 다른 컴퓨터 또는 프로세서로 소프트웨어의 로딩을 가능하게 할 수 있다. 따라서, 미디어의 다른 타입이 유선 및 광학적 지상 통신 및 다양한 에어 링크를 통해 로컬 디바이스들 간의 물리적 인터페이스를 넘어 사용되는 광학적, 전기적 및 전자기적 파장을 포함하는 소프트웨어 구성들을 포함할 수 있다. 여기서 사용되는 것처럼, 실재하는 일시적이지 않은 "저장" 매체로 제한하지 않는다면, 컴퓨터 또는 기계가 "읽을 수 있는 매체"로서의 용어는 실행을 위해 프로세서에 대해 지시를 제공하는데 참가하는 어떠한 매체도 언급할 수 있다.
여기서, 기계가 읽은 수 있는 매개는 실재하는 저장 캐리어(storage carrier), 캐리어 웨이브 매개(carrier wave medium) 또는 물리적 처리 매개(physical transaction medium)를 포함하나 이에 제한되지 않는 많은 형태롤 가질 수 있다. 비휘발성 저장 매개는 도면에서 도시된 인코더, 디코더 등에 의해 구현될 수 있는 컴퓨터 등에서 저장 디바이스의 어느 것과 같은 예를 들어 광학 또는 자기 디스크를 포함한다. 휘발성 저장 매개는 컴퓨터 플랫폼의 메인 메모리와 같은 다이나믹 메모리를 포함한다. 실재하는 전송 매개는 컴퓨터 시스템 내에서 버스를 포함하는 와이어를 포함하는 동축케이블, 구리선 및 광섬유를 포함한다. 캐리어 웨이브 전송 매개는 라디오 주파수(RF) 및 적외선(IR) 데이터 통신 동안 생성된 것과 같은 전기 또는 전자기 신호, 또는 음향 또는 광 파장의 형태를 가질 수 있다. 따라서, 컴퓨터가 읽을 수 있는 매개의 일반적인 형태는 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프 또는 다른 자기 매개, CD-롬, DVD, DVD-롬, 어떤 다른 광학 매개, 천공 카드, 종이 테이프, 어떤 다른 홀의 패턴이 있는 물리적인 저장 매개, 램, PROM, EPROM, 플래-EPROM, 어떤 다른 메모리 칩 또는 카트리지, 캐리어 웨이브 전송 데이터 또는 지시, 캐리어 웨이브와 같은 전송을 하는 케이블 또는 링크, 또는 컴퓨터가 프로그래밍 코드 및/또는 데이터를 읽을 수 있는 어떤 다른 형태를 포함한다. 컴퓨터가 읽을 수 있는 매개의 이러한 형태의 다수는 실행을 위해 프로세서에 대해 하나 이상의 지시의 하나 이상의 시퀀스를 나르는 것에 포함될 수 있다.
기술 분야에서 통상의 지식을 가진 사람은 본 발명을 수행하는 베스트 모드 및 적절한 다른 모드로 고려되는 앞서 말한 설명을 하는 반면, 본 발명은 바람직한 실시예의 이러한 설명에 개시된 특정 장치 구성 또는 방법 단계에 제한되어서는 안된다는 것을 이해할 것이다. 여기서 이루어질 수 있는 다양한 변형 및 여기에 개시된 주제가 다양한 형태 및 예들에서 구현될 수 있고, 개시된 것은 많은 어플리케이션에서 적용될 수 있고, 이 중 단지 일부만 여기서 설명되었음이 이해된다. 본 개시사항의 범위 내에 포함되는 어떠한 그리고 모든 어플리케이션, 수정 및 변형을 청구하는 이하의 청구항들에 의해 의도된다. 기술 분야에서 통상의 지식을 가진 사람은 본 발명이 넓은 범위의 어플리케이션들을 갖고, 실시예들은 첨부된 청구항에서 정의된 발명의 사상으로부터 이격됨이 없는 넓은 범위의 변형을 가질 수 있음을 인지할 것이다.
본 발명이 특정 실시예의 용어로서 설명되었으나, 다양한 수정, 변형 및/또는 여기서 개시된 구성들의 조합은 후술하는 청구항에서 설정된 것과 같이 본 발명의 사상 및 범위를 벗어남이 없이 기술 분야에서 통상의 지식을 가진 사람에게 명백할 것이다.

Claims (28)

  1. 위치 식별자를 생성하는 컴퓨터 구현 방법에 있어서,
    프로세서에서 위치 결정 수단으로부터 숫자열들을 포함한 위치의 지리학적 좌표를 수신하고;
    상기 프로세서에서
    숫자열들을 포함하는 상기 지리학적 좌표를 단일 고유 정수 n으로 변환하고;
    상기 단일 고유 정수 n을 다수의 정수의 고유 그룹으로 변환하고; 및
    상기 다수의 정수들을 다수의 개별적인 단어들로 변환하되 상기 개별적인 단어들의 수는 다수의 정수들의 상기 고유 그룹을 포함하는 정수들의 수와 동일하고,
    위치 식별자로서 위치 식별 모듈에 대해 사용가능한 개별적인 단어들의 수를 만드는 단계를 수행하는 방법.
  2. 제 1 항에 있어서,
    상기 방법은 지리학적 영역 전체의 셀의 배열을 정의하고,
    상기 프로세서에서 숫자열들을 포함하는 상기 지리학적 좌표를 단일 고유 정수 n으로 변환하는 단계는
    숫자열들을 포함하는 상기 지리학적 좌표를 상기 위치를 포함하는 상기 셀을 식별하는 셀 식별 값과, 상기 셀 내에서 상기 위치의 포지션을 식별하는 셀 포지션 값으로 변환하고; 및
    상기 셀 식별 값 및 셀 포지션 값을 단일 고유 정수 n으로 변환하는 단계를 수행하는 방법.
  3. 제 2 항에 있어서,
    숫자열들을 포함하는 상기 지리학적 좌표는 위도 및 경도 좌표를 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 다수의 단어는 정의된 시퀀스에 있는 방법.
  5. 제 2 항에 있어서,
    상기 셀 식별 값은 정수 X,Y의 제 1 쌍이고, 상기 셀 포지션 값은 정수 x, y의 제 2 쌍인 방법.
  6. 삭제
  7. 제 3 항에 있어서,
    상기 위도 및 경도 좌표는 다음의 수식을 사용하여 상기 셀 식별 값 및 셀 포지션 값으로 변환되는 방법.
    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))
    여기서, W(Y) = max(1, floor(1546 * cos((Y + 0.5)/24 - 90))).
  8. 제 5 항에 있어서,
    상기 셀 식별 값 X, Y 및 셀 포지션 값 x, y는 셀 식별 값 X, Y에 의해 식별되는 각 셀에 할당되는 것에 의해 단일 고유 정수 n으로 변환되고, n의 값의 고유 범위는 최저값 q를 갖고, 다음의 수식을 사용하여 n을 획득하는 방법.
    n = q + 1546*x + y.
  9. 제 1 항에 있어서,
    상기 단일 고유 정수 n은 세 개의 정수들 i, j, k의 고유 그룹으로 변환되고,
    상기 세 개의 정수들 i, j, k는 세 개의 개별적인 단어들로 변환되고; 및
    상기 세 개의 단어들은 위치 식별자로서 제공되는 방법.
  10. 제 9 항에 있어서,
    상기 단일 고유 정수 n을 상기 세 개의 정수들 i, j, k의 고유 그룹으로 변환하는 것은
    상기 단일 고유 정수 n을 n의 가능한 개수 값들을 값들의 블록으로 나눔으로서 단일 고유 정수 값 m으로 변환하고; 및
    m을 획득하기 위해 값들의 블록에서 n의 값들을 셔플링하는 것을 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 단일 고유 정수 n을 세 개의 정수들 i, j, k의 고유 그룹으로 변환하는 것은 아래에 의해 상기 값 m을 세 개의 정수들 i, j, k의 고유 그룹으로 변환하는 단계를 더 포함하는 방법.
    l = floor (cuberoot(m))를 정의하고; 그리고
    l3 ≤ m < l3 + l2 + 2l +1인 경우에,
    i = l, j = r div (l + 1), and k = r mod (l + 1), 여기서, r = m - l3; 또는
    l3 + l2 + 2l + 1 ≤ m < l3 + 2l2 + 3l + 1인 경우에,
    i = r div (l + 1), j = l, and k = r mod (l + 1), 여기서, r = m - (l3 + l2 + 2l +1); 또는
    l3 + 2l2 + 3l + 1 ≤ m < l3 + 3l2 + 3l + 1인 경우에,
    i = r div l, j = r mod l, k = l, 여기서, r = m - (l3 + 2l2 + 3l + 1).
  12. 제 11 항에 있어서,
    세 개의 정수들 i, j, k의 고유 그룹은 각 정수를 단어들의 정리된 리스트와 비교하고, 각 정수들을 상기 정리된 리스트에서 정수의 포지션에서 상기 단어로 변환함에 의해 세 개의 각 단어들로 변환되는 방법.
  13. 제 1 항의 방법을 수행함에 의해 위치 식별자를 생성하도록 적용된 장치.
  14. 삭제
  15. 위치를 식별하는 컴퓨터 구현 방법에 있어서,
    프로세서에서 위치에 대해 다수의 단어들을 포함하는 위치 식별자를 위치 식별 모듈로부터 수신하고;
    상기 프로세서에서
    상기 다수의 단어들을 개별적인 정수들의 고유 그룹으로 변환하되 정수들의 수는 상기 다수의 단어들을 포함하는 단어들의 수와 동일하고;
    상기 정수들의 고유 그룹을 단일 고유 정수 n으로 변환하고;
    상기 단일 고유 정수 n을 숫자열을 포함하는 지리학적 좌표로 변환하고; 및
    위치 결정 수단에 대해 숫자열을 포함하는 상기 지리학적 좌표를 출력하는 단계를 수행하는 방법.
  16. 제 15 항에 있어서,
    상기 방법은 지리학적 영역의 전체에 대해 셀의 배열을 정의하고,
    상기 프로세서에서 단일 고유 정수 n을 숫자열을 포함하는 상기 지리학적 좌표로 변환하는 단계는
    상기 단일 고유 정수 n을 상기 위치를 포함하는 상기 셀을 식별하는 셀 식별 값과 상기 셀 내에서 상기 위치의 포지션을 식별하는 셀 포지션 값으로 변환하고; 및
    상기 셀 식별 값 및 셀 포지션 값을 숫자열을 포함하는 지리학적 좌표로 변환하는 단계를 수행하는 방법.
  17. 제 16 항에 있어서,
    숫자열을 포함하는 상기 지리학적 좌표는 위도 및 경도 좌표인 방법.
  18. 제 15항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 다수의 단어들은 정의된 스퀀스에 있는 방법.
  19. 제 16항 또는 제 17 항에 있어서,
    상기 셀 식별 값은 정수 X, Y의 쌍이고, 상기 셀 포지션 값은 정수 x, y의 쌍인 방법.
  20. 삭제
  21. 제 19 항에 있어서,
    상기 상기 셀 식별 값 및 셀 포지션 값은 다음의 수식을 사용하여 숫자열을 포함하는 지리학적 좌표로 변환되는 방법.
    Latitude = (Y + ((y + 0.5)/1546))/24 * 90
    Longitude = (X +((x+0.5)/(W(Y)))/24-180
    여기서, W(Y) = max(1, floor(1546 * cos((Y + 0.5)/24 - 90))).
  22. 제 19 항에 있어서,
    상기 단일 고유 정수 n은 n의 값의 고유 범위로 셀 식별 값 X, Y에 의해 식별된 각 셀을 연관하고, 각 고유 범위는 각 고유 범위는 최저값 q를 갖고, 상기 정수 n이 있는 n의 값의 할당된 범위를 식별하고, 그리고 나서 상기 식별된 할당된 범위에서 연관된 상기 셀 식별 값 X, Y를 취하고, 다음의 수식을 사용하여 x 및 y를 결정함으로써 상기 셀 식별 값 X, Y 및 셀 포지션 값 x, y로 변환되는 방법.
    x = (n - q) div 1546
    y = (n - q) mod 1546.
  23. 제 15 항에 있어서,
    상기 다수의 단어들은 세 개의 단어들을 포함하고,
    상기 세 개의 단어들은 세 개의 개별적인 정수들 i, j 및 k의 고유 그룹으로 변환되고; 및
    상기 세 개의 정수들 i, j, k의 고유 그룹은 단일 고유 정수 n으로 변환되는 방법.
  24. 제 23 항에 있어서,
    상기 세 개의 정수들 i, j, k의 고유 세트를 상기 단일 고유 정수 n으로 변환하는 것은
    m의 가능한 값을 동일한 크기의 값의 블록으로 나눔으로써 단일 고유 정수 값 m을 단일 고유 정수 n으로 변환하고; 및
    n을 획득하기 위해 값들의 블록에서 m의 값들을 셔플링하는 것으로 포함하는 방법.
  25. 제 24 항에 있어서,
    상기 세 개의 정수들 i, j, k의 고유 그룹을 상기 단일 고유 정수 n으로 변환하는 것은 상기 값 m을 세 개의 정수들 i, j, k의 고유 그룹으로 다음에 의해 변환하는 것을 더 포함하는 방법.
    l = max(i; j; k)를 정의하고; 그리고
    i = l인 경우,
    m = l3 + (l + 1)j + k; 또는
    j = l인 경우,
    m = l3 + l2 + 2l + 1 + (l + 1)i + k; 또는
    k = l인 경우
    m = l3 + 2l2 + 3l + 1 + li + j.
  26. 제 25 항에 있어서,
    연관 배열에서 상기 단어들 및 정수 값들을 저장하고, 각 정수에 대응되는 단어를 검색함으로써, 상기 세 개의 단어들은 세 개의 정수들 i, j, k의 고유 그룹으로 변환되는 방법.
  27. 제 15 항의 방법을 수행함으로써 위치를 식별하도록 적용된 장치.
  28. 삭제
KR1020157032877A 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치 KR102173272B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207030719A KR102282561B1 (ko) 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030719A Division KR102282561B1 (ko) 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치

Publications (3)

Publication Number Publication Date
KR20150144334A KR20150144334A (ko) 2015-12-24
KR102173272B9 KR102173272B9 (ko) 2020-11-03
KR102173272B1 true KR102173272B1 (ko) 2020-11-03

Family

ID=48537530

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020157032877A KR102173272B1 (ko) 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치
KR1020207030719A KR102282561B1 (ko) 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치
KR1020217022852A KR20210094137A (ko) 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020207030719A KR102282561B1 (ko) 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치
KR1020217022852A KR20210094137A (ko) 2013-04-19 2014-04-14 위치 식별 및 통신을 위한 방법 및 장치

Country Status (15)

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

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株式会社 符号化装置、及び復号化装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004254024A (ja) 2003-02-19 2004-09-09 Ntt Docomo Inc 情報提供サーバ
JP4384118B2 (ja) 2003-06-27 2009-12-16 徹 西岡 座標相互変換モジュール
JP2011043626A (ja) 2009-08-20 2011-03-03 Ntt Docomo Inc 逆ジオコーディング装置、及び逆ジオコーディング方法
JP2012203408A (ja) 2011-03-28 2012-10-22 Hisashi Endo 緯度経度の座標変換方法、およびその位置情報コード

Family Cites Families (21)

* 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 地図情報提供システムにおける道路情報の更新方法ならびにその更新サーバ、およびサーバプログラム、同プログラムを記録した記録媒体
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
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 成都东哈科技有限公司 三维数字城市消防预控管理系统
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004254024A (ja) 2003-02-19 2004-09-09 Ntt Docomo Inc 情報提供サーバ
JP4384118B2 (ja) 2003-06-27 2009-12-16 徹 西岡 座標相互変換モジュール
JP2011043626A (ja) 2009-08-20 2011-03-03 Ntt Docomo Inc 逆ジオコーディング装置、及び逆ジオコーディング方法
JP2012203408A (ja) 2011-03-28 2012-10-22 Hisashi Endo 緯度経度の座標変換方法、およびその位置情報コード

Also Published As

Publication number Publication date
WO2014170646A1 (en) 2014-10-23
CN110110020A (zh) 2019-08-09
JP2016520903A (ja) 2016-07-14
BR112015026511B1 (pt) 2023-04-04
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 (ko) 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
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
KR102173272B1 (ko) 위치 식별 및 통신을 위한 방법 및 장치
US11762933B2 (en) Providing search results based on a compositional query
US10380160B2 (en) Dynamic language model
US11698261B2 (en) Method, apparatus, computer device and storage medium for determining POI alias
US10984025B2 (en) Device and method for displaying and searching for location by using grid and words
KR102000683B1 (ko) 격자와 단어조합을 이용한 위치표시장치
OA17572A (en) A method and apparatus for identifying and communicating locations.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
J202 Request for trial for correction [limitation]
J301 Trial decision

Free format text: TRIAL NUMBER: 2020105000114; TRIAL DECISION FOR CORRECTION REQUESTED 20201208

Effective date: 20210525