KR20140009283A - 라우트 안내의 방법 및 장치 - Google Patents

라우트 안내의 방법 및 장치 Download PDF

Info

Publication number
KR20140009283A
KR20140009283A KR20137017460A KR20137017460A KR20140009283A KR 20140009283 A KR20140009283 A KR 20140009283A KR 20137017460 A KR20137017460 A KR 20137017460A KR 20137017460 A KR20137017460 A KR 20137017460A KR 20140009283 A KR20140009283 A KR 20140009283A
Authority
KR
South Korea
Prior art keywords
map
route
data
location
partition data
Prior art date
Application number
KR20137017460A
Other languages
English (en)
Other versions
KR101892675B1 (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 KR20140009283A publication Critical patent/KR20140009283A/ko
Application granted granted Critical
Publication of KR101892675B1 publication Critical patent/KR101892675B1/ko

Links

Images

Classifications

    • 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
    • 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/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3415Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
    • 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
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3881Tile-based structures
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3885Transmission of map data to client devices; Reception of map data by client devices
    • G01C21/3889Transmission of selected map data, e.g. depending on route
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/0969Systems involving transmission of navigation instructions to the vehicle having a display in the form of a map
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)
  • Traffic Control Systems (AREA)

Abstract

사용자 디바이스 상에 라우트 안내의 시스템들 및 방법들이 제공된다. 일 양상에서, 시스템 및 방법은 클라이언트 디바이스(150)에 지도 데이터의 파티션들(701 내지 703)을 전송한다(1302, 1305). 각각의 지도 파티션은 도로 형상들, 도로명, 도로망 토폴로지 또는 상기 파티션 내에서 턴-바이-턴 네비게이션 또는 운전 방향들을 제공하는데 필요로 되는 어떤 다른 정보를 포함할 수 있다. 각각의 지도 파티션(701 내지 703)은 이들이 함께 결합되어 더 큰 지도를 형성하도록 하기에 충분한 데이터가 인코딩될 수 있다. 지도 파티션들은 네트워크 단절 또는 다른 네트워크 연결의 손실의 경우에 사용되는 각 라우트를 따라 페치될 수 있다. 예를 들어, 사용자가 본래의 라우트로부터 이탈하고(1307) 네트워크 단절이 발생하면, 상기 지도 데이터가 에셈블될 수 있고 라우팅 알고리즘이 상기 지도 데이터에 적용되어서(1310) 본래의 라우트로 되돌아가도록 사용자에게 안내할 수 있다(1311).

Description

라우트 안내의 방법 및 장치{METHOD AND APPARATUS OF ROUTE GUIDANCE}
[관련 출원의 상호 참조]
본 출원은 2010년 12월 7일자로 출원된 미국 가특허 출원 제61/420,515호의 출원일의 이익을 주장하며, 상기 출원은 본 명세서에 참조로서 포함된다.
[기술분야]
본 출원은 일반적으로 네비게이션(navigation) 시스템들에 관련한다.
휴대용 전자 디바이스들의 출현과 함께, 이제 네비게이션 시스템들은 전세계의 여러 사용자들에게 더욱 일반화되었다. 모바일 전화기들, PDA들 및 랩탑/팜탑(palmtop) 컴퓨터들과 같은 휴대용 전자 디바이스들("클라이언트 디바이스들")이 특정한 목적지로의 이동 중에 사용될 수 있다. 네비게이션 서버들은 통상적으로, 목적지로의 방향들에 대한 요청들을 클라이언트 디바이스로부터 수신하고, 지도 데이터에 라우팅 알고리즘들을 적용시킴으로써 라우트들을 생성하며 그리고 후속적으로, 상기 클라이언트 디바이스에 상기 라우트를 제공한다. 또한, 클라이언트 디바이스들은 지도 데이터 및 라우팅 알고리즘들을 지역적으로 저장하고, 이들로 하여금 네비게이션 서버의 보조없이 라우트들을 생성하도록 한다.
상기 지도 데이터는 일반적으로, 스트리트(street)들의 위치들, 스트리트들 사이의 연결들 및 이들 사이의 전환의 비용에 관련된 정보를 포함한다. 상기 지도 데이터는 도표(graph)로서 알려진 링크들("아크들(arcs)")에 의해 연결된 데이터 객체들("세그먼트들")의 세트로서 모델링될 수 있다. 도표 데이터 모델에서, 각 세그먼트는 스트리트를 나타내고, 아크들은 다음 스트리트로의 전환을 나타낸다. 다익스트라의 알고리즘(Dijkstra's algorithm)과 같은 여러 대중적인 라우팅 알고리즘들이 상기 도표 모델 내에서 동작하도록 설계된다. 종래의 도표 이론 개념들을 이용함으로써, 라우팅 알고리즘들은 매트릭스들(예컨대, 거리, 시간 등)에 근거하여 최적의 라우트를 계산하는 것을 시도한다.
라우트를 결정한 이후에, 네비게이션 서버들은 요청하는 클라이언트 디바이스에 상기 라우트를 반환하고, 그리하여 상기 라우트의 지도 이미지는 그 다음, 상기 클라이언트 디바이스의 스크린 상에 렌더링(render)된다. 사용자가 본래의 라우트로부터 이탈하면, 상기 클라이언트 디바이스는 현재의 위치에 근거하여 새로운 라우트를 생성하기 위해서 상기 네비게이션 서버에 추가적인 라우트 요청을 할 수 있다. 그러나, 네트워크 단절의 경우에서, 상기 클라이언트 디바이스는 상기 네비게이션 서버 상의 지도 데이터 및 라우팅 알고리즘들로의 어떤 액세스도 가지지 못할 수 있다.
지도 데이터를 다운로드하는 시스템들의 경우, 상기 시스템들은, 구식의 정보에 근거하여 라우트들을 생성하는 것을 회피하기 위해 사용자들이 새로운 지도 데이터를 정기적으로 다운로드할 수 있게 한다.
일 양상에서, 클라이언트 디바이스로 하여금 최신 데이터의 지도 데이터를 사용하여 라우팅 정보를 생성하도록 하는 시스템 및 방법이 제공된다.
다른 양상에서, 사용자 디바이스 상의 매핑을 위한 라우트 안내의 방법이 제시되는 바, 상기 방법은 원격 컴퓨터로부터 복수의 지도 파티션 데이터를 프리페치(prefetch)할 수 있고, 상기 복수의 지도 파티션 데이터 각각은 운전 방향들을 생성하기 위한 정보가 인코딩된다. 그 다음, 상기 복수의 지도 파티션 데이터는 메모리에 저장되고, 원격 컴퓨터가 액세스가능한지 결정될 수 있다. 상기 원격 컴퓨터가 액세스가능하지 않음이 결정되면, 상기 복수의 지도 파티션 데이터는 상기 메모리로부터 검색될 수 있다. 지리적 영역을 나타내는 지도 데이터는 어셈블될 수 있고, 상기 지도 데이터는 상기 복수의 지도 파티션 데이터의 집합체(assemblage)이다. 그 다음, 목적지로의 최적의 라우트가 상기 지도 데이터를 사용하여 생성될 수 있다.
추가의 양상은 적어도 하나의 모듈을 저장하는 메모리를 포함하는 장치를 제공하고, 상기 메모리는 복수의 지도 파티션 데이터를 저장하도록 동작되는 캐시 메모리를 구비한다. 프로세서는 상기 적어도 하나의 모듈의 명령들에 따라 상기 복수의 지도 파티션 데이터를 프로세스하도록 상기 메모리와 통신할 수 있다. 또한, 상기 장치는, 상기 프로세서와 통신하고 상기 프로세서로부터 수신된 정보를 디스플레이하는 디스플레이를 포함할 수 있다. 상기 적어도 하나의 모듈은 명령들을 포함하는 바, 상기 명령들은 원격 컴퓨터로부터 복수의 지도 파티션 데이터를 프리페치하고, 상기 복수의 지도 파티션 데이터 각각은 운전 방향들을 생성하기 위한 정보가 인코딩되며; 메모리에 상기 복수의 지도 파티션 데이터를 저장하고; 상기 원격 컴퓨터가 액세스가능한지 결정하며; 상기 원격 컴퓨터가 액세스가능하지 않음이 결정되면, 상기 메모리로부터 상기 복수의 지도 파티션 데이터를 검색하고; 지리적 영역을 나타내는 지도 데이터를 어셈블하며, 상기 지도 데이터는 상기 복수의 지도 파티션 데이터의 집합체이고; 그리고 상기 지도 데이터를 이용하여 목적지로의 최적의 라우트를 생성하도록 한다.
또다른 양상에서, 지도 데이터를 공급하는 방법이 제공되는 바, 상기 방법은 제1 목적지로의 최적의 라우트를 생성할 수 있다. 복수의 지도 파티션 데이터에 대한 요청이 클라이언트 디바이스로부터 수신되고, 상기 지도 파티션 데이터는 지리적 영역을 나타내는 지도 데이터의 일부들일 수 있다. 또한, 상기 지도 데이터는 제2 목적지로 향하는 라우트의 생성을 위해 동작가능할 수 있다. 그 다음, 상기 복수의 지도 파티션 데이터는 검색될 수 있다. 그 다음, 상기 복수의 지도 파티션 데이터는 상기 클라이언트 디바이스에 전송될 수 있다.
추가의 양상에서, 서버, 적어도 하나의 모듈 및 복수의 지도 파티션 데이터를 저장하는 메모리, 및 상기 적어도 하나의 모듈 내의 명령들에 따라 상기 복수의 지도 파티션 데이터를 프로세스하도록 상기 메모리와 통신하는 프로세서를 포함하는 시스템이 제공된다. 상기 적어도 하나의 모듈은 명령들을 가질 수 있는 바, 상기 명령들은 제1 목적지로의 최적의 라우트를 생성하고; 지리적 영역을 나타내는 지도 데이터의 일부들인 복수의 지도 파티션 데이터에 대한 요청을 클라이언트 디바이스로부터 수신하며, 상기 지도 데이터는 제2 목적지로 향하는 라우트의 생성을 위해 동작가능하고; 상기 복수의 지도 파티션 데이터를 검색하며; 그리고 상기 클라이언트 디바이스에 상기 복수의 지도 파티션 데이터를 전송하도록 한다.
또다른 양상에서, 디바이스 상의 라우트를 디스플레이하는 방법이 제공되는 바, 상기 방법은 네트워크를 통해 제1 컴퓨터에 시작 위치 및 목적지 위치를 전송하고, 상기 제1 컴퓨터는 도로 위치들의 제1 세트를 식별하는 데이터로의 액세스를 가질 수 있다. 상기 제1 세트의 서브세트로부터 선택된 도로 위치들의 제2 세트는 상기 네트워크를 통해 상기 제1 컴퓨터로부터 수신될 수 있고, 상기 도로 위치들의 제2 세트는, 상기 시작 위치와 목적지 위치 사이의 인접한 일련의 도로 위치들을 포함하는 제1 라우트를 포함하고, 상기 제1 라우트에 근접한 지리적 영역 내에 있는 추가적인 도로 위치들을 더 포함한다. 디바이스의 현재 위치를 식별하는 데이터가 상기 디바이스의 현재의 위치는 상기 제1 라우트에서의 도로 위치들과 다름을 표시하는 경우, 인접한 도로 위치들의 제2 라우트는 상기 제2 세트에 포함된 도로 위치들에 근거하여 결정될 수 있으며, 여기서 상기 제2 라우트는 상기 디바이스가 상기 제1 컴퓨터로부터 도로 위치들의 식별을 수신할 수 없을 때 결정된다. 그 다음, 상기 제2 라우트는 디스플레이 상에 디스플레이될 수 있다.
추가의 양상에서, 디바이스 상에 라우트를 디스플레이하는 시스템이 제공되는 바, 상기 시스템은 적어도 하나의 모듈을 저장하는 메모리, 상기 메모리와 통신하는 프로세서, 및 상기 프로세서와 통신하고 상기 프로세서로부터 수신된 정보를 디스플레이하는 디스플레이를 포함한다. 상기 적어도 하나의 모듈은 명령들을 가지는 바, 상기 명령들은 프로세서에게, 네트워크를 통해 제1 컴퓨터에 시작 위치 및 목적지 위치를 전송하고, 상기 제1 컴퓨터는 도로 위치들의 제1 세트를 식별하는 데이터로의 액세스를 가지며; 상기 제1 세트의 서브세트로부터 선택된 도로 위치들의 제2 세트를 상기 네트워크를 통해 그리고 상기 컴퓨터로부터 수신하며, 상기 도로 위치들의 제2 세트는 상기 시작 위치와 상기 목적지 위치 사이에 인접한 일련의 도로 위치들을 포함하는 제1 라우트를 포함하고 상기 제1 라우트에 근접한 지리적 영역 내에 있는 추가적인 도로 위치들을 더 포함하며; 디바이스의 현재의 위치를 식별하는 데이터가 상기 디바이스의 현재의 위치는 상기 제1 라우트 내의 도로 위치들과 다름을 나타낼 때, 상기 제2 세트 내에 포함된 도로 위치들에 근거하여 인접한 도로 위치들의 제2 라우트를 결정하고, 상기 제2 라우트는 상기 디바이스가 상기 제1 컴퓨터로부터 도로 위치들의 식별을 수신하지 못할 때 결정되며; 그리고 디스플레이 상에 상기 제2 라우트를 디스플레이하도록 명령한다.
다른 양상에서, 도로 데이터를 공급하는 방법이 제공되는 바, 상기 방법은 네트워크를 통해 제1 컴퓨터로부터 시작 위치 및 목적지 위치를 수신하고, 제1 세트의 서브세트로부터 선택된 도로 위치들의 제2 세트를 상기 제1 컴퓨터에 전송하며, 여기서 상기 도로 위치들의 제2 세트는 상기 시작 위치 및 목적지 위치 사이에 인접한 일련의 도로 위치들을 포함하는 제1 라우트를 포함하고, 상기 제1 라우트에 근접한 지리적 영역 내에 있는 추가적인 도로 위치들을 더 포함한다.
도 1은 시스템의 기능도이다.
도 2는 시스템의 도해이다.
도 3은 간단한 지도 이미지이다.
도 4는 라우트의 지도 데이터 모델의 예를 예시하는 도해이다.
도 5는 서브-지도 영역의 지도 데이터 모델을 예시하는 다른 도해이다.
도 6은 지도의 집합을 예증하는 기능도이다.
도 7은 사용자가 주 라우트로부터 이탈함을 도시하는 다른 지도 이미지이다.
도 8은 스크린 샷 예이다.
도 9는 라우터를 따라 미리 결정된 서브-지도 영역들을 예증하는 지도 이미지의 예이다.
도 10은 방법의 흐름도이다.
도 11은 방법의 흐름도이다.
도 12는 방법의 흐름도이다.
일 양상에서, 파티션된 지도 데이터가 클라이언트 디바이스 또는 사용자 디바이스에 전송된다. 각각의 지도 파티션은 도로 형상들, 도로명들, 도로망 토폴로지 또는 상기 파티션 내의 운전 방향들을 제공하기 위해 필요로되는 어떤 다른 정보와 같은 도로 데이터를 포함할 수 있다. 각각의 지도 파티션은, 상기 파티션들이 함께 결합(stitch)되어 더 큰 지도를 형성하도록 하기에 충분한 데이터가 인코딩될 수 있다. 지도 파티션들은 네비게이션 서버가 액세스가능하지 않은 경우에 사용되는 각 라우트를 따라 페치될 수 있다. 예를 들어, 사용자가 본래의 라우트로부터 이탈하고 네트워크 단절이 발생하면, 상기 지도 데이터는 어셈블될 수 있고, 라우팅 알고리즘은 사용자가 본래의 라우트에 되돌아가도록 안내하기 위해서 상기 지도 데이터에 적용될 수 있다.
도 1 내지 2에 도시된 바와 같이, 시스템(100)은 이미지 타일(tile) 서버(110) 및 라우팅 서버(120)를 포함하고, 이들 각각은 프로세서(210), 메모리(220) 그리고 범용 컴퓨터들에 통상적으로 존재하는 다른 컴포넌트들을 포함한다. 또한, 도 1은 프로세서(151) 및 메모리(162)를 포함하는 클라이언트 디바이스 또는 사용자 디바이스(150)를 도시한다.
메모리들(220 및 162)은 프로세서들(210 및 151)에 의해 실행되는 명령들 및 프로그램들을 저장할 수 있고, 지도 익스포터 모듈(240), 프리페쳐 모듈(153) 및 지역적 지도 라우터 모듈(154)을 포함한다. 또한, 메모리들(220 및 162)은, 라우팅 서버(120)의 비가공 지도 데이터(272) 및 이미지 타일 서버(110)의 지도 이미지 타일들(271)과 같이, 프로세서들(210 및 151)에 의해 검색되고, 조작되거나 또는 저장될 수 있는 데이터를 포함할 수 있다. 상기 메모리들(220 및 162)은, 하드-드라이브, 메모리 카드, RAM, DVD, CD-ROM 및 기록-가능한 메모리들과 같이, 프로세서들(210 및 151)에 의해 액세스가능한 정보를 저장할 수 있는 어떤 타입으로 이루어질 수 있다. 상기 프로세서들(210 및 151)은 인텔 코오포레이션 또는 어드밴스드 마이크로 디바이시즈로부터의 프로세서들과 같이 어떤 잘 알려진 프로세서들일 수 있다. 대안적으로는, 상기 프로세서들은 ASIC과 같은 전용 컨트롤러들일 수 있다.
상기 지도 익스포터 모듈(240)은 상기 프로세서에 의해 직접적으로 실행되는 (기계 코드와 같은) 또는 간접적으로 실행되는 (스크립트들과 같은) 명령들의 어떤 세트일 수 있다. 유사하게, 프리페쳐 모듈(153) 및 지역적 지도 라우터 모듈(154)은 또한, 상기 프로세서에 의해 직접적으로 또는 간접적으로 실행되는 명령들의 어떤 세트일 수 있다. 이러한 점과 관련하여, 여기에 사용된 용어, "명령들", "단계들" 및 "프로그램들"은 상호교환가능하게 사용될 수 있다. 상기 명령들은 상기 프로세서에 의해 직접 프로세싱하기 위한 객체 코드 포맷으로 저장될 수 있거나, 또는 요구에 따라 해석되거나 사전에 컴파일된 독립적인 소스 코드 모듈들의 스크립트들 또는 콜렉션(collection)들을 포함하는 어떤 다른 컴퓨터 언어로 저장될 수 있다. 상기 명령들의 기능들, 방법들 및 루틴들(routines)이 하기에 더욱 상세히 설명된다.
비록 도 1이 동일한 각 블록들 내에 존재하는 것으로서 상기 프로세서들 및 메모리들을 기능적으로 도시하고 있지만은, 상기 프로세서들 및 메모리들은 실제로, 동일한 물리적 하우징(housing) 내에 저장될 수 있거나 저장되지 않을 수 있는 복수의 프로세서들 및 메모리들을 포함함이 이해될 것이다. 예를 들어, 명령들 및 데이터의 일부는 탈착가능한 CD-ROM에 저장되고 다른 명령들 및 데이터는 판독-전용 컴퓨터 칩 내에 저장될 수 있다. 상기 명령들 및 데이터의 일부 또는 전부는 상기 프로세서에 의해 액세스가능 하면서도 상기 프로세서로부터 물리적으로 원격인 위치에 저장될 수 있다. 유사하게, 소정의 프로세서는 실제로, 병행하여 동작할 수 있거나 또는 동작할 수 없는 프로세서들의 콜렉션을 포함할 수 있다.
또한, 라우팅 서버(120)는, 부하 균형 네트워크(load balancing network)와 같은 복수의 컴퓨터들을 포함할 수 있는 바, 상기 복수의 컴퓨터들은, 지도 데이터를 수신하고, 프로세싱하며 그리고 복수의 클라이언트 디바이스에 전송하기 위해 네트워크의 서로 다른 노드들로 정보를 교환한다. 이 예에서, 상기 클라이언트 디바이스들은 통상적으로, 라우팅 서버(120)를 포함하는 어떤 컴퓨터들과 다른 네트워크 노드들에 여전히 존재할 것이다.
일 양상에서, 라우팅 서버(120)는 도 2에 도시된 바와 같이 하나 이상의 클라이언트 컴퓨터들(150, 170)과 통신한다. 각 클라이언트 디바이스(150, 170)는 개인(190 내지 191)에 의한 사용을 위해 의도된 랩탑 컴퓨터일 수 있는 바, 상기 랩탑 컴퓨터는 디스플레이(160)(예컨대, 스크린, 터치-스크린, 소형 LCD 스크린 을 가지는 모니터 또는 프로세서에 의해 프로세싱된 정보를 디스플레이하도록 동작가능한 전자 디바이스와 같은 다른 디바이스), CD-ROM, 하드-드라이브, 사용자 입력(예컨대, 마우스, 키보드, 터치-스크린 또는 마이크), 스피커들, 모뎀 및/또는 네트워크 인터페이스 디바이스(전화기, 케이블 또는 기타 등등) 및 이러한 요소들을 다른 요소에 연결하기 위해 사용되는 컴포넌트들 모두와 같이 랩탑 컴퓨터 내에서 일반적으로 발견되는 모든 컴포넌트들을 가진다.
비록 클라이언트 컴퓨터들(150 및 170)이 랩탑 컴퓨터들을 포함하더라도, 상기 시스템 및 방법은 또한, 인터넷과 같은 네트워크를 통해 서버와 데이터를 무선으로 교환할 수 있는 모바일 디바이스들과 연결되어 사용될 수 있다. 예를 들어, 클라이언트 컴퓨터(170)는 무선으로 동작되는 PDA 또는 인터넷-케이블 셀룰러 폰일 수 있다. 어느 것이든, 사용자는 (전형적인 셀 폰의 경우) 키보드를 이용하여, (PDA의 경우) 터치 스크린을 이용하여 또는 다른 어떤 사용자 입력 수단들을 이용하여 정보를 입력할 수 있다.
클라이언트 컴퓨터들(150 및 170)은 디바이스의 지리적 위치를 결정하기 위한 컴포넌트를 포함할 수 있다. 예를 들어, 모바일 디바이스(170)는 GPS 수신기(155)를 포함할 수 있다. 추가의 예를 들어, 상기 컴포넌트는, 상기 모바일 디바이스가 셀 폰인 경우, 하나 이상의 셀 폰 기지국(cell phone tower)들로부터 셀 폰의 안테나에 수신된 신호와 같이 상기 모바일 디바이스(170)에 수신된 다른 신호들에 근거하여 상기 디바이스의 위치를 결정하는 소프트웨어를 포함할 수 있다.
이미지 타일 서버(110), 라우팅 서버(120) 및 클라이언트 컴퓨터들(150 및 170)은 서로와 직접 통신 및 네트워크(295)를 통해서와 같이 간접 통신할 수 있다. 비록, 단지 몇몇 컴퓨터들만이 도 1 내지 2에 도시되었지만, 통상의 시스템이 다수의 연결된 컴퓨터들을 포함할 수 있고, 각각의 서로 다른 컴퓨터는 네트워크(295)의 서로 다른 노드에 있음이 이해되어야만 한다. 상기 네트워크 및 중재 노드들(intervening nodes)은 인터넷, 월드 와이드 웹, 인트라넷, 가상 사설 네트워크들, 광역 네트워크들, 지역 네트워크들, 하나 이상의 회사들 소유의 통신 프로토콜을 이용한 사설 네트워크들, 이더넷, 와이파이 및 HTTP, 그리고 상술한 것들의 다양한 조합들을 포함하는 다양한 구성들 및 프로토콜들을 포함할 수 있다. 이러한 통신은 모뎀들(예컨대, 다이얼 접속(dial-up), 케이블 또는 광섬유) 및 무선 인터페이스와 같이, 다른 컴퓨터들에 그리고 다른 컴퓨터로부터 데이터를 전송할 수 있는 어떤 디바이스에 의해 용이하게 이루어질 수 있다.
비가공 지도 데이터(272)는 지도 익스포터 모듈(240) 및 프리페쳐 모듈(153), 그리고 지역적 지도 라우터 모듈(154) 내의 명령들에 따라 프로세서들(210 및 151)에 의해 검색되고, 저장되거나 또는 수정될 수 있다. 비록, 상기 시스템 및 방법이 어떤 특별한 데이터 구조에 의해 제한되지 않더라도 이들의 데이터는 컴퓨터 레지스터들에 저장되고, 복수의 서로 다른 필드들 및 레코드들을 가지는 테이블, 확장 마크업 언어("XML") 문서들 또는 플랫 파일들로서 관련 데이터베이스에 저장될 수 있다. 또한, 상기 데이터는 어떤 컴퓨터-판독가능 포맷으로 포맷될 수 있다. 비가공 지도 데이터(272)는 라우트들을 생성하는데 사용되는 도로 데이터를 포함할 수 있다.
이미지 타일 서버(110)의 지도 데이터베이스(270)는 지도-관련 정보를 바람직하게 저장하고, 상기 정보의 적어도 일부는 클라이언트 디바이스에 전송될 수 있다. 예를 들어, 지도 데이터베이스(270)는 지도 이미지 타일들(271)을 저장할 수 있고, 각 타일은 특별한 지리적 영역의 지도 이미지이다. 해상도에 따라(예컨대, 지도가 줌인(zoom in)되거나 또는 줌아웃(zoom out)되는지에 따라) 하나의 타일은 비교적으로 덜 상세하게 주(state)와 같은 전체 영역을 커버할 수 있다. 다른 타일은 매우 상세하게 단지 몇몇 스트리트들을 커버할 수 있다. 상기 지도 정보는 어떤 특별한 포맷에 제한되지 않는다. 예를 들어, 이미지들은 스트리트 지도들, 위성 이미지들 또는 이들의 조합을 포함할 수 있고, (특히 스트리트 지도들에 관하여) 벡터들로서 또는 (특히 위성 이미지들에 관하여) 비트맵들로서 저장될 수 있다. 다양한 지도 타일들은, 상기 지도 타일 서버(110)가 지리적 위치를 수신함에 응답하여 하나 이상의 타일들을 선택, 검색 및 전송할 수 있도록 지리적 위치들과 각각 관련된다. 지도 타일 위치들은 지리적 영역을 식별할 수 있는 타일 좌표들 또는 다른 데이터로서 표현될 수 있다.
라우팅 서버(120)의 데이터(230)에 포함된 지도 데이터베이스(280)는 하나 이상의 지리적 영역들을 커버하는 도로 데이터의 지도 파티션들로 구성된 비가공 지도 데이터(272)를 저장할 수 있다. 예를 들어, 각 지도 파티션은 특별한 지역(neighborhood), 시, 주, 국가 등을 표시할 수 있다. 하기에 더욱 상세히 설명될 바와 같이, 각각의 지도 파티션은 다른 지도 파티션들에 어셈블되거나 또는 결될 수 있다. 복수의 지도 파티션들을 결합하는 것은 더 큰 지도 표시를 형성할 수 있다. 지도 위치들은 위도/경도 위치들로서 또는 하나 이상의 지리적 위치들을 식별할 수 있는 다른 데이터로서 표현될 수 있다. 일 예에서, 지도 파티션들(273)은 XML과 같은 유선 포맷으로 클라이언트 디바이스에 전송될 수 있다. 각각의 지도 파티션(273)은 각각의 지도 이미지 타일(271)과 동일한 영역을 커버할 수 있고, 또한 상기 각각의 지도 이미지 타일과 동일한 줌 레벨(zoom level)을 커버할 수 있다. 100배의 줌 레벨들에 걸쳐 커버된 영역은 진행중인(ongoing) 또는 지속적인 지도 서버로의 액세스에 의지하는 시스템에 대조하여 동일한 크기의 공간으로 캐싱(cache)될 수 있다. 일 예에서, 캐싱은 자동적일 수 있고, 예컨대 사용자의 디바이스가 와이파이 또는 다른 네트워크 액세스를 가질 때 프리페치 또는 다른 캐싱 프로세스를 활성화시킬 수 있다.
도 3은 시작 위치(420)에 대응하는 시작점 A 및 목적지 위치(421)에 대응하는 목적지점 B을 가지는 예시적인 지도를 보여준다. 도 4 내지 5는 도 3 상에 도시된 지도의 예시적인 데이터 모델들이다. 도 4 내지 5가 도표로서 모델링된 비가공 지도 데이터(272)를 보여주는 반면, 라우팅 알고리즘 내에서 동작할 수 있는 어떤 다른 데이터 모델이 적응될 수 있다.
도 3으로 돌아가서, 이 도해는 또한, 시작 및 종료 위치들(각각 420 및 421)에 더하여 서브-지도 영역(422)을 보여준다. 서브-지도 영역(422)은, 미리 결정된 반경에 대해 위치(420) 주위의 잠재적 라우트 세그먼트들을 포함하는 영역과 같이, 사용자의 위치(420)에 근거한 지리적인 위치들의 범위일 수 있다. 일 예에서, 클라이언트 디바이스(150)의 프리페쳐 모듈(153)은 미리 결정된 서브-지도 영역(422) 내에 있는 도로들의 라우팅 서버(120)로부터 서브-지도 데이터를 요청하고, 도 1에 도시된 바와 같은 캐시 메모리(164) 또는 어떤 다른 저장 매체에 상기 서브-지도 데이터를 저장할 수 있다. 지역적 지도 라우터 모듈(154)은 네트워크 연결의 결여에도 불구하고 라우트들을 생성하는 것을 지속하도록 지도 파티션 데이터(273)에 라우팅 알고리즘을 적용시킬 수 있다. 서브-지도 영역(422)은 시작 위치(420), 종료 위치(421)의 특별한 거리 내의 모든 도로들 또는 라우팅 서버(120)에 의해 본래 생성된 라우트 내의 모든 도로들을 커버할 수 있다. 상기 서브-지도 데이터에 더하여, 각각의 지도 이미지 타일들(271)은 또한, 스크린 상에 지도를 렌더링하기 위해서 프리페치될 수 있다.
각각의 지도 파티션(273)의 줌 레벨 및 대응하는 이미지 타일(271)은 다양한 방식으로 스케일링될 수 있다. 예를 들어, 0 레벨의 줌 레벨은 전체 행성(planet)을 디스플레이할 수 있고, 21 레벨의 줌 레벨은 개별 빌딩들을 디스플레이할 수 있다. 사전-캐싱된 지도 데이터 및 대응하는 이미지 데이터는 서로 다른 줌 레벨들에 설정될 수 있다. 선택된 줌 레벨은 강한 네트워크 연결이 존재하는지에 근거할 수 있다. 일 예에서, 강한 네트워크 연결이 존재하면, 더 높은 줌 레벨이 캐싱될 수 있다.
대안적으로, 서브-지도 영역(422)은 공간적인 색인(index)의 셀들일 수 있다. 상기 셀들은 상호 연결된 노드들의 더 큰 계층의 일부인 노드 또는 색인에 포함될 수 있다. 계층의 각 레벨은 서로 다른 줌 레벨을 나타낼 수 있다. 줌 레벨이 더 높을수록, 노드 내의 셀들의 수는 더 많고 각 셀의 사이즈는 더 작다. 공간적 색인 노드의 레벨은 서브-지도 데이터의 줌 레벨과 일치할 수 있다. 바람직한 서브-지도 영역에 의해 커버되는 셀들은 프리페쳐 모듈(153)에 의해 사전-캐싱될 수 있다.
상기 프리페쳐 모듈(153)은 서로 다른 레벨들에서 특별한 노드들의 적절한 셀들을 캐싱하고, 지역적 지도 라우터 모듈(154)로 하여금 더욱 융통성있는(flexible) 라우터들을 제공하도록 할 수 있다. 예를 들어, 더 작은 통로(corridor)들을 통한 라우트들이 생성될 수 있다. 이 경우, 특정한 상황들에서 지도 렌더링 및 오프라인 라우팅 둘 모두에 대해 충분한 지도 데이터의 다양한 인접 영역들을 캐싱하는 것이 적절할 수 있는 반면, 지도의 모든 인접한 부분들이 동일한 입도(granularity)로 캐싱될 필요는 없을 수 있다. 캐싱된 영역들은 위도, 경도 및 반경에 의해 식별될 수 있고, 셀-타입 공간적 색인이 또한 사용될 수 있다. 따라서, 사용자가 A 시(city)로부터 B 시로 통근하는 경우, 더 넓은 영역들이 시작 및 목적 지점들에서 캐싱될 수 있는 반면, 셀들의 더 작은 통로가 라우트를 따르는 도로들에 대해 캐싱될 수 있다. 이 경우, 하나의 벡터 줌 레벨은 사용자에게 충분한 세부사항을 제공하도록 캐싱될 수 있고, 네트워크 연결에 따라, 하나 이상의 추가적인 줌 레벨들이 더욱 상세한 데이터를 위해 페치될 수 있다.
도 4는 시작점(420)으로부터 목적지점(421)으로의 최적의 라우트를 표시하는 지도 데이터를 도시한다. 상기 최적의 라우트는 최단 라우트, 가장 덜 정체된 라우트(congested route), 가장 안전한 라우트, 가장 경치가 좋은 라우트(scenic route) 또는 라우팅 알고리즘에 의해 사용되는 기준에 근거한 어떤 다른 라우트일 수 있다. 복수의 인자들이 최적의 라우트를 결정하는데 고려될 수 있다. 이 라우트는 라우팅 서버(120)에 의해 생성될 수 있다. 그 다음, 상기 클라이언트(150)는 스크린 상에 지도 이미지를 렌더링하도록 이미지 타일 서버(110)로부터 이미지 데이터를 요청할 수 있다. 또한, 도 4는 아크(507)를 통해 "E. Main Street"을 표시하는 세그먼트(508)에 링킹된 "W. Main Street"을 표시하는 세그먼트(509)를 도시한다. 라우트(500)는 라우팅 서버(120)에 의해 생성된 최적의 라우트일 수 있다.
도 5는 또한 도표들로서 모델링된 서브-지도 데이터(600 및 600a)의 예를 도시한다. 서브-지도 데이터(600 및 600a)는 미리 결정된 서브-지도 영역(422) 내에 있을 수 있다. 특히, 서브-지도 데이터(600)는 "Broadway", "Dewey Avenue", "End Avenue" 및 "Huron Avenue"를 각각 나타내는 세그먼트들(602 내지 605)을 도시한다. 세 개의 아크들(602.1 내지 602.3)이 세그먼트(602)로부터 투사(project)하여 도시된다. 세그먼트(602)는 아크(602.1)를 통해 세그먼트(603)에 연결되고, 아크(602.2)를 통해 세그먼트(604)에 연결되며 그리고 아크(602.3)를 통해 세그먼트(605)에 연결된다.
서브-지도 데이터(600a)는 각각 "Tuttle Parkway", "Mountain Avenue", "Gifford Avenue" 및 "Sip Avenue"를 나타내는 세그먼트들(606 내지 609)을 도시한다. 세 개의 아크들(606.1 내지 606.3)이 세그먼트(606)로부터 투사하여 도시된다. 특히, 세그먼트(606)는 아크(606.1)를 통해 세그먼트(607)에 연결되고, 아크(606.2)를 통해 세그먼트(608)에 연결되며 그리고 아크(606.3)를 통해 세그먼트(609)에 연결된다.
프리페쳐 모듈(153)은 라우팅 서버(120)의 지도 익스포터 모듈(240)에 요청을 보낼 수 있다. 프리페쳐 모듈(153)은 요청된 위치에 근거하여 라우팅 서버(120)로부터 지도 파티션들(273)을 검색할 수 있다. 요청된 위치는 미리 결정된 서브-지도 영역(422) 내에 놓여있을 수 있다. 일 예에서, 프리페쳐 모듈(153)은 서브-지도 영역(422) 내에 놓인 위도/경도 좌표들의 세트를 이용하여 요청을 보낼 수 있다. 상기 위도/경도 좌표들은 라우팅 서버(120)의 지도 익스포터 모듈(240)로부터 지도 데이터를 질의(query)하는데 사용될 수 있다. 또한, 위치 데이터를 저장하기 위해 다른 포맷들이 사용될 수 있다. 예를 들어, 위도/경도와 같은 절대값들과 관련되기 보다 오히려 상기 값들은 상대적일 수 있고 어떠한 스케일로도 이루어질 수 있다. 일단, 파티션들이 지도 익스포터 모듈(240)로부터 검색되면, 프리페쳐 모듈(153)은 네트워크 단절 또는 다른 연결의 손실의 경우에서의 사용을 위해 클라이언트(150)의 캐시 메모리(164)에 지도 파티션(273)을 저장할 수 있다.
클라이언트(150)가 네트워크를 통해 통신할 수 없으면, 프로세서는 클라이언트(150)의 지역적 지도 라우터 모듈(154)의 실행을 시작할 수 있다. 지역적 지도 라우터 모듈(154)은 캐시 메모리(164)에 저장된 지도 파티션들(273)을 판독하고 지도를 어셈블하는 것을 시작할 수 있다. 앞선 예에서 언급된 바와 같이, 지도 파티션들(273)은 사용자 주위의 미리 결정된 반경 내에 있을 수 있는 서브-지도 영역(422) 내에 있을 수 있다. 대안적으로, 서브-지도 영역(422)은 사용자가 이동하는 전체 시 또는 주일 수 있다. 예를 들어, 프리페쳐 모듈(153)은 매 마일(mile) 마다, 매 시(city) 마다 또는 매 주(state) 또는 도(province) 마다 지도 데이터 요청들을 만들 수 있다. 사용자가 새로운 주로의 경계를 횡단하면, 프리페쳐 모듈(153)은 캐시로부터 지도 파티션(273)을 삭제하고 새로운 주에 대한 지도 데이터를 요청할 수 있다. 또한, 프리페쳐 모듈(153)은, 라우트로부터 특정한 거리만큼 떨어진 곳 내에 있는 모든 스트리트들 또는 디바이스의 현재 위치로부터 특정한 거리 내에 있는 지점에서 라우트와 교차하는 모든 스트리트들과 같은 지도 데이터를 요청할 수 있다. 따라서, 캐시 메모리(164)는 클라이언트(150)에게 이용가능한 가장 최근의 데이터인 지도 데이터를 유지할 수 있다.
도 6은 도 3의 서브-지도 영역(422) 내의 위치들을 나타내는 지도 파티션 데이터(700)의 집합(assembly)을 도시한다. 도 6에 도시된 집합은 지역적 지도 라우터 모듈(154)에 의해 수행될 수 있다. 예를 들어, 지도 파티션(701)은 도 5의 서브-지도 데이터(600)를 나타내고, 지도 파티션(702)은 도 5의 서브-지도 데이터(600a)를 나타내며 그리고 지도 파티션(703)은 도 4의 라우트(500)를 나타낸다. 각각의 지도 파티션은 각각의 파티션 내의 스트리트 상호연결 및 하나의 스트리트로부터 다음 스트리트로 전환하는 "비용"을 포함하여 도시된다. 연결 스트리트가 파티션 밖에 있으면, 데이터는 연결 스트리트 및 비용을 포함하는 파티션에 대한 참조를 포함할 수 있다. 지도 파티션 데이터는, 이들로만 한정되는 것은 아니지만은 사용자 지정 이진 포맷(custom binary format)들, XML 등을 포함하는 다양한 방식으로 인코딩될 수 있다. 각각의 지도 파티션(701 내지 703)이 단지 스트리트 연결들 및 스트리트 전환 비용들만을 포함하여 도시되는 반면, 각각의 지도 파티션은 또한, 도로 형상들, 도로명들, 도로망 토폴로지 또는 운전 방향들을 제공하는데 사용되는 어떤 다른 정보의 일부 또는 전부를 포함할 수 있다. 상기 운전 방향들은 다양한 사용자 인터페이스에 따라 사용자에게 제공될 수 있다. 예를 들어, 상기 운전 방향들은 음성 프롬프트들, 턴(turn)들의 일회성 목록, 지도 상에 표시된 라우트 등을 포함하는 실시간 턴-바이-턴(turn-by-turn) 방향들일 수 있다.
도 7은 위치(820)에 대응하는 위치 C에서의 사용자를 도시한다. 위치(820)는 "W. Main Street" 내지 "E. Main Street"의 라우트(500)로부터 이탈된 위치( deviation)이다. 사용자가 위치(820)에 있는 동안 네트워크 단절 또는 다른 연결의 손실이 발생하면, 지역적 지도 라우터 모듈(154)은 도 6에 도시된 바와 같이 서브-지도 영역(422) 내의 지도를 어셈블하고, 목적지로의 라우트를 생성하기 위해서 새롭게 어셈블된 지도에 라우팅 알고리즘을 적용시킬 수 있다. 상기 라우팅 알고리즘은 선택된 데이터 모델 내에서 동작하도록 적응된 어떤 알고리즘일 수 있다. 예를 들어, 도 4 내지 5에 도시된 도표 데이터 모델은 다익스트라의 알고리즘, 플로이드-워셀의 알고리즘(Floyd-Warshall's algorithm), 벨만 포드의 알고리즘(Bellman-Ford's algorithm) 등을 이용할 수 있다.
일단, 지역적 지도 라우터 모듈(154)이 본래의 라우트로 되돌아가는 최적의 라우트를 계산하면, 클라이언트 디바이스(150)는 도 8에 도시된 바와 같이, 디스플레이(160) 상에 상기 최적의 라우트의 이미지를 렌더링할 수 있다. 또한, 도 8은 디스플레이(160) 상에 렌더링된 턴-바이-턴 명령들(902)을 도시한다. 예를 들어, 지역적 지도 라우터 모듈(154)은, 위치(820)로부터 "W. Main Street"으로 되돌아가는 최적의 라우트가 도 8에 도시된 바와 같이 "Mountain Avenue"으로 좌회전하는 것임을 결정할 수 있다.
도 9는 라우트를 따라서 서브-지도 정보를 요청하는 프리페쳐 모듈(153)의 예이다. 도 9는, 사용자가 목적지 위치(421)를 항하여 위치들(1003 내지 1005)에 대응하는 위치들 D, E 및 F로부터 이동함에 따라 요청되는 서브-지도 영역들(1007 내지 1009)을 도시한다. 앞서 설명된 바와 같이, 서브-지도 영역들은 사용자 주위의 미리 결정된 반경들일 수 있다. 이 영역들은, 사용자가 목적지를 향해 이동함에 따라 요청될 수 있다. 새로운 서브-지도 영역이 요청될 때, 캐시 메모리(164)는 다음 서브-지도 영역에 대한 공간을 만들기 위해 정리(clear)될 수 있다. 또한, 상기 서브-지도 영역은 클라이언트로부터 서버로 프리페치하는 양을 최소화하기 위해서 더 넓은 스케일(예컨대, 시, 국가, 주 등) 상에 있을 수 있다.
사전-캐싱되는 세그먼트들을 포괄하는 범위가 약한 네트워크 연결로 알려진 영역에 확장될 수 있다. 또한, 프리페쳐 모듈(453)은 라우트를 따라 선택된 영역들을 요청할 수 있다. 예를 들어, 프리페쳐 모듈(153)은 서브-지도 영역(1009 및 1008)만을 선택할 수 있다. 또한, 프리페쳐 모듈(153)은 목적지(421) 주변의 영역을 선택할 수 있다.
프리페쳐 모듈(153)은, 사용자의 이동 히스토리, 검색 히스토리, 개인 프로파일, 일정 엔트리들(calendar entries) 또는 다른 리소스에 근거하여 사용자가 방문할 가능성이 가장 높은 지리적 영역들을 자동적으로 사전-캐싱하도록 구성될 수 있다. 자동적인 사전-캐싱은, 사용자 디바이스가 턴 온(turn on)되고 네트워크(예컨대, 와이파이) 액세스를 이용하는 영역에 있을 때, 트리거될 수 있다. 자동적인 사전-캐싱은 이용가능한 네트워크 액세스의 타입에 따라 동작될 수 있다. 따라서, 와이파이 네트워크와 같은 무료 네트워크가 이용가능할 때, 프리페쳐 모듈(153)은 자동적인 프리페치를 수행할 수 있다. 다른 예에서, 무료가 아닌 네트워크가 이용가능하면, 자동적인 사전-캐싱은 수행되지 않을 수 있거나 또는 요금이 발생하기 전에 사용자 인증(user authorization)이 요구될 수 있다.
시스템 및 방법은, 정보가 클라이언트에 의해 전송되거나 또는 저장되기 전에 사용자에게 다양한 타입의 지리적인 정보를 사전-캐싱하는 것을 허락(consent)하도록 더 요구할 수 있고, 또한 전송 및 저장의 프로세스 동안 사전-캐싱된 데이터를 암호화할 수 있다. 또한, 사전-캐싱된 데이터는 사용자에 의한 요청 시 수동적으로 또는 자동적으로 삭제될 수 있다.
일 예에서, 프로토콜은 사용자의 가장 중요한 N 개의 지리적 영역들(예컨대, 최근에 보았던 장소들, 빈번하게 방문했던 장소들, 사용자의 고향 또는 직장)을 프리페치하도록 정의될 수 있다. 각각의 지리적 위치는 프리페치되어 캐시에 저장되거나 또는 일부 다른 저장 영역에 영구적으로 저장되고 기동(start up) 시 캐시로 로딩될 수 있다. 이는 캐싱된 지도 데이터가 특별한 사용자를 위해 개인화되도록 할 수 있다. 사전-캐싱된 지도 데이터는 관련 사용자 이벤트들(예컨대, 새로운 주소로의 이사, 새로운 직장 주소를 획득, 이동 습관들을 변경 등)에 따라 자동적으로 갱신될 수 있다. 상기 N 개의 장소들은 장소의 이름, 주소, 전화번호, 위도/경도, 타입(예컨대, 별표로 표시된(starred) 관심 지점 또는 다른 타입의 관심 지점) 또는 다른 식별자와 같은 하나 이상의 정보의 조각들을 포함할 수 있다.
다른 양상에서, 사용자는 사전-캐싱을 위한 지리적 위치들을 선택할 수 있다. 예를 들어, 사용자는 사용자가 방문할 계획인 영역을 선택할 수 있다. 캐시의 사이즈는 디폴트(default)로 설정될 수 있거나 또는 사용자에 의해 설정가능할 수 있다. 사용자는 이러한 지리적 영역을 모바일 사용자 디바이스 상에서 바로 선택할 수 있거나 또는, 이들을 개인용 컴퓨터 상에서 선택하고 상기 모바일 디바이스의 캐시에 저장된 서브-지도 영역들과 상기 선택된 서브-지도 영역들을 동기화할 수 있다. 사용자 인터페이스는 사용자가 명시적으로 캐싱한 장소들의 목록을 보여줄 수 있다. 상기 목록은 지도 데이터의 캐싱을 위해 다운로드 진행 상황을 보여줄 수 있다. 또한, 상기 사용자 인터페이스는 다운로드된 지도들이 삭제되도록 허용할 수 있다. 일 대안에서, 자동적으로 결정된 장소들의 지도들이 캐싱되고 사용에 근거하여 삭제될 수 있는 반면, 사용자-특정 장소들의 지도들은 항상 유지될 수 있다.
대안에서, 다른 영역들이 서로 다른 기준에 따라 사전-캐싱될 수 있다. 예를 들어, 하나 이상의 관심 지점이 매우 높은 레벨의 세세함에서 캐싱될 수 있는 반면, 다른 장소들이 매우 낮은 세세함의 레벨에서 캐싱될 수 있다. 전자의 경우, 사용자는 비교적으로 빈번하게 이러한 영역들의 지도들을 보기를 더 원할 수 있고, 높은 레벨의 세세함에서 캐싱하는 것은, 심지어 네트워크 액세스가 제한되거나 존재하지 않을 때에도 관심 지점(예컨대, 별표로 표시된 장소들 또는 높은 순위의 장소들)의 상세한 지도들이 이용가능함을 보장한다. 후자의 경우, 이는 사용자에게 일부 기본적인 지도 정보를 언제든지 제공하는데 사용될 수 있다.
이전의 특징들에 예시된 동작들에 더하여, 이제 다양한 동작들이 기술될 것이다. 상술된 동작들 또는 다음의 동작들이 하기에 기술된 정확한 순서로 수행되지 않아도 됨이 이해되어야만 한다. 오히려, 다양한 단계들은 역순으로 또는 동시에 다루어질 수 있다. 다른 동작들이 이러한 더해지거나 또는 이러한 절차들로부터 제거될 수 있다.
도 10은 클라이언트 디바이스로의 서브-지도 데이터 파티션들을 검색하는 방법(1100)의 예시적인 실시예를 도시한다. 처음에 블록(1101)에서, 프리페쳐 모듈(153)은 도 3의 서브-지도 영역(422)과 같은 서브-지도 영역 내에 있을 수 있는 위도/경도 좌표들의 세트를 보냄으로써 지도 파티션 데이터에 대한 프리페치 요청을 보낸다. 그 다음, 블록(1102)에서, 지도 파티션 데이터에 대한 요청을 수신할 시, 지도 익스포터 모듈(240)은 비가공 지도 데이터(272)로부터 서브-지도 파티션들을 검색할 수 있다. 일단, 서브-지도 영역 내에 있는 파티션들이 검색되면, 상기 파티션들은 블록(1103)에서 프리페쳐 모듈(153)에 되돌려 전송될 수 있다. 블록(1104)에서, 상기 프리페쳐 모듈(153)은 캐시 메모리에 상기 지도 파티션들을 저장할 수 있다. 상기 프리페치 방법(1100)은, 디바이스가 도 9에서 예증된 바와 같이 하나의 위치 주위의 영역을 넘어 그리고 다른 위치 주위의 영역으로 이동할 때마다 반복적으로 실행될 수 있다. 대안적으로, 상기 프리페치 방법은 라우트를 따라 선택된 영역들에 대해 실행될 수 있다.
도 11은 지역적 지도 라우터 모듈(154)에 의해 실행될 수 있는 예시적인 프로세스이다. 처음에, 블록(1201)에서, 지역적 지도 라우터 모듈(154)은 네트워크 단절 또는 다른 연결의 손실이 발생했는지 결정할 수 있다. 이들 중 하나가 발생하면, 지역적 지도 라우터 모듈(154)은 블록(1202)으로 진전되고 캐시 메모리에 저장된 지도 파티션 데이터를 프리페쳐 모듈(153)에 의해 검색할 수 있다. 상기 지도 파티션 데이터의 검색 시, 지역적 지도 라우터 모듈(154)은 블록(1203)에서 지도 데이터를 어셈블할 수 있다. 지도의 집합은 도 6에서 예증된 바와 같이 수행될 수 있다. 일단, 상기 지도가 완전히 어셈블되면, 선택된 데이터 모델을 위해 적응된 라우팅 알고리즘은 블록(1204)에서 목적지로의 최적의 라우트를 생성하도록 실행될 수 있다. 예를 들어, 도표 데이터 모델이 이용되면, 다익스트라의 알고리즘이 사용될 수 있다. 일단 최적의 라우트가 결정되면, 블록(1205)에 도시된 바와 같이 단계별 명령들과 함께 경로가 스크린 상에 렌더링될 수 있다.
도 12는 프로세서(210)를 통한 서버(120) 및 프로세서(151)를 통한 클라이언트(150)에서 서로 다른 모듈들 사이에 실행될 수 있는 방법(1300)의 다른 예시적인 실시예이다. 블록(1301)에서, 상기 프로세서(151)는 라우트를 요청하기 위해 서버(120)에 시작 위치 및 목적지 위치를 전송할 수 있다. 블록(1302)에서, 서버(120)의 프로세서(210)는 비가공 지도 데이터(272)의 서브세트에 포함된 시작 위치로부터 목적지 위치로의 라우트를 생성할 수 있다. 상기 서브 세트는 시작 위치와 목적지 위치 사이의 인접한 일련의 도로들을 묘사한다. 블록(1303)에서 상기 라우트는 클라이언트(150)의 프로세서(151)에 의해 수신될 수 있다. 블록(1304)에서, 상기 프로세서(151)는 비가공 지도 데이터(272)의 다른 서브세트에 대한 요청을 전송할 수 있다. 블록(1305)에서, 서버(120)의 프로세서(210)는 클라이언트(150)에 상기 다른 서브세트를 전송할 수 있다. 상기 다른 서브세트는 사용자 주위의 지리적 영역들로부터 선택될 수 있다. 대안적으로, 상기 다른 서브세트의 지리적 영역은, 시작 위치, 목적지 위치 주변의 영역 또는 상기 라우트를 따르는 어떤 다른 영역과 같이 앞서 언급된 인접한 일련의 도로들을 따르는 선택된 영역들일 수 있다. 추가적으로, 상기 다른 서브세트는 또한, 앞서 언급된 인접한 일련의 도로들을 통해 본래 요청된 라우트를 묘사할 수 있다.
블록(1306)에서, 비가공 지도 데이터(272)의 다른 서브세트의 수신 시, 클라이언트(150)의 프로세서(151)는 캐시 내에 상기 다른 서브세트를 저장할 수 있다. 블록(1306)에서, 클라이언트(150)의 프로세서(151)는, 클라이언트(150)가 상기 라우트의 인접한 일련의 도로들로부터 이탈했는지 결정할 수 있다. 상기 클라이언트 디바이스(150)가 이탈했음이 결정되면, 상기 프로세서(151)는, 서버(120)가 액세스가능한지 결정하여서 상기 프로세서(151)가 라우트를 위한 추가적인 요청을 전송할 수 있도록 블록(1308)로 진전될 수 있다. 상기 서버(120)가 이용가능하지 않으면, 상기 프로세서(151)는 블록(1310)으로 진전되고 비가공 지도 데이터(272)의 다른 서브세트에 포함된 복수의 다른 도로에 근거하여 다른 목적지 위치로의 새로운 라우트를 생성할 수 있다. 상기 다른 목적지는 원래 생성된 목적지와 동일할 수 있거나 또는 상기 다른 목적지는 원래 생성된 목적지와 다를 수 있다. 상기 서버(120)가 이용가능하면, 블록(1309)에서 상기 프로세서(151)는 서버(120)에게 제2 라우트를 생성하도록 요청할 수 있다. 블록(1311)에서 클라이언트(150)의 프로세서(151)는 그 다음, 디스플레이 상에 상기 제2 라우트를 디스플레이할 수 있다.
다양한 참조들이 특정한 모듈 즉, 지도 익스포터 모듈(240), 프리페쳐 모듈(153) 및 지역적 지도 라우터 모듈(154)에서 이루어졌지만, 어떤 수의 서로 다른 모듈들이든 클라이언트 및/또는 서버 상에서 사용되거나 동작할 수 있다. 논의된 모듈들은 단지 예시적일 뿐이며, 시스템 및 방법의 서로 다른 양상들이 서로 다른 모듈들을 사용할 수 있다.
추가의 예에서, 사용자가 따라가고 있는 라우터로 다시 돌아가는 오프라인 리-라우트들이 또한, 네트워크 연결의 부재 시 턴-바이-턴 안내를 제공하도록 생성될 수 있다. 클라이언트 디바이스가 네트워크 액세스 가지는 때에 긴 라우트가 요청될 때, 왕복 여행이 또한 페치될 수 있고, 오프라인 리-라우팅과 함께 네트워크 연결의 부재 시 출발지(home)로 돌아가는 길을 찾는 것을 가능하게 한다.
또다른 예에서, (사용자-특정 장소들의 경우) 타일이 다운로드되도록 하는 요청들과 (자동적으로 결정된 장소들의 경우) 타일이 캐싱되도록하는 요청들은 보통의 온-디맨드(on-demand) 지도 타일 요청들과 구별가능할 수 있다. 이는 로깅 분석 및 서버로 하여금 캐시 요청이 허용되지 않을 때 이를 거부하도록 동작시키는 것 둘 모두에 사용될 수 있다. 디스플레이를 위해 이미 페치되어 있는 타일들을 다운로드해야만 함을 회피하기 위해서, 이미 요청에 있는 타일들의 목록이 유지될 수 있다.
상술된 특징들의 이러한 그리고 다른 변경들 및 조합들이 특허 청구 범위에 의해 정의된 바와 같은 시스템들 및 방법들로부터 벗어남없이 이용될 수 있기 때문에, 상술한 예시적인 실시예들의 설명들이 특허 청구 범위에 의해 정의되는 본 발명을 제한하는 것으로서가 아니라 예시로서 이해되어야만 한다. 또한, ("와 같은", "예컨대", "포함하여" 등과 같이 표현된 항목들과 마찬가지로) 예들의 제공이 청구된 본 발명을 특정한 예들에 제한하는 것으로서 해석되어서는 안되며; 오히려, 이 예들은 여러 가능한 양상들의 오직 일부만을 예시하기 위해 의도된 것임이 이해될 것이다. 상반되게 명시적으로 언급하지 않으면, 소정의 실시예, 대안 또는 예에서의 모든 특징은 본 명세서의 어떤 다른 실시예, 대안 또는 예에서 사용될 수 있다.
산업적 응용성
본 발명은 이들로만 한정되는 것은 아니지만은 매핑 및 네비게이션 시스템들 및 디바이스들을 포함하는 넓은 산업적 응용성을 누린다.

Claims (27)

  1. 목적지로의 라우트를 생성하는 방법으로서,
    원격 컴퓨터로부터 복수의 지도 파티션 데이터(map partition data)를 프로세서로 프리페치(prefetch)하는 단계와, 상기 복수의 지도 파티션 데이터의 각각은 운전 방향(driving direction)들을 생성하는 정보가 인코딩되고;
    메모리에 상기 복수의 지도 파티션 데이터를 저장하는 단계와;
    상기 원격 컴퓨터가 액세스가능한지 결정하는 단계와;
    상기 원격 컴퓨터가 액세스가능하지 않음이 결정되면, 지리적 영역을 표시하는 지도 데이터를 어셈블하는 단계와, 상기 지도 데이터는 상기 복수의 지도 파티션 데이터의 집합체(assemblage)이고; 그리고
    상기 지도 데이터를 사용하여 목적지로의 라우터를 생성하는 단계를 포함하는 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  2. 제1항에 있어서,
    상기 지리적 영역은 상기 사용자 디바이스의 현재 위치 또는 상기 라우트의 세그먼트에 근거하며, 상기 지리적 영역은 상기 생성된 라우트 상에 있지 않은 세그먼트들을 포함하는 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  3. 제2항에 있어서,
    상기 사용자 디바이스가 하나의 위치 주위의 영역을 넘어서 다른 위치 주위의 영역으로 이동했음이 결정되면, 제2 복수의 지도 파티션 데이터를 프리페치하는 단계를 더 포함하는 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  4. 제1항에 있어서,
    상기 라우트는 최단 라우트이거나 또는 가장 덜 정체된 라우트(congested route)인 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  5. 제1항에 있어서,
    상기 복수의 지도 파티션 데이터의 각각은 상기 지도 데이터를 어셈블하도록 상기 복수의 지도 파티션 데이터를 서로 결합(stitch)하기 위한 정보가 더 인코딩된 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  6. 제1항에 있어서,
    상기 라우트는 상기 지도 데이터에 라우팅 알고리즘을 적용시킴으로써 생성되는 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  7. 제1항에 있어서,
    상기 지도 데이터의 구조는 도표(graph)인 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  8. 제7항에 있어서,
    상기 복수의 지도 파티션 데이터의 각각은 상기 도표의 서로 다른 부분으로 구성된 것을 특징으로 하는 목적지로의 라우트를 생성하는 방법.
  9. 장치로서,
    복수의 지도 파티션 데이터를 캐싱할 수 있는 메모리와;
    명령들에 따라 상기 복수의 지도 파티션 데이터를 프로세스하도록 상기 메모리와 통신하는 프로세서와; 그리고
    상기 프로세서와 통신하고, 상기 프로세서로부터 수신된 정보를 디스플레이하는 디스플레이를 포함하고;
    상기 명령들은
    원격 컴퓨터로부터 복수의 지도 파티션 데이터를 프리페치하는 것과, 상기 복수의 지도 파티션 데이터의 각각은 운전 방향들을 생성하는 정보가 인코딩되며;
    메모리에 상기 복수의 지도 파티션 데이터를 저장하는 것과;
    상기 원격 컴퓨터가 액세스가능한지 결정하는 것과;
    상기 원격 컴퓨터가 액세스가능하지 않음이 결정되면, 상기 메모리로부터 상기 복수의 지도 파티션 데이터를 검색하는 것과;
    지리적 영역을 표시하는 지도 데이터를 에셈블하는 것과, 상기 지도 데이터는 상기 복수의 지도 파티션 데이터의 집합체이며; 그리고
    상기 지도 데이터를 사용하여 목적지로의 라우트를 생성하는 것을 포함하는 것을 특징으로 하는 장치.
  10. 제9항에 있어서, 상기 지리적 영역은 장치의 현재 위치로부터 미리 결정된 범위 또는 상기 라우트의 세그먼트로부터 미리 결정된 범위인 것을 특징으로 하는 장치.
  11. 제10항에 있어서,
    상기 명령들은, 상기 장치가 일 위치 주위의 영역을 넘어서 다른 위치 주위의 영역으로 이동했음이 결정되면, 제2 복수의 지도 파티션 데이터를 프리페치하는 것을 더 포함하는 것을 특징으로 하는 장치.
  12. 제9항에 있어서,
    상기 라우트는 최단 라우트 또는 가장 덜 정체된 라우트인 것을 특징으로 하는 장치.
  13. 제9항에 있어서,
    상기 라우트는 상기 지도 데이터에 라우팅 알고리즘을 적용시킴으로써 생성되는 것을 특징으로 하는 장치.
  14. 제9항에 있어서,
    상기 지도 데이터는 도표로 구성된 것을 특징으로 하는 장치.
  15. 지도 데이터를 전송하는 방법으로서,
    제1 목적지로의 제1 라우트를 프로세서로 생성하는 단계를 포함하고;
    상기 프로세서는 지리적 영역을 표시하는 상기 지도 데이터의 일부들인 복수의 지도 파티션 데이터에 대한 요청을 클라이언트 디바이스로부터 수신하며, 상기 지도 데이터는 상기 제1 목적지와 다른 제2 목적지로 향하는 제2 라우트의 생성을 위해 사용가능하고;
    상기 프로세서는 상기 복수의 지도 파티션 데이터를 검색하며; 그리고
    상기 프로세서는 상기 클라이언트 디바이스에 상기 복수의 지도 파티션 데이터를 전송하는 것을 특징으로 하는 지도 데이터를 전송하는 방법.
  16. 제15항의 지도 데이터를 공급하는 방법으로서,
    상기 지도 데이터는 도표로 구성된 것을 특징으로 하는 지도 데이터를 공급하는 방법.
  17. 제15항의 지도 데이터를 공급하는 방법으로서,
    상기 복수의 지도 파티션 데이터는 유선 포맷으로 상기 클라이언트 디바이스에 전송되는 것을 특징으로 하는 지도 데이터를 공급하는 방법.
  18. 시스템으로서,
    적어도 하나의 모듈 및 복수의 지도 파티션 데이터를 저장하는 메모리와;
    상기 적어도 하나의 모듈 내의 명령들에 따라 상기 복수의 지도 파티션 데이터를 프로세스하도록 상기 메모리와 통신하는 프로세서를 포함하고;
    명령들을 가진 상기 적어도 하나의 모듈은
    제1 목적지로의 라우트를 생성하는 것과;
    지리적 영역을 표시하는 상기 지도 데이터의 일부들인 복수의 지도 파티션 데이터에 대한 요청을 클라이언트 디바이스로부터 수신하는 것과, 상기 지도 데이터는 상기 제1 목적지와 다른 제2 목적지로 향하는 라우트 생성을 위해 사용가능하며;
    상기 복수의 지도 파티션 데이터를 검색하는 것과; 그리고
    상기 클라이언트 디바이스에 상기 복수의 지도 파티션 데이터를 전송하는 것을 포함하는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    상기 지리적 영역은 사용자의 현재 위치 주위의 잠재적 라우트 세그먼트들 및 최적의 라우트의 세그먼트를 포함하는 것을 특징으로 하는 시스템.
  20. 제19항에 있어서,
    상기 복수의 지도 파티션 데이터는 유선 포맷으로 상기 클라이언트 디바이스에 전송되는 것을 특징으로 하는 시스템.
  21. 디바이스 상에 라우트를 디스플레이하는 방법으로서,
    네트워크를 통해 제1 컴퓨터에 시작 위치 및 목적지 위치를 전송하는 단계와, 상기 제1 컴퓨터는 도로 위치들의 제1 세트를 식별하는 데이터로의 액세스를 가지고;
    상기 제1 세트의 서브세트로부터 선택된 도로 위치들의 제2 세트를 상기 제1 컴퓨터로부터 수신하는 단계와, 상기 도로 위치들의 제2 세트는 상기 시작 위치와 목적지 위치 사이의 인접한 일련의 도로 위치들을 포함하는 제1 라우트를 포함하고, 상기 제1 라우트에 근접한 지리적 영역 내에 있는 추가적인 도로 위치들을 더 포함하며; 그리고
    상기 디바이스의 현재 위치를 식별하는 데이터가 상기 디바이스의 현재 위치는 상기 제1 라우트에서의 도로 위치들과 다름을 나타낼 때, 상기 제2 세트에 포함된 도로 위치들에 근거하여 인접한 도로 위치들의 제2 라우트를 프로세서로 결정하는 단계를 포함하며, 상기 디바이스가 상기 제1 컴퓨터로부터 도로 위치들의 식별을 수신할 수 없을 때 상기 제2 라우트가 결정되는 것을 특징으로 하는 디바이스 상에 라우트를 디스플레이하는 방법.
  22. 제21항에 있어서,
    상기 디바이스의 현재 위치는, 상기 디바이스의 현재 위치가 시간에 걸쳐 변함에 따라 식별되는 것을 특징으로 하는 디바이스 상에 라우트를 디스플레이하는 방법.
  23. 제21항에 있어서,
    상기 제2 라우트는 상기 제1 라우트와 동일하지 않은 것을 특징으로 하는 디바이스 상에 라우트를 디스플레이하는 방법.
  24. 제21항에 있어서,
    상기 지리적 영역은 상기 시작 위치, 상기 목적지 위치 또는 상기 인접한 일련의 도로 위치들 내에 미리 결정된 거리를 커버하는 것을 특징으로 하는 디바이스 상에 라우트를 디스플레이하는 방법.
  25. 제21항에 있어서,
    상기 제2 라우트를 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 디바이스 상에 라우트를 디스플레이하는 방법.
  26. 제25항에 있어서,
    상기 제2 세트의 도로 위치는 상기 디바이스가 상기 도로 위치와 근접할 때 상기 사용자에게 디스플레이되는 것을 특징으로 하는 디바이스 상에 라우트를 디스플레이하는 방법.
  27. 라우트 안내의 방법으로서,
    시작 위치로부터 목적지 위치로의 라우트에 대한 요청을 모바일 디바이스로부터 제1 컴퓨터로 전송하는 단계와;
    상기 시작 위치로부터 목적지 위치로의 라우트를 정의하는 인접한 일련의 도로 위치들을 상기 제1 컴퓨터로부터 모바일 디바이스 상에 수신하는 단계와;
    상기 라우트에 근접한 지리적 영역 내에 있는 추가적인 도로 위치들의 세트를 상기 제1 컴퓨터로부터 상기 모바일 디바이스 상에 수신하는 단계와;
    상기 모바일 디바이스가 상기 라우트를 따라 이동하는 동안 상기 모바일 디바이스 상에 라우트 안내를 제공하는 단계와;
    상기 모바일 디바이스가 자신이 상기 인접한 일련의 도로 위치들로부터 이탈했음을 결정하면, 추가적인 도로 위치들의 세트에 적어도 부분적으로 근거하여 상기 모바일 디바이스 상에 새로운 라우트를 생성시키는 단계와; 그리고
    상기 모바일 디바이스가 상기 새로운 라우트를 따라 이동하는 동안 상기 모바일 디바이스 상에 라우트 안내를 제공하는 단계를 포함하는 것을 특징으로 하는 라우트 안내의 방법.
KR1020137017460A 2010-12-07 2011-12-07 라우트 안내의 방법 및 장치 KR101892675B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US42051510P 2010-12-07 2010-12-07
US61/420,515 2010-12-07
PCT/US2011/063738 WO2012078755A2 (en) 2010-12-07 2011-12-07 Method and apparatus of route guidance

Publications (2)

Publication Number Publication Date
KR20140009283A true KR20140009283A (ko) 2014-01-22
KR101892675B1 KR101892675B1 (ko) 2018-10-04

Family

ID=46163016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137017460A KR101892675B1 (ko) 2010-12-07 2011-12-07 라우트 안내의 방법 및 장치

Country Status (7)

Country Link
US (2) US9267803B2 (ko)
EP (2) EP2649602A4 (ko)
JP (1) JP6101630B2 (ko)
KR (1) KR101892675B1 (ko)
CN (1) CN103493116B (ko)
DE (1) DE202011110851U1 (ko)
WO (1) WO2012078755A2 (ko)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092834A (zh) * 2011-10-27 2013-05-08 腾讯科技(深圳)有限公司 浏览网页图片的方法及客户端装置
US20130271488A1 (en) * 2012-04-12 2013-10-17 Nokia Corporation Method and apparatus for filtering and transmitting virtual objects
US8694246B2 (en) * 2012-05-15 2014-04-08 Qualcomm Incorporated Methods and systems for displaying enhanced turn-by-turn guidance on a personal navigation device
US9997069B2 (en) 2012-06-05 2018-06-12 Apple Inc. Context-aware voice guidance
US9886794B2 (en) 2012-06-05 2018-02-06 Apple Inc. Problem reporting in maps
US9418672B2 (en) 2012-06-05 2016-08-16 Apple Inc. Navigation application with adaptive instruction text
US8983778B2 (en) 2012-06-05 2015-03-17 Apple Inc. Generation of intersection information by a mapping service
US10176633B2 (en) 2012-06-05 2019-01-08 Apple Inc. Integrated mapping and navigation application
US9482296B2 (en) * 2012-06-05 2016-11-01 Apple Inc. Rendering road signs during navigation
US9230556B2 (en) 2012-06-05 2016-01-05 Apple Inc. Voice instructions during navigation
US8965696B2 (en) 2012-06-05 2015-02-24 Apple Inc. Providing navigation instructions while operating navigation application in background
US9319831B2 (en) 2012-06-05 2016-04-19 Apple Inc. Mapping application with automatic stepping capabilities
US8954092B2 (en) * 2012-06-25 2015-02-10 Google Inc. Pre-caching data related to a travel destination
CN103685371A (zh) * 2012-09-10 2014-03-26 上海丫丫信息科技有限公司 基于在线地图选择用户地点信息的方法
USD750663S1 (en) 2013-03-12 2016-03-01 Google Inc. Display screen or a portion thereof with graphical user interface
US8676431B1 (en) 2013-03-12 2014-03-18 Google Inc. User interface for displaying object-based indications in an autonomous driving system
USD754190S1 (en) * 2013-03-13 2016-04-19 Google Inc. Display screen or portion thereof with graphical user interface
USD754189S1 (en) 2013-03-13 2016-04-19 Google Inc. Display screen or portion thereof with graphical user interface
US9631930B2 (en) 2013-03-15 2017-04-25 Apple Inc. Warning for frequently traveled trips based on traffic
US9317813B2 (en) 2013-03-15 2016-04-19 Apple Inc. Mobile device with predictive routing engine
US10655979B2 (en) 2013-06-08 2020-05-19 Apple Inc. User interface for displaying predicted destinations
US20140365505A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
US9404766B2 (en) 2013-06-08 2016-08-02 Apple Inc. Navigation peek ahead and behind in a navigation application
US9500494B2 (en) 2013-06-09 2016-11-22 Apple Inc. Providing maneuver indicators on a map
US9170122B2 (en) 2013-06-09 2015-10-27 Apple Inc. Direction list
KR101556618B1 (ko) 2013-10-16 2015-10-01 팅크웨어(주) 다양한 사용자 네트워크 환경 지원 및 자유로운 데이터 권역 설정을 위한 지도 데이터 제공 장치 및 방법과 그 시스템
CN104683405B (zh) 2013-11-29 2018-04-17 国际商业机器公司 在车联网中集群服务器分发地图匹配任务的方法和装置
US9891064B2 (en) * 2014-01-31 2018-02-13 Aruba Networks, Inc. Selection of a route based on prior user behavior or commercial interests
US9832272B2 (en) * 2014-03-04 2017-11-28 Google Inc. Dynamically shifting map-related tasks
DE202015009169U1 (de) 2014-05-21 2016-11-07 Google, Inc. Routing mit Dantenversionszusammenfügung
DE202015009120U1 (de) * 2014-06-20 2016-10-24 Google Inc. Integration von Online-Navigationsdaten mit gecachten Navigationsdaten während der aktiven Navigation
US10599570B1 (en) * 2014-06-20 2020-03-24 Google Llc Expiration of offline map data
US10680988B2 (en) * 2014-08-29 2020-06-09 Google Llc Systems and methods for triggering redisplay of a postponed message
CN106796498B (zh) * 2014-09-04 2021-08-17 城市引擎公司 为用户渲染地图的方法、系统和存储介质
US10712164B2 (en) 2014-09-25 2020-07-14 International Business Machines Corporation Travel routes based on communication channel availability
US9986060B2 (en) * 2015-03-30 2018-05-29 General Electric Company Persistent caching of map imagery and data
CN105180952A (zh) * 2015-08-06 2015-12-23 北汽福田汽车股份有限公司 车辆的导航方法及导航系统
US9909894B2 (en) 2016-01-07 2018-03-06 Here Global B.V. Componentized junction models
US10234294B2 (en) 2016-04-01 2019-03-19 Here Global B.V. Road geometry matching with componentized junction models
CN106643718A (zh) * 2016-07-22 2017-05-10 禾麦科技开发(深圳)有限公司 智能导购系统及方法
US10018476B2 (en) 2016-08-17 2018-07-10 Apple Inc. Live traffic routing
US10060753B2 (en) * 2016-08-17 2018-08-28 Apple Inc. On-demand shortcut computation for routing
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10297147B2 (en) * 2016-12-06 2019-05-21 Flir Commercial Systems, Inc. Methods and apparatus for monitoring traffic data
US10378918B2 (en) 2017-01-03 2019-08-13 Microsoft Technology Licensing, Llc Generating routes from lines based on zoom levels
CN106887184B (zh) * 2017-01-22 2019-11-26 百度在线网络技术(北京)有限公司 路线更新方法及装置
WO2018145235A1 (zh) * 2017-02-07 2018-08-16 驭势(上海)汽车科技有限公司 高精度地图的分布式存储系统及其应用
US10185323B2 (en) * 2017-06-01 2019-01-22 GM Global Technology Operations LLC System and method to reduce vehicle resource depletion risk
AU2018395184B2 (en) * 2017-12-31 2021-07-29 Uber Technologies, Inc. Automatic selection of map detail levels
US11359929B2 (en) 2017-12-31 2022-06-14 Uber Technologies, Inc. Automatic selection of map detail levels
CN108303098B (zh) * 2018-02-09 2018-09-25 上海思岚科技有限公司 机器人路径规划方法及设备
DE102018204293A1 (de) * 2018-03-21 2019-09-26 Bayerische Motoren Werke Aktiengesellschaft Navigation eines Kraftfahrzeugs
US11035681B2 (en) * 2018-07-20 2021-06-15 Verizon Patent And Licensing Inc. Preserving original route information after recalculation of a route
CN109583626B (zh) * 2018-10-30 2020-12-01 厦门大学 路网拓扑重建方法、介质及系统
CN109767638B (zh) * 2018-12-17 2021-08-10 北京百度网讯科技有限公司 车辆控制方法、装置、设备及计算机可读存储介质
CN110220515B (zh) * 2019-06-05 2021-11-26 北京四维图新科技股份有限公司 一种路线数据的生成方法、设备以及可读介质
EP4004895A4 (en) * 2019-07-26 2023-08-23 Telefonaktiebolaget LM Ericsson (publ) MOBILE DEVICE AND METHOD FOR DRIVING TOWARDS A TARGET USING A COMMUNICATION NETWORK
CN112997048A (zh) * 2019-08-12 2021-06-18 谷歌有限责任公司 使用射频信号强度以改进导航服务中的路线选项
CN113133317A (zh) * 2019-11-14 2021-07-16 谷歌有限责任公司 离线地图数据的优先提供和检索
CA3177357A1 (en) * 2020-05-01 2021-11-04 Christopher Edward Holden Dynamic data tiling
US11978160B2 (en) 2021-07-13 2024-05-07 Daniel E. Curtis GPU-based digital map tile generation method and system

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7432830B2 (en) * 1994-06-24 2008-10-07 Navteq North America, Llc Electronic navigation system and method
US5848373A (en) * 1994-06-24 1998-12-08 Delorme Publishing Company Computer aided map location system
JP2002073621A (ja) * 2000-08-30 2002-03-12 Toshiba Corp 地図情報提供サービスの方法
JP2003004468A (ja) * 2001-06-26 2003-01-08 Alpine Electronics Inc ナビゲーション装置及びその地図表示方法
US7085916B1 (en) * 2001-10-26 2006-08-01 Lsi Logic Corporation Efficient instruction prefetch mechanism employing selective validity of cached instructions for digital signal processor and method of operation thereof
JP2003330968A (ja) * 2002-05-08 2003-11-21 Mitsubishi Electric Corp 地図表示装置及び地図表示プログラム
JP3975963B2 (ja) * 2003-04-28 2007-09-12 株式会社日立製作所 通信型ナビゲーションシステム
EP1555511A4 (en) * 2002-10-22 2011-12-21 Hitachi Ltd METHOD FOR DELIVERING MAP DATA FOR NAVIGATION AND COMMUNICATION SYSTEM
US7739138B2 (en) * 2003-05-19 2010-06-15 Trimble Navigation Limited Automated utility supply management system integrating data sources including geographic information systems (GIS) data
US9607092B2 (en) * 2003-05-20 2017-03-28 Excalibur Ip, Llc Mapping method and system
US7342516B2 (en) * 2003-10-08 2008-03-11 Hitachi, Ltd. Method and apparatus for communicating map and route guidance information for vehicle navigation
JP4353051B2 (ja) * 2004-09-30 2009-10-28 ブラザー工業株式会社 ログ管理プログラム、ログ管理サーバ、及び、ログ管理システム
US7734741B2 (en) * 2004-12-13 2010-06-08 Intel Corporation Method, system, and apparatus for dynamic reconfiguration of resources
US20070011136A1 (en) * 2005-07-05 2007-01-11 International Business Machines Corporation Employing an identifier for an account of one domain in another domain to facilitate access of data on shared storage media
US7634354B2 (en) * 2005-08-31 2009-12-15 Microsoft Corporation Location signposting and orientation
US8131718B2 (en) * 2005-12-13 2012-03-06 Muse Green Investments LLC Intelligent data retrieval system
US8806177B2 (en) * 2006-07-07 2014-08-12 International Business Machines Corporation Prefetch engine based translation prefetching
EP1909066A1 (en) * 2006-10-05 2008-04-09 Research In Motion Limited Improved Data Retrieval Method for Location Based Services on a Wireless Device
US9076332B2 (en) * 2006-10-19 2015-07-07 Makor Issues And Rights Ltd. Multi-objective optimization for real time traffic light control and navigation systems for urban saturated networks
CN101162150B (zh) 2006-11-30 2012-03-21 厦门雅迅网络股份有限公司 一种联网车载导航设备中使用分幅数据搜寻跨市跨省路径的计算方法
US20080132249A1 (en) 2006-12-05 2008-06-05 Palm, Inc. Local caching of map data based on carrier coverage data
JP5115163B2 (ja) * 2006-12-08 2013-01-09 株式会社デンソー 車載ハンズフリー装置およびデータ転送方法
KR20080071228A (ko) * 2007-01-24 2008-08-04 팅크웨어(주) 지도 제공방법 및 지도 서비스 제공 시스템
US8768612B2 (en) * 2007-06-01 2014-07-01 International Business Machines Corporation Stream processing based intelligent transport systems
CN101358851A (zh) 2007-08-03 2009-02-04 北京灵图软件技术有限公司 一种在本地缓存导航数据的方法、系统及客户端装置
US8204870B2 (en) * 2007-08-03 2012-06-19 Sybase, Inc. Unwired enterprise platform
US8374782B2 (en) * 2007-08-29 2013-02-12 Vodafone Group Services Limited Pre-fetching navigation maps
CN101458087B (zh) * 2007-12-14 2013-01-09 环达电脑(上海)有限公司 使用图像地图的导航装置及其方法
JP5291116B2 (ja) * 2007-12-20 2013-09-18 トムトム インターナショナル ベスローテン フエンノートシャップ ナビゲーション装置及びそれを動作させる方法
US8103441B2 (en) * 2008-06-26 2012-01-24 Microsoft Corporation Caching navigation content for intermittently connected devices
US8825387B2 (en) * 2008-07-25 2014-09-02 Navteq B.V. Positioning open area maps
JP5309808B2 (ja) * 2008-09-04 2013-10-09 セイコーエプソン株式会社 液体吐出装置、及び、液体吐出装置の制御方法
CA2725787A1 (en) * 2008-12-10 2010-06-17 Tele Atlas North America, Inc. A map database, having vectors for determining destinations, and vector determination method
WO2010075309A2 (en) * 2008-12-23 2010-07-01 Zhijing George Mou Method and system for multi-dimensional and geographic search
US20100180005A1 (en) * 2009-01-12 2010-07-15 Viasat, Inc. Cache cycling
JP2010197311A (ja) * 2009-02-26 2010-09-09 Ricoh Co Ltd 通信装置
KR101541809B1 (ko) * 2009-03-04 2015-08-05 삼성전자주식회사 휴대용 단말기에서 맵 데이터를 수신하기 위한 장치 및 방법
US8532925B2 (en) * 2009-05-08 2013-09-10 Alpine Electronics, Inc. Spatial indexing method and apparatus for navigation system for indexing and retrieval of XML map data
US8095617B2 (en) * 2009-06-30 2012-01-10 Oracle America Inc. Caching data in a cluster computing system which avoids false-sharing conflicts
US8364402B2 (en) * 2009-08-20 2013-01-29 Ford Global Technologies, Llc Methods and systems for testing navigation routes
US8346279B1 (en) * 2009-11-10 2013-01-01 Cellco Partnership Mobile device navigation
ES2569221T3 (es) * 2010-06-17 2016-05-09 Tomtom International B.V. Dispositivo y método de navegación
US8315791B2 (en) * 2010-06-18 2012-11-20 Nokia Coporation Method and apparatus for providing smart zooming of a geographic representation
US8327304B2 (en) * 2010-11-18 2012-12-04 International Business Machines Corporation Partitioning for hardware-accelerated functional verification
US8744757B2 (en) * 2011-05-19 2014-06-03 SK Planet Co., Ltd Real-time map data updating system and method
CN103164406B (zh) * 2011-12-08 2015-11-25 北京中交兴路信息科技有限公司 移动目标信息处理方法及系统
CN102607569B (zh) * 2012-01-17 2014-12-10 武汉光庭信息技术有限公司 导航中大比例尺水系自动生成多重小比例尺数据的方法
CN103309898A (zh) * 2012-03-15 2013-09-18 苏州市国贸电子系统工程有限公司 一种离散文件记录索引搜索更新方法
US20150321558A1 (en) * 2012-12-03 2015-11-12 Mobile Devices Ingenierie Information device for a vehicle driver and method to control same
CN103888934B (zh) * 2012-12-21 2018-06-22 腾讯科技(深圳)有限公司 一种移动终端缓存管理装置及管理方法
US9886734B2 (en) * 2013-04-25 2018-02-06 Intel Corporation Techniques for graphics data prefetching
CN103366553A (zh) * 2013-06-28 2013-10-23 银江股份有限公司 一种基于无线终端的实时交通服务信息获取方法及系统

Also Published As

Publication number Publication date
CN103493116B (zh) 2016-06-29
US9267803B2 (en) 2016-02-23
CN103493116A (zh) 2014-01-01
KR101892675B1 (ko) 2018-10-04
EP3309515A1 (en) 2018-04-18
EP2649602A2 (en) 2013-10-16
JP6101630B2 (ja) 2017-03-22
EP3309515B1 (en) 2020-05-27
WO2012078755A3 (en) 2012-09-27
US20120143504A1 (en) 2012-06-07
JP2014508278A (ja) 2014-04-03
DE202011110851U1 (de) 2016-11-09
US9404759B2 (en) 2016-08-02
EP2649602A4 (en) 2015-05-27
WO2012078755A2 (en) 2012-06-14
US20160102988A1 (en) 2016-04-14

Similar Documents

Publication Publication Date Title
KR101892675B1 (ko) 라우트 안내의 방법 및 장치
US20220155084A1 (en) System And Method For Storing And Providing Routes
EP1792141B1 (en) Displaying a map having a close known location
KR101556618B1 (ko) 다양한 사용자 네트워크 환경 지원 및 자유로운 데이터 권역 설정을 위한 지도 데이터 제공 장치 및 방법과 그 시스템
US20150230060A1 (en) Method and apparatus for generating, managing, and sharing moving path
JP2008175830A (ja) 分散型計算アーキテクチャによるナビゲーション・システム
JP2005024555A (ja) カーナビゲーションシステムおよびその地図バージョン管理方法
CN101390048A (zh) 智能的基于位置的服务和导航混合系统
CN102483329A (zh) 具有预测性多重路线的导航系统及其操作方法
KR20110104474A (ko) 내비게이션 기기 및 방법
JP4520839B2 (ja) 地図更新システム、ナビゲーション装置、配信装置
WO2005032177A1 (en) Method and system for providing map data search service
KR20090043099A (ko) 지리적 위치 정보에 기반한 네트워크 관리 방법 및 시스템
CN101354260A (zh) 一种通讯导航数据更新系统和方法
KR101955559B1 (ko) Poi 정보 제공 시스템과 방법 및 이를 지원하는 장치와 단말기
KR101015414B1 (ko) 네비게이션 장치, 시스템과 웹지도 검색서버 및 검색어 정보 업데이트 방법
JP2002365077A (ja) 情報端末装置および地図情報提供システム
KR101839514B1 (ko) 지도데이터 부분 업데이트 방법 및 이를 위한 단말 장치
JP2015175683A (ja) ナビゲーション装置およびナビゲーション方法
KR101079932B1 (ko) 무선 네트워크에서의 지도 정보 제공 방법 및 그 방법이 적용된 지도 정보 서버와 통신 단말기
He et al. Design and implementation of GPS&GIS-based mobile navigation system
KR20110041244A (ko) Gps 신호 수신용 단말, 공간 정보 제공 서버 및 그의 공간 정보 제공 방법

Legal Events

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