KR101773730B1 - 컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용한 위치 정보 결정 - Google Patents

컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용한 위치 정보 결정 Download PDF

Info

Publication number
KR101773730B1
KR101773730B1 KR1020167011765A KR20167011765A KR101773730B1 KR 101773730 B1 KR101773730 B1 KR 101773730B1 KR 1020167011765 A KR1020167011765 A KR 1020167011765A KR 20167011765 A KR20167011765 A KR 20167011765A KR 101773730 B1 KR101773730 B1 KR 101773730B1
Authority
KR
South Korea
Prior art keywords
location data
data point
client device
location
predefined
Prior art date
Application number
KR1020167011765A
Other languages
English (en)
Other versions
KR20160065956A (ko
Inventor
폴-필립 홀던
매튜 스위니
제레미 그로서
Original Assignee
우버 테크놀로지스, 인크.
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
Application filed by 우버 테크놀로지스, 인크. filed Critical 우버 테크놀로지스, 인크.
Publication of KR20160065956A publication Critical patent/KR20160065956A/ko
Application granted granted Critical
Publication of KR101773730B1 publication Critical patent/KR101773730B1/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
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/367Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3679Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities
    • G01C21/3682Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities output of POI information on a road map
    • 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/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/40Correcting position, velocity or attitude
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용하여 위치 정보를 결정하기 위한 시스템 및 방법이 설명된다. 위치 데이터 포인트는 클라이언트 컴퓨팅 디바이스로부터 시스템에 의해 수신된다. 시스템은 위치 데이터 포인트가 시스템의 사용자에 의해 구성된 복수의 미리 정의된 지역 중 미리 정의된 지역내에 있는지의 여부를 결정한다. 만일 위치 데이터 포인트가 미리 정의된 지역내에 있으면, 미리 정의된 지역에 대응하는 위치 정보가 클라이언트 디바이스에 송신된다. 만일 위치 데이터 포인트가 미리 정의된 지역내에 있지 않으면, 위치 데이터 포인트를 거리 주소로 전환하는 하나 이상의 서드 파티 리버스 지오코딩 서비스가 사용될 수 있다.

Description

컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용한 위치 정보 결정{DETERMINING LOCATION INFORMATION USING A LOCATION DATA POINT PROVIDED BY A COMPUTING DEVICE}
일부 온-디멘드(on-demand) 서비스는 수송(transport)이 차량의 운전자에 의해 사용자에게 제공되도록 처리할 수 있다. 일부 경우에, 사용자 및 운전자는 수송을 처리하는 시스템과 통신하기 위하여 컴퓨팅 시스템을 각자 동작시킬 수 있다. 수송을 용이하게 하기 위하여, 시스템은 사용자 및 운전자의 컴퓨팅 디바이스에 수송에 대한 위치 정보를 제공할 수 있다.
도 1은 실시예에 따라 위치 데이터 포인트를 사용하여 위치 정보를 결정하는 예시적인 시스템을 도시한다.
도 2a 및 도 2b는 실시예에 따라 위치 정보를 결정하는 예시적인 방법을 도시한다.
도 3은 다른 실시예에 따라 위치 정보를 결정하는 예시적인 방법을 도시한다.
도 4는 본원에서 설명된 실시예가 구현될 수 있는 컴퓨터 시스템을 도시하는 블록도이다.
도 5는 본원에서 설명된 실시예가 구현될 수 있는 모바일 컴퓨팅 디바이스를 도시하는 블록도이다.
본원에서 설명된 예는 컴퓨팅 디바이스로부터 위치 데이터 포인트(location data point)를 수신하여 위치-기반 서비스를 제공하기 위하여 그 위치 데이터 포인트에 대응하는 위치 정보를 결정하는 시스템을 제공한다. 일례로, 시스템은 위치 정보를 결정하기 위하여 어떤 리소스을 사용해야하는지를 결정할 수 있으며, 이 위치 정보에 기초하여 리소스가 시스템에 의해 이용가능하거나 또는 시스템에 의해 액세스될 수 있다.
일례에 따르면, 시스템은 클라이언트 컴퓨팅 디바이스로부터 위치 데이터 포인트, 예컨대 글로벌 포지셔닝 시스템(GPS: global positioning system) 데이터 포인트를 수신할 수 있다. 위치 데이터 포인트는 위도, 경도 및 에러 값을 포함할 수 있다. 시스템은 대응하는 위치 정보 또는 주소를 결정하기 위하여 위치 데이터 포인트에 대해 리버스 지오코딩 프로세스(reverse geocoding process)를 수행할 수 있다. 일례로, 시스템은 위치 데이터 포인트가 시스템의 사용자(예컨대, 관리자)에 의해 구성된 복수의 미리 정의된 지역 중 미리 정의된 지역내에 있는지의 여부를 먼저 결정할 수 있다. 복수의 미리 정의된 지역은 예컨대 시스템에 의해 액세스가능한 데이터베이스에 저장될 수 있다. 만일 위치 데이터 포인트가 미리 정의된 지역 내에 있으면, 미리 정의된 지역에 대응하는 위치 정보는 식별되어 클라이언트 디바이스에 송신될 수 있다.
만일 위치 데이터 포인트가 미리 정의된 지역내에 있지 않으면, 시스템은 위치 데이터 포인트를 거리 주소와 같은 주소로 전환 또는 변환하기 위하여 서드 파티 리버스 지오코딩 서비스가 이용가능하거나 또는 액세스가능한지의 여부를 결정할 수 있다. 일부 예에서, 시스템은 복수의 서드 파티 리버스 지오코딩 서비스와 통신할 수 있다. 만일 위치 데이터 포인트를 주소로 전환하는데 서드 파티 리버스 지오코딩 서비스가 액세스가능하면, 시스템은 위치 데이터 포인트를 포함하는 요청을 서드 파티 리버스 지오코딩 서비스에 송신할 수 있으며 대응 주소를 수신할 수 있다. 이후, 주소는 클라이언트 디바이스에 송신될 수 있다.
일부 경우에, 서드 파티 리버스 지오코딩 서비스(들)는 시스템에게 이용가능하지 않거나 또는 시스템에 의해 액세스가능하지 않을 수 있다. 이러한 상황에서, 시스템은 위치 데이터 포인트를 주소로 전환하기 위하여 시스템의 지도 데이터베이스(예컨대, 시스템에 의해 유지되는 내부 데이터베이스)가 이용가능한지의 여부를 결정할 수 있다. 만일 지도 데이터베이스가 이용가능하면, 시스템은 위치 데이터 포인트를 사용하여 지도 데이터베이스로부터 저장된 주소를 검색(retrieve)하여 검색된 주소를 클라이언트 디바이스에 송신할 수 있다. 만일 지도 데이터베이스가 이용가능하지 않으면(또는 만일 위치 데이터 포인트에 대응하는 주소가 발견되지 않으면), 시스템은 클라이언트 디바이스에 송신될 지정된 텍스트 스트링을 식별할 수 있다. 이러한 방식으로, 시스템(100)은 미리 결정된 계층 또는 순서에 기초하여 리버스 지오코딩 프로세스를 수행할 수 있다.
게다가, 시스템은 또한 클라이언트 디바이스로부터 수송 서비스에 대한 요청을 수신할 수 있다. 수송을 위한 요청은 클라이언트 디바이스의 사용자에 의해 지정된/선택된 위치 데이터 포인트(예컨대, 이전에 송신된 위치 데이터 포인트 또는 새로운 위치 데이터 포인트)를 포함할 수 있다. 시스템은 수송을 위한 요청의 위치 데이터 포인트에 기초하여 수송 서비스를 제공할 수 있는 운전자를 선택할 수 있다. 일부 예에 따르면, 시스템은 클라이언트 디바이스의 사용자의 선호 언어가 선택된 운전자의 선호 언어와 매칭되는지의 여부를 결정할 수 있다. 만일 선호 언어들이 매칭되면, 시스템은 운전자의 디바이스에 결정된 위치 정보/주소를 송신할 수 있다. 다른 한편으로, 만일 선호 언어들이 매칭되지 않으면, 시스템은 운전자의 선호 언어의 위치 정보 또는 주소를 결정하기 위하여 예컨대 운전자를 대신하여 리버스 지오코딩 프로세스를 수행할 수 있다.
본원에서 사용되는 바와 같이, 클라이언트 디바이스, 운전자 디바이스 및/또는 컴퓨팅 디바이스는 데스크탑 컴퓨터, 셀룰러 디바이스 또는 스마트폰, 개인휴대단말(PDA: personal digital assistant), 랩탑 컴퓨터, 태블릿 디바이스, 텔레비전(IP 텔레비전) 등에 대응하는 디바이스를 지칭하며, 이들은 네트워크를 통해 시스템과 통신하기 위한 네트워크 연결 및 프로세싱 리소스를 제공할 수 있다. 운전자 디바이스는 또한 수송 물건 또는 고객 하드웨어 등의 다른 디바이스에 대응할 수 있다. 클라이언트 디바이스 및/또는 운전자 디바이스는 또한 시스템과 통신하도록 구성된 애플리케이션을 동작시킬 수 있다.
게다가, 시스템은 예컨대 위치-기반 서비스(예컨대, 수송 서비스, 배달 서비스, 엔터테인먼트 서비스)가 설명된 컴퓨팅 디바이스를 사용하여 개인 사이에서 처리되도록 할 수 있다. 예로서, 사용자는 온-디멘드 서비스(on-demand service), 예컨대 수송 또는 배달 서비스(예컨대, 식자재 배달, 메신저 서비스, 푸드 트럭 서비스(food truck service) 또는 제품 운송(product shipping)) 또는 엔터테인먼트 서비스(예컨대, 마리치 밴드(mariachi band), 현악4중주))를 요청할 수 있으며, 시스템은 시스템과 통신하는 디바이스를 사용하는 서비스 제공자, 예컨대 운전자, 식자재 제공자, 밴드 등을 선택할 수 있다.
또 다른 예로, 다수의 위치 데이터 포인트는 하나 이상의 네트워크를 통해 수신되며, 다수의 위치 포인트는 일정 시간 기간 동안 하나 이상의 클라이언트 디바이스로부터 통신된다. 다수의 위치 데이터 포인트 각각을 수신하는 것에 대한 응답으로, 그 위치 데이터 포인트가 복수의 미리 정의된 지오펜스(geofence) 중 임의의 지오펜스의 미리 정의된 지역내에 있는지의 여부를 결정하기 위하여 복수의 미리 정의된 지오펜스를 포함하는 데이터 스토어가 액세스된다. 복수의 미리 정의된 지오펜스 중 적어도 하나는 시스템의 사용자에 의해 구성된다. 미리 정의된 지역내에 있지 않는 적어도 하나의 위치 데이터 포인트에 대하여, (i) 클라이언트 디바이스에 위치 정보를 제공하기 위하여 다른 리소스가 사용될 수 있는지에 대한 결정이 수행된다. 하나 이상의 서드 파티 리버스 지오코딩 서비스가 또한 위치 데이터 포인트를 전환하기 위하여 결정된다. 다수의 위치 데이터 포인트 각각을 거리 주소로 전환하기 위한 요청이 서드 파티 리버스 지오코딩 서비스에 송신되며, 여기서 요청은 위치 데이터 포인트를 포함한다. 다수의 위치 데이터 포인트 각각에 대응하는 거리 주소가 수신된다. 다수의 위치 데이터 포인트 각각에 대하여, 대응하는 거리 주소가 위치 데이터 포인트를 통신한 클라이언트 디바이스에 송신된다.
본원에서 설명된 하나 이상의 예는 컴퓨팅 디바이스에 의해 수행되는 방법, 기술 및 동작이 프로그램적으로 수행되거나 또는 컴퓨터-구현 방법으로서 수행되는 점을 제공한다. 본원에서 사용되는 "프로그램적으로" 란 것은 코드 또는 컴퓨터-실행가능 명령을 사용한다는 것을 의미한다. 이들 명령은 컴퓨팅 디바이스의 하나 이상의 메모리 리소스에 저장될 수 있다. 프로그램적으로 수행되는 단계는 자동이거나 또는 자동이 아닐 수 있다.
본원에서 설명된 하나 이상의 예는 프로그래매틱 모듈, 엔진 또는 컴포넌트를 사용하여 구현될 수 있다. 프로그래매틱 모듈, 엔진 또는 컴포넌트는 하나 이상의 언급된 태스크(task) 또는 기능을 수행할 수 있는 프로그램, 서브-루틴, 프로그램의 일부, 또는 소프트웨어 컴포넌트 또는 하드웨어 컴포넌트를 포함할 수 있다. 본원에서 사용되는 바와같이, 모듈 또는 컴포넌트는 다른 모듈 또는 컴포넌트와 관계 없이 하드웨어 컴포넌트상에 존재할 수 있다. 대안적으로, 모듈 또는 컴포넌트는 다른 모듈, 프로그램 또는 머신의 공유 엘리먼트 또는 프로세스일 수 있다.
본원에서 설명된 일부 예는 일반적으로 프로세싱 및 메모리 소스를 포함하는 컴퓨팅 디바이스의 사용을 필요로 할 수 있다. 예컨대, 본원에서 설명된 하나 이상의 예는 컴퓨팅 디바이스, 예컨대 서버, 데스크탑 컴퓨터, 셀룰러 또는 스마트폰, 개인휴대단말(예컨대, PDA), 랩탑 컴퓨터, 프린터, 디지털 사진 프레임, 네트워크 장비(예컨대, 라우터), 및 태블릿 디바이스상에서 전체적으로 또는 부분적으로 구현될 수 있다. 메모리, 프로세싱 및 네트워크 리소스는 모두 (임의의 방법을 수행하는 것 또는 임의의 시스템을 구현하는 것을 비롯하여) 본원에서 설명된 임의의 예를 확립하는 것, 사용하는 것 또는 수행하는 것과 관련하여 사용될 수 있다.
게다가, 본원에서 설명된 하나 이상의 예는 하나 이상의 프로세서에 의해 실행가능한 명령의 사용을 통해 구현될 수 있다. 이들 명령은 컴퓨터-판독가능 매체로 운반될 수 있다. 이하의 도면에 도시되거나 또는 설명된 머신은 본원에서 설명된 예를 구현하기 위한 명령이 운반 및/또는 실행될 수 있는 프로세싱 리소스 및 컴퓨터-판독가능 매체의 예를 제공한다. 특히, 본원에서 설명된 예와 함께 도시된 다수의 머신은 프로세서(들) 및 데이터와 명령을 보존하기 위한 다른 형태의 메모리를 포함한다. 컴퓨터-판독가능 매체의 예는 퍼스널 컴퓨터 또는 서버상의 하드 드라이브와 같은 영구 메모리 저장 디바이스를 포함한다. 컴퓨터 저장 매체의 다른 예는 휴대용 저장 유닛, 예컨대 CD 또는 DVD 유닛, 플래시 메모리(예컨대, 스마트폰, 다기능 디바이스 또는 태블릿에서 취급됨) 및 자기 메모리를 포함한다. 컴퓨터, 단말, 네트워크 인에이블 디바이스(network enabled device)(예컨대, 셀 폰과 같은 모바일 디바이스)는 모두 프로세서, 메모리 및 컴퓨터-판독가능 매체상에 저장된 명령을 활용하는 머신 및 디바이스의 모든 예이다. 부가적으로, 예는 컴퓨터-프로그램의 형태로 또는 이러한 프로그램을 운반할 수 있는 컴퓨터 사용가능 캐리어 매체로 구현될 수 있다.
시스템 설명
도 1은 실시예에 따라 위치 데이터 포인트를 사용하여 위치 정보를 결정하기 위한 예시적인 시스템을 도시한다. 일례로, 시스템은 서비스가 당사자들 사이에서 처리되도록 하는 (예컨대 사용자와 서비스 제공자 사이에서 수송 서비스 또는 배달 서비스를 처리하는) 다른 시스템과 함께 또는 이 다른 시스템의 부분으로서 동작할 수 있다. 예컨대, 도 1의 시스템은 사용자에 대한 수송 서비스를 처리하기 위한 운전자를 선택하는 디스패치 시스템에 대응할 수 있다. 시스템(100)은 사용자의 클라이언트 디바이스로부터 위치 데이터 포인트를 수신하고 리버스 지오코딩 프로세스를 수행하여 위치 데이터 포인트에 대응하는 주소 또는 다른 위치 정보를 결정할 수 있다.
전형적으로, 컴퓨팅 디바이스는 서드 파티 리버스 지오코딩 서비스에 위치 데이터 포인트를 제공할 수 있으며, 서드 파티 리버스 지오코딩 서비스는 거리 주소로의 위치 데이터 포인트의 전환을 수행할 수 있다. 그러나, 위치 정보를 결정하기 위하여 오로지 서드 파티 리버스 지오코딩 서비스를 사용하는 것이 불리할 수 있다. 예컨대, 서드 파티 리버스 지오코딩 서비스(들)는 특정 디바이스에 대하여 허용된 제한된 수의 QPS(query per second)와 같은 비율 제한(rate limit)을 가질 수 있으며 그리고/또는 비용이 많이 들 수 있다. 다수의 클라이언트 디바이스가 동일한 네트워크, 예컨대 무선 근거리 통신망(WLAN)상에서 동작하는 상황에서, 서드 파티 리버스 지오코딩 서비스는 서드 파티 리버스 지오코딩 서비스에 대해 질의하는 다수의 디바이스를 동일한 디바이스인 것으로 보고 디바이스를 락 아웃(lock out)할 수 있다(예컨대, 디바이스가 서드 파티 리버스 지오코딩 서비스에 대해 콜(call)을 수행하는 것을 막을 수 있다). 게다가, 특정 서드 파티 리버스 지오코딩 서비스에 의존하는 것은 일부 상황에서, 예컨대 주소 데이터가 부정확할 때 또는 서드 파티 리버스 지오코딩 서비스의 컴퓨팅 리소스가 작동하지 않을 때 (예컨대, 서버 고장시) 문제가 될 수 있다. 클라이언트 디바이스가 서드 파티 리버스 지오코딩 서비스에 위치 데이터 포인트(들)를 직접 송신하는 것 보다 오히려, 도 1의 디바이스(100)는 클라이언트 디바이스로부터 위치 데이터 포인트(들)를 수신할 수 있으며, 서드 파티 리버스 지오코딩 서비스(들)를 활용하거나 또는 활용하지 않을 수 있는 리버스 지오코딩 프로세스를 수행할 수 있다.
일례에 따르면, 시스템(100)은 위치 결정부(110), 수송 어레인지먼트(120), 디바이스 인터페이스(130), 서비스 인터페이스(140), 지오펜스 데이터베이스(150), 지오펜스 인터페이스(155) 및 지도 데이터베이스(160)를 포함한다. 복수의 클라이언트 디바이스(170) 및 복수의 운전자 디바이스(180)는 디바이스 인터페이스(130)를 사용하여 하나 이상의 네트워크를 통해 시스템(100)과 통신할 수 있다. 일부 예에서, 시스템(100)은 또한 하나 이상의 서드 파티 리버스 지오코딩 서비스(190)와 통신할 수 있다. 시스템(100)의 컴포넌트들은 클라이언트 디바이스(170)로부터 위치 데이터 포인트(들)를 수신하고 리버스 지오코딩 프로세스를 수행하여 위치 데이터 포인트(들)에 대응하는 주소 또는 위치 정보를 결정하도록 결합될 수 있다. 로직은 시스템(100)을 구현하는 컴퓨터 시스템의 하드웨어 및/또는 다양한 애플리케이션(예컨대, 소프트웨어)으로 구현될 수 있다.
구현에 따르면, 시스템(100)의 하나 이상의 컴포넌트는 네트워크 측 리소스, 예컨대 하나 이상의 서버상에서 구현될 수 있다. 시스템(100)은 또한 대안 아키텍처(예컨대, 피어-투-피어(peer-to-peer) 네트워크 등)의 다른 컴퓨터 시스템을 통해 구현될 수 있다. 추가적으로 또는 대안적으로, 시스템(100)의 컴포넌트들의 일부 또는 모두는 예컨대 클라이언트 디바이스(170) 및/또는 운전자 디바이스(180)상에서 동작하는 애플리케이션을 통해 클라이언트 디바이스(170)상에서 구현될 수 있다. 예컨대, 서비스 애플리케이션과 같은 클라이언트 애플리케이션은 시스템(100)의 다양한 컴포넌트에 의해 설명된 프로세스들 중 하나 이상의 프로세스를 수행하도록 실행될 수 있다. 시스템(100)은 하나 이상의 클라이언트 디바이스(170) 및 하나 이상의 운전자 디바이스(180)와 통신하기 위하여 네트워크 인터페이스를 사용하여 (예컨대, 무선으로 또는 유선을 사용하여) 네트워크를 통해 통신할 수 있다.
시스템(100)은 디바이스 인터페이스(130)를 사용하여 하나 이상의 네트워크를 통해 클라이언트 디바이스(170) 및 운전자 디바이스(180)와 통신할 수 있다. 디바이스 인터페이스(130)는 시스템(100)과 원격 컴퓨팅 디바이스 간의 통신을 관리할 수 있다. 일부 예에서, 클라이언트 디바이스(170)(및 운전자 디바이스(180))는 시스템(100)과 통신하기 위하여 디바이스 인터페이스(130)와 인터페이싱할 수 있는 서비스 애플리케이션을 개별적으로 동작시킬 수 있다. 일부 예에 따르면, 애플리케이션은 디바이스 인터페이스(130)와 데이터를 통신하기 위하여 외향(externalling facing) 애플리케이션 프로그래밍 인터페이스(API: application programming interface)와 같은 API를 포함하거나 또는 이를 사용할 수 있다. 외 향 API는 임의의 수의 방법, 예컨대 웹-기반 폼(web-based form), 레스트풀(restful) API를 통한 프로그래매틱 액세스, SOAP(Simple Object Access Protocol), RPC(remote procedure call), 스크립팅 액세스(scripting access) 등을 사용하여 네트워크상의 보안 액세스 채널을 통해 시스템(100)에 대한 액세스를 제공할 수 있다.
일부 예에 따르면, 위치 결정부(110)는 위치 데이터 포인트(171)를 클라이언트 디바이스(170)로부터 디바이스 인터페이스(130)를 통해 수신할 수 있다. 예컨대, 클라이언트 디바이스(170)의 사용자가 서비스 애플리케이션을 동작시킬 때, 사용자는 온-디멘드 및/또는 위치-기반 서비스와 관련된 지정 위치를 선택하거나 또는 지정하기 위하여 서비스 애플리케이션의 사용자 인터페이스와 상호작용할 수 있다. 사용자는 지도 인터페이스와 상호작용할 수 있으며, 지도 인터페이스는 예컨대 위치-기반 서비스를 요청할 때 사용하기 위한 위치를 표시하기 위하여 사용자에 의해 지도상에서 이동될 수 있는 하나 이상의 그래픽 피처(feature)(예컨대, 핀(pin)) 뿐만 아니라 사용자의 현재의 위치(예컨대, 클라이언트 디바이스(170)의 현재 위치)를 보여준다. 일례로, 지도상에서 핀에 의해 지정된 위치는 픽-업 위치(pick-up location) 및/또는 수송 서비스를 위한 목적지 위치 또는 배달 서비스를 위한 드롭-오프 위치(drop-off location)일 수 있다.
사용자가 예컨대 지도 인터페이스상의 핀을 특정 위치로 이동시킴으로써 위치를 선택할 때, 클라이언트 디바이스(170)는 위치 데이터 포인트(171)(특정 위치에 대응함)를 결정하여 디바이스 인터페이스(130)를 통해 시스템(100)에 송신한다. 예에 따르면, 선택된 위치에 대응하는 위치 데이터 포인트(171)는 위도, 경도 및 에러 값을 포함한다. 예컨대, 클라이언트 디바이스(170)는 클라이언트 디바이스(170)의 현재 위치 또는 지도 인터페이스상에서 선택된 위치에 대한 GPS 좌표를 결정할 수 있는 글로벌 포지셔닝 시스템(GPS) 컴포넌트 및/또는 다른 컴포넌트를 포함할 수 있다. GPS 컴포넌트는 또한 위도 및 경로의 정확도를 표시하기 위하여 위치 데이터 포인트(171)에 대한 에러 값을 포함할 수 있다. 예컨대, 높은 에러값을 가진 위치 데이터 포인트(171)는 낮은 에러값을 가진 위치 데이터 포인트(171) 만큼 정확하지 않은 것으로 간주된다(예컨대, GPS 컴포넌트는 GPS 좌표가 결정되는 시간에 신호 간섭, 하드웨어 글리치(hardware glitch) 등이 존재할 때 위치 데이터 포인트에 대해 높은 에러를 가질 수 있다).
일례에 따르면, 클라이언트 디바이스(170)의 사용자가 서비스 애플리케이션의 지도 인터페이스상의 위치, 예컨대 수송 서비스에 대한 픽-업 위치를 지정할 때마다, 클라이언트 디바이스(170)는 시스템(100)에 대응 위치 데이터 포인트(171)를 제공할 수 있다. 예컨대, 사용자는 지도 인터페이스상의 제 1 위치를 선택할 수 있으며(예컨대, 클라이언트 디바이스(170)의 터치-감응식 디스플레이에 대한 손가락 터치를 통해 핀을 이동시킨후 일단 원하는 위치가 지정되면 손가락을 치울 수 있으며), 클라이언트 디바이스(170)는 사용자가 터치-감응식 디스플레이로부터 손가락을 치우는 것에 대한 응답으로 사용자가 위치를 선택하였음을 결정하여, 대응하는 위치 데이터 포인트(171)를 시스템(100)에 송신할 수 있다. 이 직후에(예컨대, 1초 이후에), 사용자는 지도 인터페이스상의 다른 제 2 위치를 선택할 수 있다(예컨대, 사용자는 수송 서비스를 위해 제 2 위치가 보다 좋다는 것을 결정한다). 유사하게, 이후, 클라이언트 디바이스(170)는 제 2 위치에 대응하는 위치 데이터 포인트(171)를 송신할 수 있다.
일부 예에서, 사용자는 (i) 사용자가 시스템(100)에 수송 요청(175)을 수행할 때까지, (ii) 사용자가 수송 요청(175)을 수행한 이후 미리 결정된 시간때까지 및/또는 (iii) 수송 서비스를 제공하는 운전자에 의해 사용자가 픽업될 때까지 특정 위치를 변경하는 것을 계속할 수 있다(그리고 클라이언트 디바이스(170)가 대응하는 위치 데이터 포인트(171)를 송신하는 것을 계속하도록 할 수 있다). 사용자가 위치를 지정할 때마다, 사용자의 클라이언트 디바이스(170)상에서 실행되는 서비스 애플리케이션은 대응하는 주소 또는 위치 정보가 시스템(100)에 의해 결정되고 서비스 애플리케이션에 제공될 수 있도록 대응하는 위치 데이터 포인트(171)를 시스템(100)에 제공한다. 일례에 따르면, 위치 데이터 포인트(171)는 대응 주소에 대한 요청의 부분으로서 서비스 애플리케이션에 의해 시스템(100)에 제공될 수 있다. 이러한 방식으로, 사용자는 특정 주소가, 수송 서비스를 위하여 사용자가 픽업되고 싶어하는 (또는 다른 예에서 드롭-오프되고 싶어하는) 주소임을 보고 검증할 수 있다.
위치 결정부(110)는 클라이언트 디바이스(170)로부터 위치 데이터 포인트(171)를 수신하고, 이에 대한 응답으로, 그 위치 데이터 포인트(171)에 대해 리버스 지오코딩 프로세스를 수행할 수 있다. 일례로, 위치 결정부(110)는 위치 데이터 포인트(171)를 대응하는 주소(예컨대, 거리 주소)로 또는 대응하는 위치 이름, 정보 또는 식별자로 전환하기 위하여 어떤 리소스(예컨대, 어떤 특정 데이터베이스, 어떤 서드 파티 리버스 지오코딩 서비스 등)를 사용해야 할지를 하나 이상의 조건에 기초하여 결정함으로써 리버스 지오코딩 프로세스를 수행할 수 있다. 일부 예에서, 위치 결정부(110)는 리소스 선택부 및 언어 매치부(match)를 포함한다.
위치 결정부(110)는 수신된 위치 데이터 포인트(171)에 대한 위치 정보 또는 주소를 결정하기 위하여 복수의 리소스에 액세스하거나 또는 이들 복수의 리소스와 통신할 수 있다. 복수의 리소스는 지오펜스 데이터베이스(150), 지도 데이터베이스(160), 복수의 서드 파티 리버스 지오코딩 서비스(190), 및/또는 다른 데이터베이스, 예컨대 도 1에 도시되지 않은, 텍스트 스트링을 저장하기 위한 데이터베이스를 포함할 수 있다. 구현에 따르면, 지오펜스 데이터베이스(150) 및/또는 지도 데이터베이스(160)는 시스템(100)에 포함되고 그리고/또는 시스템(100)의 관리 사용자(들)에 의해 유지될 수 있다.
예에 따르면, 지오펜스 데이터베이스(150)는 기술 텍스트 스트링(descriptive text string)에 각각 대응하는 복수의 사용자-생성(user-created) 또는 사용자-구성(user-configured) 지오펜스(예컨대, 3개 이상의 위치 데이터 포인트에 의해 정의된 미리 정의된 지역)를 저장하는 데이터베이스이다. 지오펜스 데이터베이스(150)의 각각의 엔트리(entry)는 (i) 지오펜스의 경계를 정의하는 복수의 위치 포인트 및 (ii) 지오펜스에 대응하는 (예컨대, 특정 텍스트 스트링으로서) 위치 정보를 포함할 수 있다. 예컨대, 지오펜스는 지리적 지역, 예컨대 샌프란시스코 국제 공항의 터미널 2의 (예컨대, 픽-업 영역 근처의) 출구 또는 문 근처의 영역에 대해 생성될 수 있고 "터미널 2, SFO(Terminla 2, SFO)"로서 식별될 수 있다. 일부 예에서, 지오펜스 엔트리는 또한 그 지오펜스 엔트리에 대한 시간 기간(예컨대, 시작일, 시작 시간, 종료일, 종료 시간 등)을 포함할 수 있다. 관리자는 지오펜스 데이터베이스(150)에서 지오펜스를 생성하고, 편집하고 그리고/또는 삭제하기 위하여 하나 이상의 입력(157)을 통해 지오펜스 인터페이스(155)와 상호작용할 수 있다.
지도 데이터베이스(160)는 시스템(100)에 저장된 매핑 정보에 대응할 수 있다. 예컨대, 매핑 정보는 OSM(OpenStreetMap), 오픈 소스 매핑 데이터베이스와 같은 매핑 리소스에 의해 제공되거나 또는 이 매핑 리소스로부터 또는 다른 매핑 리소스로부터 검색될 수 있다. 지도 데이터베이스(160)는 OSM로부터의 정보를 사용하여 주기적으로 업데이트될 수 있고 그리고/또는 시스템(100)의 관리자에 의해 업데이트될 수 있다(예컨대, 시스템(100)은 지도 데이터베이스(160)를 저장하고 유지한다). 위치 결정부(110)는 수신된 위치 데이터 포인트(171)에 대응하는 위치 정보를 결정하기 위하여 지오펜스 데이터베이스(150) 및/또는 지도 데이터베이스(160)에 액세스할 수 있다.
더욱이, 시스템(100)은 또한 하나 이상의 서비스 인터페이스(140)를 사용하여 네트워크를 통해 하나 이상의 서드 파티 리버스 지오코딩 서비스(190)에 액세스할 수 있다. 서드 파티 리버스 지오코딩 서비스는 위도 및 경도와 같은 위치 데이터 포인트를 판독가능 주소 또는 이름으로 전환하는 것을 제공한다. 복수의 상이한 서드 파티 리버스 지오코딩 서비스(190)는 존재하여 (예컨대, 서비스 인터페이스(140)를 통해) 시스템(100)에게 이용가능할 수 있다. 예컨대, 서드 파티 리버스 지오코딩 서비스(190)는 대도시 또는 국가와 같은 특정 지역내에 있는 위치 데이터 포인트에 대한 거리 주소를 제공할 수 있으며 (예컨대, 서드 파티 리버스 지오코딩 서비스는 한국의 서울에 있는 위치 포인트를 전환하는 것을 전문으로 할 수 있으며), 반면에 다른 서드 파티 리버스 지오코딩 서비스(190)는 다른 지역(예컨대, 프랑스)내에 있는 위치 포인트에 대한 거리 주소를 제공할 수 있다. 또 다른 예로, 서드 파티 리버스 지오코딩 서비스(190)가 다른 서비스보다 더 포괄적일 수 있다(즉, 다른 서비스, 예컨대 Google Inc.의 리버스 지오코딩 서비스보다 지리적으로 더 넓은 지역에 걸쳐 있는 대규모 주소 데이터베이스를 가질 수 있다).
수신된 위치 데이터 포인트(171) 및 시스템(100)의 하나 이상의 조건에 기초하여, 리소스 선택부는 수신된 위치 데이터 포인트(171)에 대한 위치 정보 또는 주소를 결정하기 위하여 어떤 리소스를 사용해야 할지를 결정할 수 있다. 예컨대, 리소스 선택부는 수신된 위치 데이터 포인트(171)에 대한 위치 정보 또는 주소를 결정하기 위하여 시스템(100)의 사용자에 의해 입력된 하나 이상의 파라미터를 통해 어떤 리소스를 첫번째로, 필요한 경우 두번째로, 이후 필요한 경우에 세번째 등으로 사용해야 할지를 결정하도록 구성될 수 있다. 더욱이, 일례로, 위치 결정부(110)는 위치 데이터 포인트(171)와 함께 수신된 에러 값이 임계 에러 값과 동일하거나 또는 이보다 더 큰지의 여부를 먼저 결정할 수 있다. 임계 에러 값과 동일하거나 또는 이보다 더 큰 에러 값은 클라이언트 디바이스(170)의 GPS 컴포넌트에 의해 결정된 위도 및 경도가 예컨대 불완전하거나 또는 부정확할 가능성이 높다는 것을 표시할 수 있다.
만일 에러 값이 임계 에러값과 동일하거나 또는 이보다 더 크다는 것을 위치 결정부(110)가 결정하면, 예컨대 리소스 선택부는 위치 결정부(110)가 액세스할 리소스로서 텍스트 스트링 데이터베이스(도 1에 도시안됨)를 선택할 수 있다. 위치 결정부(110)는 텍스트 스트링 데이터베이스로부터 디폴트 텍스트 스트링(default text string)을 검색하여, 위치가 결정될 수 없음을 또는 GPS 컴포넌트가 부정확한 위치 데이터를 제공하였음을 사용자에게 표시하는 디폴트 텍스트 스트링을 (위치 데이터 포인트(171)를 송신한) 클라이언트 디바이스(170)에 제공할 수 있다. 다른 예로, 텍스트 스트링은 또한 사용자가 새로운 위치를 다시 조사하거나 또는 선택하도록 유도(prompt)할 수 있다. 이러한 예로, 에러값이 높은 것으로 결정되었기 때문에, 위치 결정부(110)는 서드 파티 리버스 지오코딩 서비스(190)를 사용하는 것을 포기하여 네트워크 대역폭 사용을 감소시키고 서드 파티 리버스 지오코딩 서비스(190)에 대해 수행된 통신의 수를 감소시킬 수 있으며, 일반적으로 수신된 위치 데이터 포인트(171)에 대한 대응 주소 또는 위치 정보를 결정하기 위하여 리버스 지오코딩 프로세스를 수행하지 않는다.
추가적으로 또는 대안적으로, 일부 예에서, 리소스 선택부는 또한 대응하는 수신된 위치 데이터 포인트(171)에 대한 주소 또는 위치 정보를 결정하기 위하여 사용할 리소스의 (서로에 대한) 순위를 저장할 수 있다. 일례로, 리소스는 시스템(100)의 관리자에 의해 서로에 대하여 사전에 분류되거나 또는 순위가 매겨질 수 있다. 위치 결정부(110)가 위치 데이터 포인트(171)를 수신할 때, 리소스 선택부는 대응 주소 또는 위치 정보를 결정하기 위하여 이용가능하거나 또는 사용을 위해 액세스가능한 가장 높은 순위의 리소스를 선택할 수 있다. 예컨대, 위치 결정부(110)에 의해 사용될 리소스의 순위는 하기의 순서대로, 즉 (1) 지오펜스 데이터베이스(150), (2) 위치-특정 서드 파티 리버스 지오펜스 서비스(들)(190), (3) (위치-특정 서드 파티 리버스 지오코딩 서비스(들)와 비교하여) 보다 넓고 더 일반적인 서드 파티 리버스 지오코딩 서비스(190), (4) 지도 데이터베이스(160), 및 (5) 텍스트 스트링 데이터베이스로 우선순위화될 수 있다. 리소스의 순서는 다른 예에서는 상이할 수 있다. 일부 예에서, 관리자는 위치 결정부(110)의 리소스 선택부에 대한 리소스의 순위를 조절할 수 있다.
위치 결정부(110)가 위치 데이터 포인트(171)를 수신할 때, 위치 결정부(110)는 대응하는 주소 또는 위치 정보를 결정하기 위하여 리버스 지오코딩 프로세스를 수행할 수 있다. 리버스 지오코딩 프로세스는 수신된 위치 데이터 포인트(171)에 대한 대응하는 주소 또는 위치 정보를 결정하기 위하여 어떤 리소스를 사용해야 할지를 결정하는 것을 포함한다. 일례로, 리소스 선택부는 (예컨대, 앞서 언급된 순위에 기초하여) 지오펜스 데이터베이스(150)가 첫번째로 사용되어야 함을 결정할 수 있다. 위치 결정부(110)는 위치 데이터 포인트(171)가 지오펜스의 미리 정의된 지역(예컨대, 지오펜스에 대한 3개 이상의 위치 포인트에 의해 정의된 경계)내에 위치하는지의 여부를 결정하기 위하여 지오펜스 데이터베이스(150)에 액세스할 것이다. 만일 위치 데이터 포인트(171)가 지오펜스의 미리 정의된 지역내에 있으면, 위치 결정부(110)는 지오펜스 데이터베이스(150)로부터 대응하는 위치 정보(151) 또는 기술 텍스트 스트링을 식별하며, 위치 정보(151) 또는 기술 텍스트 스트링을 위치 정보(173)로서 디바이스 인터페이스(130)를 통해 클라이언트 디바이스(170)에 제공한다.
논의된 바와같이, 지오펜스 데이터베이스(150)에 저장되는 지오펜스 엔트리는 시간-기반 지오펜스 엔트리일 수 있으며, 여기서 하나 이상의 시간 기간은 그 지오펜스 엔트리와 연관된다. 시간 기간은 지오펜스가 "액티브(active)"할 때를 표시할 수 있다. 예컨대, 지오펜스는 이벤트(event)(예컨대, 콘서트, 스포츠 이벤트, 퍼레이드 등)가 발생할 수 있는 시간 기간을 지정할 수 있다. 이러한 시간-기반 지오펜스는 사용자가 그 시간 기간동안 지오펜스 지역에서 픽업 위치를 요청할 때 이러한 이벤트에 대응하는 기술 텍스트 스트링을 표시할 수 있다. 만일 위치 결정부(110)가 시간-기반 지오펜스의 미리 정의된 지역내에 있으나 지오펜스의 지정된 시간 기간 동안 이외의 특정 시간 인스턴스에서 수신되는 위치 데이터 포인트(171)를 수신하면, 위치 결정부(110)는 (예컨대, 비록 위치 데이터 포인트(171)가 시간-기반 지오펜스의 미리 정의된 영역내에 있을지라도) 위치 데이터 포인트(171)가 지오펜스 데이터베이스(150)내의 기존 지오펜스 엔트리와 매칭되지 않음을 표시할 수 있다. 리소스 선택부는 특정 순서 또는 계층에 기초하여 리버스 지오펜스 프로세스를 위하여 다른 리소스가 사용될 수 있음을 결정할 수 있다.
만일 위치 데이터 포인트(171)가 지오펜스 데이터베이스(150)내의 지오펜스들 중 임의의 지오펜스의 미리 정의된 지역내에 있지 않으면, 리소스 선택부는 위치 데이터 포인트(171)에 대응하는 위치-특정 제 3 지오코딩 서비스(190)가 액세스가능한지의 여부를 결정할 수 있다. 일부 경우에, 서드 파티 리버스 지오코딩 서비스는 (예컨대 GPS(query per second) 제한처럼 초당 단지 특정 수의 리버스 지오코딩 요청만이 수행될 수 있는)액세스 제한, 대역폭 제한, 하드웨어 문제(예컨대, 서드 파티 리버스 지오코딩 서비스 서버가 다운되거나 또는 네트워크 문제를 가지는 문제) 등의 결과로서 액세스가능하지 않을 수 있다. 더욱이, 위치 데이터 포인트(171)는 위치-특정 제 3 지오코딩 서비스(190)가 이용가능하지 않는 영역내에 있을 수 있다. 만일 위치-특정 제 3 지오코딩 서비스(190)(예컨대, 이를테면 위치 데이터 포인트(171)가 위치하는 도시, 지역, 주 또는 국가 등에 특정한 위치-특정 제 3 지오코딩 서비스(190))가 액세스가능하면, 위치 결정부(110)는 위치 데이터 포인트(171)로부터 대응 주소로의 전환을 제공할 있는 위치-특정 제 3 지오코딩 서비스(190)로 위치 데이터 포인트(171)를 사용하여 리버스 지오코드 요청(111)을 송신할 수 있다(예컨대, 위치-특정 제 3 지오코딩 서비스(190)에 대해 질의할 수 있다). 일단 위치 결정부(110)가 서드 파티 리버스 지오코딩 서비스(190)로부터 대응 주소(191)를 수신하면, 위치 결정부(110)는 주소(173)를 클라이언트 디바이스(170)에 제공할 수 있다.
다른 한편으로, 만일 위치-특정 제 3 지오코딩 서비스(190)가 액세스가능하지 않으면, 리소스 선택부는 (위치-특정 서드 파티 리버스 지오코딩 서비스(들)와 비교하여) 보다 넓고 더 일반적인 서드 파티 리버스 지오코딩 서비스(190)가 액세스가능 한지를 결정할 수 있다. 일부 예로, 보다 넓고 더 일반적인 서드 파티 리버스 지오코딩 서비스(190)는 (예컨대, Google Inc.에 의해 제공된 리버스 지오코딩 서비스와 같은) 보다 넓은 지리적 데이터 포인트를 포함할 수 있다. 만일 보다 넓고 더 일반적인 서드 파티 리버스 지오코딩 서비스(190)가 액세스가능하면, 위치 결정부(110)는 위치 데이터 포인트(171)로부터 대응 주소로의 전환을 제공할 수 있는 더 넓고 더 일반적인 제 3 지오코딩 서비스(190)로 위치 데이터 포인트(171)를 사용하여 리버스 지오코드 요청(111)을 송신할 수 있다(예컨대, 더 넓고 더 일반적인 제 3 지오코딩 서비스(190)에 대해 질의할 수 있다). 일단 위치 결정부(110)가 보다 넓고 더 일반적인 서드 파티 리버스 지오코딩 서비스(190)로부터 대응 주소(191)를 수신하면, 위치 결정부(110)는 주소(173)를 클라이언트 디바이스(170)에 제공할 수 있다.
만일 제 3 지오코딩 서비스(190)가 액세스가능하지 않으면, 리소스 선택부는 시스템(100)의 내부 지도 데이터베이스(160)가 액세스가능 한지를 결정할 수 있다. 지도 데이터베이스(160)는 하나 이상의 지도 소스에 의해 제공되거나 또는 이 지도 소스로부터 검색되는 지도 정보에 대응할 수 있다. 만일 지도 데이터베이스(160)가 액세스가능하면, 위치 결정부(110)는 지도 데이터베이스(160)에서 위치 데이터 포인트(171)의 룩업(lookup)을 수행할 수 있다. 만일 위치 데이터 포인트(171)가 대응 주소 또는 위치 정보(161)를 가지면, 위치 결정부(110)는 주소 또는 위치 정보(161)를 위치 정보(173)로서 디바이스 인터페이스(130)를 통해 클라이언트 디바이스(170)에 제공할 수 있다.
만일 지도 데이터베이스(160)가 액세스가능하지 않거나 또는 이용가능하지 않으면 또는 만일 대응하는 주소 또는 위치 정보가 지도 데이터베이스(160)에서 발견되지 않으면, 리소스 선택부는 리소스가 이용가능하지 않거나 또는 액세스가능하지 않음을 결정할 수 있으며, 위치 결정부(110)는 텍스트 스트링 데이터베이스에 저장된 고객 텍스트 스트링을 식별할 수 있다. 위치 결정부(110)는 "주소가 이용가능하지 않음", "다른 위치를 선택함" 또는 "텍스트 필드에 주소를 입력함"과 같은 고객 텍스트 스트링이 디바이스 인터페이스(130)를 통해 클라이언트 디바이스(170)에 송신되는 것을 야기할 수 있다. 이러한 방식으로, 사용자는 서비스에 대한 요청을 수행하기 전에 온-디멘드 위치-기반 서비스에 대한 주소 또는 위치에 관한 정확한 정보를 수신할 수 있다.
일부 예에 따르면, 위치 결정부(110)는 또한 클라이언트 디바이스(170)를 동작시키는 사용자의 선호 언어를 결정할 수 있다. 예컨대, 시스템(100)은 사용자 각각의 클라이언트 디바이스(170) 및/또는 사용자의 프로필 데이터베이스를 유지할 수 있다. 시스템(100)은 또한 운전자의 프로필 데이터베이스를 유지할 수 있다. 사용자의 프로필은 다른 사용자 정보와 함께 사용자 식별자(ID)(예컨대, 사용자 이름, 이메일 주소 등) 및 선호 언어(예컨대, 영어, 한국어, 아랍어, 프랑스 어, 중국어 등)를 포함할 수 있다. 사용자가 클라이언트 디바이스(170)를 동작시키고 클라이언트 디바이스(170)가 위치 데이터 포인트(171)를 (예컨대, 사용자 ID와 함께) 위치 결정부(110)에 제공할 때, 언어 매치부는 사용자의 프로필 데이터베이스로부터 사용자의 프로필에 액세스함으로써 그 사용자의 선호 언어를 식별할 수 있다. 이러한 방식으로, 사용자에 의해 선택된 위치 데이터 포인트(171)에 대한 대응 주소 또는 위치 정보(173)가 사용자의 클라이언트 디바이스(170)에 제공되어야 할 때, 위치 결정부(110)는 그 사용자에 대한 선호 언어로 주소 또는 위치 정보(173)를 송신할 수 있다.
변형예에 따르면, 위치 결정부(110)는 (예컨대, 언어 매치부를 통해) (i) 리버스 지오코딩 프로세스를 사용하여 결정되는 (예컨대, 복수의 리소스들 중 하나의 리소스을 사용하여 결정되는) 주소 또는 위치 정보의 전환을 수행함으로써, (ii) 결정된 주소 또는 위치 정보의 전환을 수행하기 위하여 제 3 전환 서비스에 액세스함으로써 및/또는 (iii) 리버스 지오코딩 프로세스 동안 위치 결정부(110)가 서드 파티 리버스 지오코딩 서비스에 대해 (지정된 선호 언어의 주소(191)에 대한)리버스 지오코딩 요청(111)을 수행하도록 함으로써, 대응하는 사용자 및/또는 사용자의 클라이언트 디바이스(170)의 선호 언어의 주소 또는 위치 정보(173)를 제공할 수 있다. 일부 예에서, 전환은 하나의 언어(예컨대, 영어)로부터 발음으로 (예컨대, 중국어 발음으로) 표현되는 다른 언어로의 전환일 수 있다.
시스템(100)은 또한 위치-기반 서비스가 당사자 사이에서 처리되는 것을 가능하게 하는 다른 시스템과 함께 또는 이 다른 시스템의 부분으로서 동작할 수 있다. 예컨대, 시스템(100)은 클라이언트 디바이스(170)로부터 수송 요청(175)을 수신하는 수송 어레인지먼트(120)를 포함할 수 있다. 클라이언트 디바이스(170)의 사용자는 픽업을 위한 위치와 같은 위치를 선택하고, 시스템(100)으로부터 주소 또는 위치 정보(173)를 수신할 수 있다. 이후, 사용자는 선택된 위치를 사용하여 클라이언트 디바이스(170)상에서 동작하는 서비스 애플리케이션을 통해 수송 요청(175)을 시스템(100)에 대해 수행할 수 있다 (또는 상이한 위치를 선택할 수 있다). 수송 요청(175)은 위치 데이터 포인트(171)를 포함할 수 있으며, 수송 어레인지먼트(120)는 픽업 위치를 지정하는 위치 데이터 포인트(171)에 기초하여 운전자에 의해 제공될 수송을 처리할 수 있다. 예컨대, 복수의 운전자는 복수의 운전자 디바이스(180)를 동작시킬 수 있다. 수송 어레인지먼트(120)는 수송 요청(175)(예컨대, 어느 타입의 차량이 요청되는지, 몇시인지, 사용자의 등급, 운전자의 등급 등) 및/또는 위치 데이터 포인트(171)에 기초하여 운전자를 선택할 수 있다(예컨대, 수송 어레인지먼트(120)는 더 멀리 떨어져 있는 다른 운전자와 비교하여 근접해 있는 운전자를 선택할 수 있다).
수송 어레인지먼트(120)가 운전자를 선택할 때, 수송 서비스에 대한 정보(125)는 선택된 운전자의 운전자 디바이스(180) 및 클라이언트 디바이스(170)에 (예컨대, 각각의 디바이스상에서 동작하는 서비스 애플리케이션에) 제공될 수 있다. 운전자에게는 또한 고객에 의해 선택된 픽업 위치가 통지된다. 그러나, 클라이언트 디바이스(170)의 사용자에 의해 선택된 위치 데이터 포인트(171)를 운전자 디바이스(180)에 제공하는 것 대신에, 일부 예에서는 위치 결정부(110)가 (클라이언트 디바이스(170)의 사용자에 대하여 사전에 결정된) 대응하는 거리 주소 또는 위치 정보를 주소 또는 위치 정보(183)로서 운전자 디바이스(180)에 제공할 수 있다.
일부 예에 따르면, 위치 결정부(110)는 또한 선택된 운전자의 선호 언어를 결정할 수 있다. 운전자가 수송 어레인지먼트(120)에 의해 선택될 때, 위치 결정부(110)의 언어 매치부는 (예컨대, 운전자 ID를 사용하여) 운전자의 프로필 데이터베이스내의 운전자 프로필에 액세스함으로써, 선택된 운전자의 선호 언어를 식별할 수 있다. 언어 매치부는 사용자의 선호 언어와 선택된 운전자의 선호 언어가 동일한지를 결정하기 위하여 사용자의 선호 언어와 선택된 운전자의 선호 언어를 비교할 수 있다. 만일 선호 언어가 매칭되면, 위치 결정부(110)는 다른 전환 단계를 수행할 필요는 없으며, 대신에 (사용자의 클라이언트 디바이스(170)에 사전에 송신되었던) 결정된 주소 또는 위치 정보를 운전자 디바이스(180)에 송신할 수 있다. 다른 한편으로, 만일 선호 언어가 매칭되지 않으면, 위치 결정부(110)는 (예컨대, 운전자의 선호 언어인 주소(193)를 수신하기 위하여) 리버스 지오코딩 프로세스를 다시 수행할 수 있으며 그리고/또는 사용자의 선호 언어로 결정된 주소의 운전자의 선호 언어로의 전환을 수행할 수 있다.
이러한 방식으로, 시스템(100)은 미리 정의된 리버스 지오코딩 프로세스를 사용하여 위치 정보 또는 거리 주소를 제공할 때 많은 장점을 제공한다. 예컨대, 만일 서드 파티 리버스 지오코딩 서비스가 이용가능하지 않거나 또는 액세스가능하지 않으면, 시스템(100)은 다른 리소스를 사용하여 관련 위치 정보를 클라이언트 디바이스(170)의 사용자에게 계속해서 제공할 수 있다. 시스템(100)의 관리자는 정밀(granular) 및 시간-기반 위치 정보 메시지를 더 많이 사용자에게 제공하기 위하여 지오펜스 데이터베이스(150)와 같은 내부 데이터베이스를 계속해서 업데이트할 수 있다. 이러한 정밀 및 시간-기반 정보는 사용자 뿐만 아니라 서비스 제공자에게, 도로, 거리 모퉁이, 지역 등이 임시 이벤트(예컨대, 마라톤, 도시 축제)로 인해 차단되거나 또는 폐쇄될 때 전형적인 거리 주소보다 더 유용할 수 있다. 더욱이, 시스템(100)이 온-디멘드 서비스를 위하여 클라이언트 디바이스 및 운전자 디바이스 모두에 결정된 주소 또는 위치 정보를 제공하기 때문에, 사용자 및 선택된 운전자는 2개의 개별 리버스 지오코딩 요청이 서드 파티 리버스 지오코딩 서비스에 대해 수행되게 하지 않고 (즉, 클라이언트 디바이스 및 운전자 디바이스에 의해 개별적으로 수행되게 하지 않고) 동일한 정보를 수신할 수 있다.
방법론
도 2a 및 도 2b는 실시예에 따라 위치 정보를 결정하기 위한 예시적인 방법을 도시한다. 도 2a 및 도 2b의 예에 의해 설명되는 것과 같은 방법은 예컨대 도 1의 실시예에서 설명된 컴포넌트를 사용하여 구현될 수 있다. 따라서, 도 1의 엘리먼트와 관련된 참조는 설명되고 있는 단계 또는 부단계를 수행하기에 적절한 엘리먼트 또는 컴포넌트를 도시하기 위한 것이다.
도 2a를 참조하면, 시스템(100)은 GPS 데이터 포인트와 같은 위치 데이터 포인트를 클라이언트 디바이스로부터 하나 이상의 네트워크를 통해 수신할 수 있다(205). 일부 예에서, 위치 데이터 포인트는 위도, 경도 및 에러 값을 포함할 수 있다. 만일 에러 값이 임계 에러 값 미만이면, 시스템(100)은 수신된 위치 데이터 포인트에 대해 리버스 지오코딩 프로세스(210-250)를 수행할 수 있다. 도 1의 위치 결정 결정부(110)에 의해 수행되는 것과 같은 리버스 지오코딩 프로세스의 예가 상세히 설명된다.
위치 결정부(110)는 위치 데이터 포인트가 시스템(100)의 관리자에 의해 구성되었던 복수의 미리 정의된 지역들 중 어느 미리 정의된 지역내에 있는지를 결정한다(210). 만일 위치 데이터 포인트가 미리 정의된 지역내에 있으면, 위치 결정부(110)는 그 미리 정의된 지역에 대응하는 위치 정보를 식별하며, 클라이언트 디바이스에 위치 정보를 송신한다(215). 복수의 미리 정의된 지역에 대한 정보는 지오펜스 엔트리로서 지오펜스 데이터에 저장될 수 있다. 일부 예에서, 지오펜스 엔트리는 시간에 기반할 수 있으며, 그 지오펜스 엔트리에 대한 시간 기간(예컨대, 시작일, 시작 시간, 종료일, 종료 시간 등)을 포함할 수 있다. 예컨대, 지오펜스 엔트리는 AT&T Park를 둘러싸며 그리고/또는 이에 대응하는 지역을 지정할 수 있으며, 그 지역에서 경기하는 야구 경기의 날짜 및 지속 기간(예컨대, 경기 전 1시간 내지 경기 후 1 시간)에 관한 시간 기간을 가질 수 있다. AT&T Park의 미리 정의된 지역에 대한 대응하는 위치 정보 텍스트 스트링은 예컨대 "“Giants game-walk to 3rd St. and Brannan for pick-up”를 열거할 수 있다. 위치 정보는 실제 주소/위치가 사람들로 혼잡하게 되고 그리고/또는 도로가 폐쇄될 수 있기 때문에 픽업을 위한 (예컨대, 수송 서비스를 위한) 다른 위치로 이동하도록 사용자를 안내하는데 유익할 수 있다. 이러한 방식으로, 사용자의 클라이언트 디바이스에 제공된 이러한 사전-구성된 위치 정보는 온-디멘드 서비스하는데 있어서 사용자에게 더 유용할 수 있다.
만일 위치 데이터 포인트가 미리 정의된 지역내에 있지 않으면, 위치 결정부(110)는 이용가능하거나 또는 액세스가능한 위치-특정 리버스 지오코딩 서비스가 존재하는지를 결정한다(220). 예컨대, 서드 파티 리버스 지오코딩 서비스는 위치 데이터 포인트가 클라이언트 디바이스로부터 수신될 때 QPS(query per second)의 수와 같은 레이트 제한(rate limit)이 도달된 경우에 이용가능하지 않을 수 있다. 다른 예로, 서드 파티 리버스 지오코딩 서비스는 서드 파티 리버스 지오코딩 서비스에 대해 콜이 수행되는 경우에 이용가능하지 않을 수 있으며, (예컨대, 서드 파티 리버스 지오코딩 서비스의 컴퓨팅 리소스가 고장나거나 또는 작동하지 않았기 때문에 또는 서드 파티 리버스 지오코딩 서비스에 대한 네트워크 연결이 손실된 경우에) 콜에 대한 응답으로 주소가 수신되지 않는다.
만일 위치-특정 서드 파티 리버스 지오코딩 서비스가 위치 데이터 포인트를 주소로 전환하기 위하여 액세스가능하면, 위치 결정부(110)는 위치-특정 서드 파티 리버스 지오코딩 서비스에 요청을 송신할 수 있다(225). 요청은 위치 데이터 포인트를 포함할 수 있다. 일 실시예에서, 사용자의 선호 언어로 거리 주소에 대한 요청이 또한 수행될 수 있다. 위치-특정 서드 파티 리버스 지오코딩 서비스는 위치 데이터 포인트를 거리 주소로 전환할 수 있으며, 주소를 위치 결정부(110)에 제공할 수 있다. 위치 결정부는 주소를 클라이언트 디바이스에 송신할 수 있다(228). 일 변형예에서, 만일 위치-특정 서드 파티 리버스 지오코딩 서비스가 위치 데이터 포인트에 대한 주소를 제공할 수 없으면, 위치 결정부(110)는 전환을 제공하기 위하여 이용가능하거나 또는 액세스가능한 다른 서드 파티 리버스 지오코딩 서비스가 존재하는지를 결정할 수 있다. 만일 서드 파티 리버스 지오코딩 서비스가 이용가능하거나 또는 액세스가능하지 않으면, 위치 결정부(110)는 위치 정보를 결정하거나 또는 클라이언트 디바이스에 고객 텍스트 스트링을 제공하기 위하여 시스템(100)의 지도 데이터베이스와 같은 다른 리소스를 사용할 수 있다.
220으로 다시 되돌아가면, 위치-특정 서드 파티 리버스 지오코딩 서비스가 위치 데이터 포인트를 주소로 전환하기 위하여 이용가능하지 않거나 또는 액세스가능하지 않은 경우에, 위치 결정부(110)는 (위치-특정 서드 파티 리버스 지오코딩 서비스와 비교하여) 보다 넓고 더 일반적인 서드 파티 리버스 지오코딩 서비스(예컨대, Google Inc.에 의해 제공된 리버스 지오코딩 서비스)가 액세스가능 한지를 결정할 수 있다(230). 만일 더 넓고 더 일반적인 서드 파티 리버스 지오코딩 서비스가 액세스가능하면, 위치 결정부(110)는 그 위치-특정 서드 파티 리버스 지오코딩 서비스에 요청을 송신한다(235). 위치 결정부(110)는 전환된 주소를 수신하고, 그 주소를 클라이언트 디바이스에 송신할 수 있다(238).
일부 경우에, 서드 파티 리버스 지오코딩 서비스는 시스템(100)에 의해서 이용가능하지 않거나 또는 시스템(100)에 의해 액세스가능하지 않을 수 있다. 만일 서드 파티 리버스 지오코딩 서비스가 액세스가능하거나 또는 이용가능하지 않으면, 위치 결정부(110)는 시스템(100)의 지도 데이터베이스(예컨대, 시스템(100)에 의해 유지되는 내부 데이터베이스)가 위치 데이터 포인트를 주소로 전환하기 위하여 이용가능한지를 결정할 수 있다(240). 만일 지도 데이터베이스가 이용가능하면, 위치 결정부(110)는 위치 데이터 포인트를 사용하여 지도 데이터베이스로부터 저장된 주소 또는 위치 정보를 검색하고, 검색된 주소를 클라이언트 디바이스에 송신할 수 있다(245). 만일 지도 데이터베이스가 이용가능하지 않으면(또는 만일 위치 데이터 포인트에 대응하는 주소가 발견되지 않으면), 시스템(100)은 클라이언트 디바이스(250)에 송신될 지정된 텍스트 스트링(예컨대, "주소가 이용가능하지 않음", "다른 위치를 선택함", "당신의 운전자에게 콜함")을 식별할 수 있다.
특정 순서로 위치 결정부(110)가 복수의 리소스에 액세스하거나 또는 복수의 리소스에 액세스하는 것을 시도하는 것으로 도 2a가 설명된 반면에, 다른 변형예에 따라 리소스의 다른 순서 또는 순위가 가능하다. 다른 예로, 위치 결정부(110)는 특정 리소스에 액세스하지 않거나 또는 특정 리소스에 액세스하는 것을 시도하지 않을 수 있다. 예컨대, 서드 파티 리버스 지오코딩 서비스에 대하여 전체 QPS 제한에 도달하였을 때, 위치 결정부(110)는 제 3 지오코딩 서비스에 액세스하지 않고, 대신에 다른 리소스(예컨대, 시스템(100)의 지도 데이터베이스) 또는 다른 내부 데이터베이스에 액세스할 수 있다. 더욱이, 위치 데이터 포인트가 위치하는 상이한 지리적 지역에 대하여 상이한 리소스가 이용가능할 수 있다.
예컨대, 도 2b는 실시예에 따라 위치 정보를 결정하기 위한 다른 예를 예시한다. 도 2b는 도 2b에서 위치 결정부(110)가 위치-특정 서드 파티 리버스 지오코딩 서비스에 개별적으로 액세스하거나 또는 액세스하는 것을 시도하지 않는다는 점을 제외하고 도 2a와 유사하다. 위치 결정부(110)는 클라이언트 디바이스로부터 위치 데이터 포인트를 수신하며(255), 위치 데이터 포인트가 미리 정의된 지역내에 있는지를 결정한다(260). 만일 예이면, 미리 정의된 지역에 대응하는 식별된 위치 정보는 클라이언트 디바이스에 송신된다(265).
만일 위치 데이터 포인트가 미리 정의된 영역내에 있지 않으면, 위치 결정부(110)는 서드 파티 리버스 지오코딩 서비스가 이용가능한지 또는 액세스가능 한지를 결정한다(270). 만일 서드 파티 리버스 지오코딩 서비스가 이용가능하거나 또는 액세스가능하면, 위치 결정부(110)는 서비스에 요청을 송신한다(275). 서드 파티 리버스 지오코딩 서비스는 거리 주소와 같은 주소로의 위치 데이터 포인트의 전환을 수행할 수 있으며, 결과를 위치 결정부(110)에 리턴할 수 있다. 위치 결정부(110)는 주소를 클라이언트 디바이스에 송신할 수 있다(278).
만일 서드 파티 리버스 지오코딩 서비스가 이용가능하지 않거나 또는 액세스가능하지 않으면, 위치 결정부(110)는 시스템(00)의 지도 데이터베이스가 이용가능한지를 결정한다(280). 만일 '예'이면, 위치 데이터 포인트에 대응하는 위치 정보 또는 주소는 지도 데이터베이스로부터 검색되며, 클라이언트 디바이스로 송신된다(285). 만일 시스템(100)의 지도 데이터베이스가 이용가능하지 않으면, 위치 결정부(110)는 클라이언트 디바이스(290)에 송신할 고객 텍스트 스트링을 식별할 수 있다(290).
도 3은 다른 실시예에 따라 위치 정보를 결정하기 위한 예시적인 방법을 도시한다. 도 3의 예에 의해 설명된 것과 같은 방법은 예컨대 도 1의 실시예와 관련하여 설명된 컴포넌트를 사용하여 구현될 수 있다. 따라서, 도 1의 엘리먼트와 관련된 참조는 설명되고 있는 단계 또는 부단계를 수행하기에 적절한 엘리먼트 또는 컴포넌트를 예시하기 위한 것이다.
시스템(100)은 클라이언트 디바이스로부터 위치 데이터 포인트를 수신할 수 있다(310). 클라이언트 디바이스는 예컨대 클라이언트 디바이스의 사용자가 온-디멘드 또는 위치-기반 서비스에 사용하기 위한 위치를 지정할 수 있는 서비스 애플리케이션을 실행할 수 있다. 일례로, 서비스 애플리케이션은 사용자가 지도 인터페이스상에서 그래픽 피처를 이동시킴으로써 위치를 선택할 수 있는 지도 인터페이스를 제공할 수 있다. 선택된 위치는 위도 및 경도와 같은 위치 데이터 포인트에 대응할 수 있다.
위치 데이터 포인트를 수신하는 것에 대한 응답으로, 위치 결정부(110)는 수신된 위치 데이터 포인트에 대응하는 주소 또는 위치 정보를 결정하기 위하여 리버스 지오코딩 프로세스를 수행한다(320). 일부 예에서, 리버스 지오코딩 프로세스는 도 2a의 단계(210-250) 또는 도 2b의 단계(260-290)에 대응할 수 있다. 위치 결정부(110)는 리버스 지오코딩 프로세스의 결과, 예컨대 주소, 위치 정보 또는 고객 텍스트 스트링을 클라이언트 디바이스에 제공한다. 사용자는 또한 그 사용자가 수송 요청을 수행하기 전에 지도 인터페이스상의 위치를 계속해서 변경할 수 있거나 또는 일부 실시예에서 수송 요청이 수행된 이후에 조차 (그러나, 운전자에 의해 추정된 도달 시간 전 미리 결정된 시간 전에) 위치를 변경할 수 있다. 위치 결정부(110)는 클라이언트 디바이스가 시스템(100)에 상이한 위치 데이터 포인트를 제공할 때마다 (예컨대, 사용자가 서비스 애플리케이션의 지도 인터페이스상에서 그래픽 피처를 이동시킬 때마다) 리버스 지오코딩 프로세스를 계속해서 수행할 수 있다(320).
일부 예에서, 사용자는 온-디멘드 서비스 요청(예컨대, 배달 요청, 엔터테인먼트 서비스 요청, 수송 요청 등)을 위치 데이터 포인트를 사용하여 클라이언트 디바이스를 통해 시스템(100)에 대해 수행할 수 있다(330). 시스템(100)은 서비스 제공자에 의해 사용자에게 온-디멘드 서비스가 제공되도록 처리할 수 있다. 예컨대, 시스템(100)은 수송 서비스를 제공할 운전자를 선택하기 위하여 위치 데이터 포인트에 대응하는 지리적 지역에서 수송 서비스 요청에 대한 정보, 사용자에 대한 정보 및 이용가능한 운전자에 대한 정보를 사용할 수 있다(340). 다른 온-디멘드 서비스 예에서, 시스템(100)은 배달 서비스를 수행하기 위한 특정 운전자를 선택하고, 푸드 서비스를 제공하기 위한 푸드 벤더(food vendor)를 선택하는 등을 수행할 수 있다. 수송 서비스에 대한 정보는 사용자의 클라이언트 디바이스 및 운전자의 운전자 디바이스 둘다에 제공될 수 있다.
예컨대, 수송 서비스를 위하여, 운전자는 사용자에 의해 지정된 픽-업 위치를 알아야 한다. 사용자는 픽-업 위치를 지정하고, 도 2a 또는 도 2b에서 설명된 리버스 지오코딩 프로세스를 통해 시스템(100)에 의해 식별된 거리 주소 또는 위치 정보를 수신할 수 있다. 이러한 정보는 또한 운전자에게 제공되어야 한다. 일 실시예에서, 위치 결정부(110)는 주소 또는 위치 정보를 사용자의 선호 언어로 사용자에게 제공할 수 있다. 위치 결정부(110)는 사용자의 선호 언어가 운전자의 선호 언어와 매칭되는지를 결정할 수 있다(350). 만일 선호 언어가 매칭되면, 위치 결정부(110)는 운전자의 디바이스에 사전에 결정된 주소 또는 위치 정보를 송신할 수 있다(355).
다른 한편으로, 만일 사용자의 선호 언어가 운전자의 선호 언어와 매칭되지 않으면, 위치 결정부(110)는 (i) 결정된 주소 또는 위치 정보의 전환을 수행할 수 있으며, (ii) 결정된 주소 또는 위치 정보의 전환을 수행하기 위하여 제 3 전환 서비스에 액세스할 수 있으며 그리고/또는 (iii) 운전자의 선호 언어의 주소 또는 위치 정보에 대한 리버스 지오코딩 요청을 서드 파티 리버스 지오코딩 서비스에 대해 수행하는 것을 포함할 수 있는 리버스 지오코딩 프로세스를 두번째로 수행할 수 있다(360). 운전자의 선호 언어인 주소 또는 위치 정보는 운전자의 디바이스에 제공될 수 있다(370).
하드웨어 다이어그램
도 4는 본원에서 설명된 실시예가 구현될 수 있는 컴퓨터 시스템을 도시하는 블록도이다. 예컨대, 도 1의 맥락에서, 시스템(100)은 도 4에 의해 설명된 것과 같은 컴퓨터 시스템을 사용하여 구현될 수 있다. 시스템(100)은 또한 도 4에 의해 설명된 것과 같은 다수의 컴퓨터 시스템의 조합을 사용하여 구현될 수 있다.
일 구현에서, 컴퓨터 시스템(400)은 프로세싱 리소스(410), 주 메모리(420), 롬(ROM)(430), 저장 디바이스(440) 및 통신 인터페이스(450)를 포함한다. 컴퓨터 시스템(400)은 정보를 프로세싱하기 위한 적어도 하나의 프로세서(410) 및 주 메모리(420), 예컨대 램(RAM) 또는 프로세서(410)에 의해 실행될 정보 및 명령을 저장하기 위한 다른 동적 저장 디바이스를 포함한다. 주 메모리(420)는 또한 프로세서(410)에 의해 실행될 명령의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하기 위하여 사용될 수 있다. 컴퓨터 시스템(400)은 또한 ROM(430), 또는 프로세서(410)에 대한 정적 정보 및 명령을 저장하기 위한 다른 정적 저장 디바이스를 포함할 수 있다. 자기 디스크 또는 광 디스크와 같은 저장 디바이스(440)는 도 1의 시스템(100)의 컴포넌트를 구현하기 위한 명령을 비롯한 정보 및 명령을 저장하기 위하여 제공된다. 일부 예에 따르면, 프로세서(410)는 도 1 내지 도 3에 설명된 것과 같은 리버스 지오코딩 프로세스를 수행하기 위한 로직을 구현하기 위하여 ROM(430) 및/또는 저장 디바이스(440)에 저장된 명령을 실행할 수 있다.
통신 인터페이스(450)는 컴퓨터 시스템(400)이 네트워크 링크(무선 또는 유선)의 사용을 통해 하나 이상의 네트워크(480)(예컨대, 셀룰러 네트워크)와 통신하도록 할 수 있다. 네트워크 링크를 사용하여, 컴퓨터 시스템(400)은 하나 이상의 컴퓨팅 디바이스 및 하나 이상의 서버와 통신할 수 있다. 일부 변형예에서, 컴퓨터 시스템(400)은 위치 데이터 포인트(452)를 하나 이상의 클라이언트 디바이스로부터 네트워크 링크를 통해 수신할 수 있다. 위치 데이터 포인트(452)는 위치 데이터 포인트(452)에 대응하는 주소 또는 위치 정보를 결정하기 위하여 프로세서(410)에 의해 프로세싱될 수 있다. 결정된 주소 정보(454)는 네트워크(480)를 통해 (예컨대, 위치 데이터 포인트(452)를 제공한) 클라이언트 디바이스에 그리고/또는 클라이언트 디바이스의 사용자에 수송 서비스를 제공하도록 선택되었던 운전자의 운전자 디바이스에 송신될 수 있다.
컴퓨터 시스템(400)은 또한 예컨대 사용자에게 그래픽 및 정보를 디스플레이하기 위하여 디스플레이 디바이스(460), 예컨대 음극선관(CRT), LCD 모니터, 또는 텔레비전 세트를 포함할 수 있다. 알파뉴메릭 키 및 다른 키를 포함하는 키보드와 같은 입력 메커니즘(470)은 프로세서(410)에 정보 및 커맨드 선택을 통신하기 위하여 컴퓨터 시스템(400)에 커플링될 수 있다. 입력 메커니즘(470)의 다른 비제한적인 예시적인 예는 프로세서(410)에 방향 정보 및 커맨드 선택을 통신하고 디스플레이(460)상의 커서 움직임을 제어하기 위한 마우스, 트랙볼, 터치-감응식 스크린, 또는 커서 방향 키를 포함한다.
본원에서 설명된 예는 본원에서 설명된 기술을 구현하기 위한 컴퓨터 시스템(400)의 사용에 관한 것이다. 일 구현에 따르면, 이들 기술은 프로세서(410)가 주 메모리(420)에 포함된 하나 이상의 명령의 하나 이상의 시퀀스를 실행하는 것에 대한 응답으로 컴퓨터 시스템(400)에 의해 수행된다. 이러한 명령은 저장 디스플레이(440)와 같은 다른 머신-판독가능 매체로부터 주 메모리(420)내로 판독될 수 있다. 주 메모리(420)에 포함된 명령의 시퀀스의 실행은 프로세서(410)가 본원에서 설명된 프로세스 단계를 수행하는 것을 야기한다. 대안적인 구현에서, 하드-와이어(hard-wired) 회로소자는 본원에서 설명된 예를 구현하기 위한 소프트웨어 명령 대신에 또는 이 소프트웨어 명령과 결합하여 사용될 수 있다. 따라서, 설명된 예는 하드웨어 회로소자 및 소프트웨어의 임의의 특정 조합에 제한되지 않는다.
도 5는 본원에서 설명된 실시예가 구현될 수 있는 모바일 컴퓨팅 디바이스를 예시하는 블록도이다. 일 실시예에서, 컴퓨팅 디바이스(500)는 전화, 메시징 및 데이터 서비스일 수 있는 셀룰러 디바이스와 같은 모바일 컴퓨팅 디바이스에 대응할 수 있다. 컴퓨팅 디바이스(500)는 클라이언트 디바이스 또는 운전자 디바이스에 대응할 수 있다. 이러한 디바이스의 예는 셀룰러 캐리어를 위한 스마트폰, 핸드셋 또는 태블릿 디바이스를 포함한다. 컴퓨팅 디바이스(500)는 프로세서(510), 메모리 리소스(520), (예컨대, 터치-감응식 디스플레이 디바이스와 같은) 디스플레이 디바이스(530), (무선 통신 서브-시스템을 포함하는) 하나 이상의 통신 서브-시스템(540), 입력 메커니즘(550)(예컨대, 입력 메커니즘은 터치-감응식 디스플레이 디바이스를 포함하거나 또는 이 터치-감응식 디스플레이 디바이스의 부분일 수 있음), 및 하나 이상의 위치 검출 메커니즘(예컨대, GPS 컴포넌트)(560)을 포함한다. 일례로, 통신 서브-시스템(540)의 적어도 하나는 셀룰러 데이터를 데이터 채널 및 음성 채널을 통해 전송 및 수신한다.
프로세서(510)는 도 1 내지 도 4에 의해 그리고 본 출원서의 다른 위치에서 설명된 것과 같은 구현을 사용하여 설명된 하나 이상의 프로세스, 단계 및 다른 기능을 수행하기 위한 소프트웨어 및/또는 다른 로직으로 구성된다. 프로세서(510)는 도 1 내지 도 4에서 설명된 것과 같은 서비스 애플리케이션을 동작시키기 위하여 메모리 리소스(520)에 저장된 명령 및 데이터로 구성된다. 예컨대, 사용자 인터페이스를 디스플레이하기 위하여 서비스 애플리케이션을 동작시키기 위한 명령은 컴퓨팅 디바이스(500)의 메모리 리소스(520)에 저장될 수 있다.
사용자는 (예컨대, GPS 컴포넌트(560)를 사용하여) 선택된 위치에 대한 위치 데이터 포인트(565)가 결정될 수 있도록 컴퓨팅 디바이스(500)상의 서비스 애플리케이션을 동작시킬 수 있다. 위치 데이터 포인트(565)는 통신 서브-시스템(540)을 통해 시스템에 무선으로 송신될 수 있다. 시스템은 위치 데이터 포인트(565)에 대응하는 주소 또는 위치 정보를 결정하고 결정된 주소 또는 위치 정보를 컴퓨팅 디바이스(500)에 송신하기 위하여 리버스 지오코딩 프로세스를 수행할 수 있다. 주소 정보(545)는 사용자 인터페이스(515)의 부분으로서 디스플레이(530)상에 주소를 제공하기 위하여 프로세서(510)에 의해 프로세싱될 수 있다.
예컨대, 프로세서(510)는 메모리 리소스(520)에 저장되는 명령 및/또는 애플리케이션을 실행함으로써 디스플레이(730)에 다양한 콘텐츠를 제공할 수 있다. 하나 이상의 사용자 인터페이스(515)는 수신된 주소 정보(545)를 포함할 수 있는 서비스 애플리케이션에 대한 사용자 인터페이스와 같이 프로세서(510)에 의해 제공될 수 있다. 모바일 컴퓨팅 디바이스와 관련하여 도 5가 예시된 반면에, 하나 이상의 실시예는 랩탑 및 데스크탑(예컨대, PC)과 같은 풀-기능 컴퓨터(full-functional computer)를 포함하는 다른 타입의 디바이스상에서 실행될 수 있다.
본원에서 설명된 예가 다른 개념, 사상 또는 시스템과 관계없이 본원에서 설명된 개별 엘리먼트 및 개념으로 확장될 뿐만아니라 예컨대 본 출원서의 다른 위치에서 열거된 엘리먼트의 조합을 포함하는 것이 고려된다. 비록 예가 첨부 도면과 관련하여 본원에서 상세히 설명될지라도, 개념이 이들 바로 그 예로 제한되지 않는다는 것이 이해되어야 한다. 따라서, 개념의 범위가 이하의 청구범위 및 이의 균등물에 의해 정의되어야 한다는 것이 의도된다. 게다가, 개별적으로 설명되거나 또는 예의 일부로서 설명된 특정 특징은 다른 특징 및 예가 그 특정 특징에 대하여 언급하지 않을지라도 다른 개별적으로 설명된 특징 또는 다른 예의 일부와 결합될 수 있다는 것이 고려된다. 따라서, 이러한 조합을 설명하지 않을지라도 그 조합에 대한 권리를 가지는 것을 배제하는 것은 아니다.

Claims (20)

  1. 명령을 저장한 비-일시적 컴퓨터-판독가능 매체로서,
    상기 명령은, 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
    클라이언트 디바이스의 글로벌 포지셔닝 시스템("GPS": Global Positioning System)으로부터 위치 데이터 포인트(location data point)를 하나 이상의 네트워크를 통해 수신하며;
    상기 위치 데이터 포인트가 복수의 미리 정의된 지오펜스(geofence) 중 임의의 지오펜스의 미리 정의된 지역내에 있는지의 여부를 결정하기 위하여 상기 복수의 미리 정의된 지오펜스에 대응하는 데이터를 저장하는 데이터 스토어(data store)에 액세스하며 ― 상기 복수의 미리 정의된 지오펜스 중 적어도 하나는 선택된 구성 세트에 기초함 ―;
    상기 위치 데이터 포인트가 미리 정의된 지역내에 있는 것으로 결정되는 경우에, (i) 상기 미리 정의된 지역의 대응하는 미리 정의된 지오펜스로부터 위치 정보를 식별하며, 그리고 (ii) 식별된 위치 정보를 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하며; 그리고
    상기 위치 데이터 포인트가 임의의 미리 정의된 지역내에 있지 않는 것으로 결정되는 경우에, (i) 상기 클라이언트 디바이스에 위치 정보를 제공하기 위하여 상기 복수의 미리 정의된 지오펜스가 아닌 다른 리소스가 사용되어야 함을 결정하며 그리고 (ii) 상기 시스템이 상기 위치 데이터 포인트를 거리 주소로 전환하는 것을 요청하도록 하기 위하여 하나 이상의 서드 파티 리버스 지오코딩 서비스(third-party reverse geocoding service)가 이용가능한지의 여부를 결정하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  2. 청구항 1에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    상기 위치 데이터 포인트가 상기 미리 정의된 지역내에 있지 않을 때 그리고 하나 이상의 서드 파티 리버스 지오코딩 서비스가 이용가능한 것으로 결정되는 경우에, 상기 위치 데이터 포인트를 상기 거리 주소로 전환하기 위하여 위치 데이터 포인트를 포함하는 요청을 상기 하나 이상의 네트워크를 통해 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  3. 청구항 2에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    상기 위치 데이터 포인트가 미리 정의된 지역내에 있지 않을 때 그리고 하나 이상의 서드 파티 리버스 지오코딩 서비스가 이용가능하지 않는 것으로 결정되는 경우에, (i) 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스로부터 상기 거리 주소를 수신하고 그리고 (ii) 상기 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  4. 청구항 3에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    수송 서비스에 대한 요청을 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스로부터 수신하며 ― 상기 요청은 상기 위치 데이터 포인트를 포함함 ―;
    상기 위치 데이터 포인트에 적어도 부분적으로 기초하여, 상기 수송 서비스를 제공하기 위한 운전자를 상기 시스템에서 선택하며;
    상기 결정된 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 선택된 운전자와 연관된 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  5. 청구항 3에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    수송 서비스에 대한 요청을 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스로부터 수신하며 ― 상기 요청은 상기 위치 데이터 포인트를 포함함 ―;
    상기 위치 데이터 포인트에 적어도 부분적으로 기초하여, 상기 수송 서비스를 제공하기 위한 운전자를 상기 시스템에서 선택하며;
    상기 클라이언트 디바이스의 사용자의 선호 언어가 상기 선택된 운전자의 선호 언어와 매칭되는지의 여부를 결정하며; 그리고
    상기 클라이언트 디바이스의 사용자의 선호 언어가 상기 선택된 운전자의 선호 언어와 매칭되지 않는 경우에, (i) 상기 위치 데이터 포인트를 상기 선택된 운전자의 선호 언어의 거리 주소로 전환하기 위한 제 2 요청을 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스에 송신하며, (ii) 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스로부터 상기 선택된 운전자의 선호 언어의 거리 주소를 수신하며, 그리고 (iii) 상기 선호 언어의 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 선택된 운전자의 상기 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  6. 청구항 1에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    상기 위치 데이터 포인트가 미리 정의된 지역내에 있지 않고 하나 이상의 서드 파티 리버스 지오코딩 서비스가 이용가능하지 않는 것으로 결정되는 경우에, 상기 시스템에 의해 액세스가능한 지도 데이터베이스가 상기 위치 데이터 포인트를 상기 거리 주소로 전환하기 위하여 이용가능한지의 여부를 결정하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  7. 청구항 6에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    상기 시스템의 지도 데이터베이스가 이용가능할 때, (i) 상기 위치 데이터 포인트를 사용하여 상기 지도 데이터베이스를 서치(search)하고, (ii) 저장된 거리 주소를 상기 지도 데이터베이스로부터 검색하며, 그리고 (iii) 검색된 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  8. 청구항 6에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    상기 시스템의 지도 데이터베이스가 이용가능하지 않을 때, (i) 상기 클라이언트 디바이스에 송신될 디폴트 텍스트 스트링(default text string)을 결정하고 그리고 (ii) 상기 디폴트 텍스트 스트링을 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  9. 청구항 1에 있어서,
    상기 위치 데이터 포인트는 위도, 경도 및 에러 값을 포함하며, 상기 위치 데이터 포인트는 지도 사용자 인터페이스 피처(map user interface feature)상의 사용자 입력에 기초하여 상기 클라이언트 디바이스에서 생성되는, 비-일시적 컴퓨터-판독가능 매체.
  10. 위치 정보를 결정하기 위한 방법으로서,
    상기 방법은 시스템의 하나 이상의 프로세서에 의해 수행되며;
    상기 방법은,
    클라이언트 디바이스의 글로벌 포지셔닝 시스템("GPS": Global Positioning System)으로부터 복수의 위치 데이터 포인트를 하나 이상의 네트워크를 통해 수신하는 단계;
    상기 복수의 위치 데이터 포인트 각각의 수신에 대응하여 (a) 시스템에서 상기 위치 데이터 포인트가 복수의 미리 정의된 지오펜스 중 임의의 지오펜스의 미리 정의된 지역내에 있는지의 여부를 결정하기 위하여 상기 복수의 미리 정의된 지오펜스를 포함하는 데이터 스토어에 액세스하는 단계-상기 복수의 미리 정의된 지오펜스 중 적어도 하나는 상기 시스템의 사용자에 의해 구성되는-;
    (b) 상기 적어도 하나의 위치 데이터 포인트가 임의의 미리 정의된 지역내에 있지 않은 경우에, (i) 상기 클라이언트 디바이스에 위치 정보를 제공하기 위하여 상기 복수의 미리 정의된 지오펜스가 아닌 다른 리소스가 사용되어야 함을 결정하며 그리고 (ii) 상기 시스템이 상기 위치 데이터 포인트를 전환하기 위하여 하나 이상의 서드 파티 리버스 지오코딩 서비스가 이용가능함을 결정하는 단계;
    상기 복수의 위치 데이터 포인트 각각을 거리 주소로 전환하기 위한 요청을 상기 하나 이상의 네트워크를 통해 서드 파티 리버스 지오코딩 서비스에 송신하는 단계 ― 상기 요청은 상기 위치 데이터 포인트를 포함함 ―;
    상기 복수의 위치 데이터 포인트 각각에 대응하는 거리 주소를 상기 서드 파티 리버스 지오코딩 서비스로부터 수신하는 단계; 및
    상기 대응하는 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 위치 데이터 포인트를 커뮤니케이팅하는 상기 클라이언트 디바이스에 송신하는 단계를 포함하는, 위치 정보를 결정하기 위한 방법.
  11. 청구항 10에 있어서,
    상기 위치 데이터 포인트는 위도 및 경도를 포함하며, 상기 위치 데이터 포인트는 지도 사용자 인터페이스 피처상의 사용자 입력에 기초하여 상기 클라이언트 디바이스에서 생성되는, 위치 정보를 결정하기 위한 방법.
  12. 청구항 10에 있어서,
    수송 서비스에 대한 요청을 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스로부터 수신하는 단계 ― 상기 요청은 상기 위치 데이터 포인트를 포함함 ―;
    상기 위치 데이터 포인트에 적어도 부분적으로 기초하여, 상기 수송 서비스를 제공하기 위한 운전자를 상기 시스템에서 선택하는 단계;
    상기 대응하는 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 선택된 운전자와 연관된 디바이스에 송신하는 단계를 더 포함하는, 위치 정보를 결정하기 위한 방법.
  13. 청구항 12에 있어서,
    수송 서비스에 대한 요청을 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스로부터 수신하는 단계 ― 상기 수송 서비스에 대한 요청은 상기 위치 데이터 포인트를 포함함 ―;
    상기 위치 데이터 포인트에 적어도 부분적으로 기초하여, 상기 수송 서비스를 제공하는 운전자를 상기 시스템에서 선택하는 단계;
    상기 클라이언트 디바이스의 사용자의 선호 언어가 상기 선택된 운전자의 선호 언어와 매칭되는지의 여부를 결정하는 단계; 및
    상기 클라이언트 디바이스의 사용자의 선호 언어가 상기 선택된 운전자의 선호 언어와 매칭되지 않는다는 결정에 대한 응답으로, (i) 상기 위치 데이터 포인트를 상기 선택된 운전자의 선호 언어의 거리 주소로 전환하기 위한 제 2 요청을 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스에 송신하는 단계, (ii) 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스로부터 상기 선택된 운전자의 선호 언어로 상기 거리 주소를 수신하는 단계, 및 (iii) 상기 선호 언어의 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 선택된 운전자와 연관된 상기 디바이스에 송신하는 단계를 더 포함하는, 위치 정보를 결정하기 위한 방법.
  14. 명령을 저장한 비-일시적 컴퓨터-판독가능 매체로서,
    상기 명령은 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
    위치 데이터 포인트를 클라이언트 디바이스로부터 하나 이상의 네트워크를 통해 수신하며;
    상기 위치 데이터 포인트 및 상기 위치 데이터 포인트가 수신된 시간에 기초하여, 데이터 스토어에 저장된 복수의 미리 정의된 지오펜스로부터의 임의의 시간-기반 지오펜스가 상기 위치 데이터 포인트에 적용가능한지의 여부를 결정하며 ― 각각의 미리 정의된 지오펜스는 미리 정의된 지역과 연관되며, 시간-기반 지오펜스는 또한 일정 시간 기간과 연관됨 ―;
    상기 위치 데이터 포인트가 제 1 시간-기반 지오펜스의 미리 정의된 지역내에 있고 상기 시간이 상기 제 1 시간-기반 지오펜스의 시간 기간내에 있다는 결과로서 상기 제 1 시간-기반 지오펜스가 적용가능한 경우에, (i) 상기 제 1 시간-기반 지오펜스로부터 위치 정보를 식별하고, 그리고 (ii) 식별된 위치 정보를 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하며;
    미리 정의된 지오펜스가 적용가능하지 않는 경우에, (i) 상기 클라이언트 디바이스에 위치 정보를 제공하기 위하여 상기 복수의 미리 정의된 지오펜스가 아닌 다른 리소스가 사용되어야 함을 결정하며, 그리고 (ii) 상기 시스템이 상기 위치 데이터 포인트를 거리 주소로 전환하는 것을 요청하도록 하기 위하여 하나 이상의 서드 파티 리버스 지오코딩 서비스가 이용가능한지 여부를 결정하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  15. 청구항 14에 있어서,
    식별된 위치 정보는 상기 위치 데이터 포인트와 연관된 이벤트(event)를 상기 클라이언트 디바이스의 사용자에게 알리고 특정 위치로 이동할 것을 상기 클라이언트 디바이스의 사용자에게 명령하는 텍스트 스트링을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
  16. 청구항 14에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    미리 정의된 지오펜스가 적용가능하지 않고 하나 이상의 서드 파티 리버스 지오펜스 서비스가 이용가능하면, 상기 위치 데이터 포인트를 상기 거리 주소로 전환하기 위한 요청을 상기 하나 이상의 네트워크를 통해 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스에 송신하도록 하며, 상기 요청은 상기 위치 데이터 포인트를 포함하는, 비-일시적 컴퓨터-판독가능 매체.
  17. 청구항 16에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    미리 정의된 지오펜스가 적용가능하지 않고 하나 이상의 서드 파티 리버스 지오펜스 서비스가 이용가능하면, (i) 상기 하나 이상의 서드 파티 리버스 지오코딩 서비스로부터 상기 거리 주소를 수신하고 그리고 (ii) 상기 수신된 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  18. 청구항 14에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    미리 정의된 지오펜스가 적용가능하지 않고 하나 이상의 서드파티 리버스 지오코딩 서비스가 이용가능하지 않으면, 상기 시스템에 의해 액세스가능한 지도 데이터베이스가 상기 위치 데이터 포인트를 상기 거리 주소로 전환하기 위하여 이용가능한지의 여부를 결정하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  19. 청구항 18에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    상기 시스템의 지도 데이터베이스가 이용가능한 경우에, (i) 상기 위치 데이터 포인트를 사용하여 상기 지도 데이터베이스를 서치하고, (ii) 상기 거리 주소를 상기 지도 데이터베이스로부터 검색하며, 그리고 (iii) 검색된 거리 주소를 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
  20. 청구항 18에 있어서,
    상기 명령은 추가로, 상기 시스템으로 하여금,
    상기 시스템의 지도 데이터베이스가 이용가능하지 않은 경우에, (i) 상기 클라이언트 디바이스에 송신될 디폴트 텍스트 스트링을 결정하며, 그리고 (ii) 상기 디폴트 텍스트 스트링을 상기 하나 이상의 네트워크를 통해 상기 클라이언트 디바이스에 송신하도록 하는, 비-일시적 컴퓨터-판독가능 매체.
KR1020167011765A 2013-10-04 2014-10-03 컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용한 위치 정보 결정 KR101773730B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361887239P 2013-10-04 2013-10-04
US61/887,239 2013-10-04
US14/506,473 US9389096B2 (en) 2013-10-04 2014-10-03 Determining location information using a location data point provided by a computing device
US14/506,473 2014-10-03
PCT/US2014/059183 WO2015051333A1 (en) 2013-10-04 2014-10-03 Determining location information using a location data point provided by a computing device

Publications (2)

Publication Number Publication Date
KR20160065956A KR20160065956A (ko) 2016-06-09
KR101773730B1 true KR101773730B1 (ko) 2017-08-31

Family

ID=52777332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167011765A KR101773730B1 (ko) 2013-10-04 2014-10-03 컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용한 위치 정보 결정

Country Status (8)

Country Link
US (4) US9389096B2 (ko)
EP (1) EP3052964B1 (ko)
JP (1) JP6243524B2 (ko)
KR (1) KR101773730B1 (ko)
CN (2) CN105814453A (ko)
AU (2) AU2014331620B2 (ko)
CA (1) CA2925696C (ko)
WO (1) WO2015051333A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9906902B2 (en) 2015-06-02 2018-02-27 GeoFrenzy, Inc. Geofence information delivery systems and methods
US10121215B2 (en) * 2014-07-29 2018-11-06 GeoFrenzy, Inc. Systems and methods for managing real estate titles and permissions
US9363638B1 (en) 2015-06-02 2016-06-07 GeoFrenzy, Inc. Registrar mapping toolkit for geofences
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
US10375514B2 (en) 2014-07-29 2019-08-06 GeoFrenzy, Inc. Systems, methods and apparatus for geofence networks
US10805761B2 (en) 2014-07-29 2020-10-13 GeoFrenzy, Inc. Global registration system for aerial vehicles
US9875251B2 (en) 2015-06-02 2018-01-23 GeoFrenzy, Inc. Geofence information delivery systems and methods
US11240628B2 (en) 2014-07-29 2022-02-01 GeoFrenzy, Inc. Systems and methods for decoupling and delivering geofence geometries to maps
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
US10582333B2 (en) 2014-07-29 2020-03-03 GeoFrenzy, Inc. Systems and methods for geofence security
US10115277B2 (en) 2014-07-29 2018-10-30 GeoFrenzy, Inc. Systems and methods for geofence security
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
US10237232B2 (en) * 2014-07-29 2019-03-19 GeoFrenzy, Inc. Geocoding with geofences
US11606666B2 (en) 2014-07-29 2023-03-14 GeoFrenzy, Inc. Global registration system for aerial vehicles
CN105740273B (zh) * 2014-12-10 2021-07-27 深圳富泰宏精密工业有限公司 服务提供方法及系统
US10348837B2 (en) * 2014-12-16 2019-07-09 Citrix Systems, Inc. Methods and systems for connecting devices to applications and desktops that are receiving maintenance
US11244254B2 (en) * 2014-12-31 2022-02-08 The City And County Of San Francisco Application-based commercial ground transportation clearinghouse system
US20160189067A1 (en) * 2014-12-31 2016-06-30 The City And County Of San Francisco Application-based commercial ground transportation management system
US10111620B2 (en) * 2015-02-27 2018-10-30 Microsoft Technology Licensing, Llc Enhanced motion tracking using transportable inertial sensors to determine that a frame of reference is established
US10444018B2 (en) 2015-02-27 2019-10-15 Microsoft Technology Licensing, Llc Computer-implemented method to test the sensitivity of a sensor for detecting movement of a tracking device within an established frame of reference of a moving platform
US20160350882A1 (en) * 2015-05-27 2016-12-01 Uber Technologies, Inc. Communicating information to devices based on a characteristic of a service provider
WO2016196496A1 (en) 2015-06-02 2016-12-08 GeoFrenzy, Inc. Geofence information delivery systems and methods
US20160358128A1 (en) * 2015-06-07 2016-12-08 Apple Inc. Travel updates for calendar events
US10121119B2 (en) 2015-08-27 2018-11-06 Indooratlas Oy Order management
US10623251B2 (en) * 2015-10-27 2020-04-14 Cisco Technology, Inc. Private network driven hosted network device management
US11049059B2 (en) 2016-02-03 2021-06-29 Operr Technologies, Inc Method and system for on-demand customized services
US10282681B2 (en) 2016-02-03 2019-05-07 Operr Technologies, Inc. System and method for customizable prescheduled dispatching for transportation services
US10425490B2 (en) 2016-09-26 2019-09-24 Uber Technologies, Inc. Service information and configuration user interface
US10417727B2 (en) 2016-09-26 2019-09-17 Uber Technologies, Inc. Network system to determine accelerators for selection of a service
US10477504B2 (en) * 2016-09-26 2019-11-12 Uber Technologies, Inc. Network service over limited network connectivity
US10417663B2 (en) 2016-10-28 2019-09-17 International Busienss Machines Corporation Ephemeral geofence campaign system
US10673945B2 (en) * 2016-11-04 2020-06-02 Sap Se Framework for data geocoding
CN106454743B (zh) * 2016-11-29 2020-03-24 北京米可世界科技有限公司 地理位置异步获取方法
US9924315B1 (en) * 2017-01-03 2018-03-20 International Business Machines Corporation Dynamic geofence
US9820097B1 (en) 2017-01-05 2017-11-14 International Business Machines Corporation Geofence location detection
CN108664527A (zh) * 2017-04-01 2018-10-16 艺龙网信息技术(北京)有限公司 用于反地理解析的方法和装置
US11087287B2 (en) 2017-04-28 2021-08-10 Uber Technologies, Inc. System and method for generating event invitations to specified recipients
US10721327B2 (en) 2017-08-11 2020-07-21 Uber Technologies, Inc. Dynamic scheduling system for planned service requests
US10171940B1 (en) 2017-09-07 2019-01-01 International Business Machines Corporation Transportation activated geofence
KR20190124938A (ko) 2018-04-27 2019-11-06 안 데이비드 탈 중앙 집중형 p2p 라이드쉐어 시스템
WO2020041945A1 (en) 2018-08-27 2020-03-05 Beijing Didi Infinity Technology And Development Co., Ltd. Artificial intelligent systems and methods for displaying destination on mobile device
US11094200B2 (en) 2018-11-02 2021-08-17 Allstate Insurance Company Dynamic processing system for roadside service control and output generation
US20210291883A1 (en) * 2020-01-23 2021-09-23 Ttx Company Systems and Methods for Verifying Railcar Location
US11243827B2 (en) * 2020-06-26 2022-02-08 Salesforce.Com, Inc. Controlling location-based features with usage maps
US11668784B2 (en) * 2021-11-05 2023-06-06 T-Mobile Innovations Llc Method to determine the quality of civic address produced by reverse geocoder
CN117033532A (zh) * 2023-07-20 2023-11-10 长江信达软件技术(武汉)有限责任公司 一种涉水问题取证方法、设备及存储设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100317368A1 (en) 2009-06-11 2010-12-16 Wavemarket, Inc. Mobile device communication system and method
US20130196692A1 (en) 2010-04-20 2013-08-01 Apple Inc. Context-based reverse geocoding

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020054082A1 (en) 1999-01-02 2002-05-09 Karpf Ronald S. System and method for providing accurate geocoding of responses to location questions in a computer assisted self interview
GB2400175B (en) 2003-02-26 2007-11-28 Tomtom Bv Navigation device and method for exchanging data between resident applications
US7532979B2 (en) * 2005-11-10 2009-05-12 Tele Atlas North America, Inc. Method and system for creating universal location referencing objects
US20080132243A1 (en) * 2006-11-30 2008-06-05 Sony Ericsson Mobile Communications Ab Device and method for providing location information on a portable mobile communications device
GB0700539D0 (en) * 2007-01-11 2007-02-21 British Telecomm Accession of position-related data
WO2009029910A2 (en) 2007-08-31 2009-03-05 Proxpro, Inc. Situation-aware personal information management for a mobile device
WO2009079469A1 (en) 2007-12-14 2009-06-25 Promptu Systems Corporation Automatic service vehicle hailing and dispatch system and method
US7865308B2 (en) 2007-12-28 2011-01-04 Yahoo! Inc. User-generated activity maps
US8090389B2 (en) * 2008-01-16 2012-01-03 Research In Motion Limited Method of displaying a map on a phone screen
US8635192B2 (en) 2008-02-28 2014-01-21 Blackberry Limited Method of automatically geotagging data
US8311556B2 (en) * 2009-01-22 2012-11-13 Htc Corporation Method and system for managing images and geographic location data in a mobile device
US8358224B2 (en) 2009-04-02 2013-01-22 GM Global Technology Operations LLC Point of interest location marking on full windshield head-up display
US8503762B2 (en) 2009-08-26 2013-08-06 Jacob Ben Tzvi Projecting location based elements over a heads up display
US8611326B2 (en) * 2009-09-03 2013-12-17 Apple Inc. Location histories for location aware devices
EE01148U1 (et) * 2009-12-03 2013-01-15 T+1 Solutions O� Meetod taksoteenuse tellimiseks telekommunikatsioonissteemis
WO2011069170A1 (en) * 2009-12-04 2011-06-09 Uber, Inc. System and method for arranging transport amongst parties through use of mobile devices
EP2534445B1 (en) * 2009-12-14 2015-07-29 Tomtom Polska SP.Z.O.O. Method and apparatus for evaluating an attribute of a point of interest
US20120041675A1 (en) * 2010-08-10 2012-02-16 Steven Juliver Method and System for Coordinating Transportation Service
US8902260B2 (en) * 2010-09-01 2014-12-02 Google Inc. Simplified creation of customized maps
WO2012072862A1 (en) * 2010-11-30 2012-06-07 Nokia Corporation Method and apparatus for predicting and pre-fetching location information
US20120158445A1 (en) 2010-12-16 2012-06-21 Cox Communications, Inc. Geo-Spatial Mapping and Service Provision Analysis
US8538679B1 (en) * 2011-04-08 2013-09-17 Oberweis Dairy, Inc. Enhanced geocoding
US20130072226A1 (en) * 2011-09-21 2013-03-21 Jeff Thramann Systems and Methods for Tracking Mobile Devices
US8538956B1 (en) 2011-09-28 2013-09-17 Google Inc. Geocoding results using geotopic annotation of web search results
US9146115B2 (en) 2011-10-18 2015-09-29 Microsoft Technology Licensing, Llc Location enhanced meetings and collaboration
US8806322B2 (en) * 2011-11-28 2014-08-12 Google Inc. System and method for obtaining a structured address by geocoding unstructured address information
AU2012360732B2 (en) * 2011-12-29 2018-02-01 P2S Media Group Oy Method and apparatus for providing metadata search codes to multimedia
US20130338512A1 (en) 2012-03-12 2013-12-19 Ivwatch, Llc System and Method for Mitigating the Effects of Tissue Blood Volume Changes to Aid in Diagnosing Infiltration or Extravasation in Animalia Tissue
US9262540B2 (en) 2012-07-09 2016-02-16 Facebook, Inc. Ranking location query results based on social networking
US20140067901A1 (en) 2012-07-24 2014-03-06 Blake Shaw System and method for contextual messaging in a location-based network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100317368A1 (en) 2009-06-11 2010-12-16 Wavemarket, Inc. Mobile device communication system and method
US20130196692A1 (en) 2010-04-20 2013-08-01 Apple Inc. Context-based reverse geocoding

Also Published As

Publication number Publication date
US9482549B2 (en) 2016-11-01
CN105814453A (zh) 2016-07-27
US20150099461A1 (en) 2015-04-09
AU2017203814B2 (en) 2017-08-31
US9933274B2 (en) 2018-04-03
JP6243524B2 (ja) 2017-12-06
CN106454745A (zh) 2017-02-22
CA2925696A1 (en) 2015-04-09
JP2016540191A (ja) 2016-12-22
EP3052964A4 (en) 2017-06-07
US20170343377A1 (en) 2017-11-30
WO2015051333A1 (en) 2015-04-09
US9778063B2 (en) 2017-10-03
AU2014331620A1 (en) 2016-04-21
EP3052964A1 (en) 2016-08-10
CA2925696C (en) 2018-05-15
EP3052964B1 (en) 2021-06-30
US20150185041A1 (en) 2015-07-02
KR20160065956A (ko) 2016-06-09
US20170030732A1 (en) 2017-02-02
US9389096B2 (en) 2016-07-12
AU2017203814A1 (en) 2017-06-29
AU2014331620B2 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
KR101773730B1 (ko) 컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용한 위치 정보 결정
US10244361B1 (en) System and method of wireless downloads of map and geographic based data to portable computing devices
CA2958776C (en) Providing route information to devices during a shared transport service
US9392416B2 (en) Method and apparatus for predicting and pre-fetching location information
US7620404B2 (en) Methods and apparatus for organizing and presenting contact information in a mobile communication system
US8432897B2 (en) System and method of presenting caller identification information at a voice over internet protocol communication device
US20060080032A1 (en) System and method of wireless downloads of map and geographic based data to portable computing devices
US20060058951A1 (en) System and method of wireless downloads of map and geographic based data to portable computing devices
US20120054204A1 (en) Providing results to parameterless search queries
KR20170041237A (ko) 미리 결정된 위치 데이터 포인트를 결정하고, 서비스 제공자에게 제공하는 방법
US9585184B1 (en) Using multiple wireless connections
US9250765B2 (en) Changing icons for a web page
US20160187143A1 (en) Mechanism for facilitating dynamic location-based zone management for computing systems
US9043414B1 (en) Geo-dynamic email lists
US11477717B2 (en) Providing signal quality information for a non-primary base station
KR20040048465A (ko) 이동객체의 위치모니터링과 이동경로 탐색 시스템
US9037650B2 (en) Device-agnostic cloud and device-based user to user communication timeline/mosaic
US20180189290A1 (en) Content object indexing and resolution system

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant