KR102024837B1 - 렌더링 및 오프라인 라우팅을 위해 맵 데이터를 사전-인출하는 방법 - Google Patents

렌더링 및 오프라인 라우팅을 위해 맵 데이터를 사전-인출하는 방법 Download PDF

Info

Publication number
KR102024837B1
KR102024837B1 KR1020147018380A KR20147018380A KR102024837B1 KR 102024837 B1 KR102024837 B1 KR 102024837B1 KR 1020147018380 A KR1020147018380 A KR 1020147018380A KR 20147018380 A KR20147018380 A KR 20147018380A KR 102024837 B1 KR102024837 B1 KR 102024837B1
Authority
KR
South Korea
Prior art keywords
route
map data
map
routes
priority
Prior art date
Application number
KR1020147018380A
Other languages
English (en)
Other versions
KR20140102726A (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 KR20140102726A publication Critical patent/KR20140102726A/ko
Application granted granted Critical
Publication of KR102024837B1 publication Critical patent/KR102024837B1/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/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/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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)

Abstract

본 출원은, 제1 루트를 아우르는 영역 및 제1 루트에 기반하는 보조 루트를 아우르는 영역에 대응하는 맵 데이터 타일을 선택함으로써, 이용가능한 맵 데이터 전체 중 선택된 서브세트로서 맵 데이터를 인출하기 위한 기술을 설명한다. 액세스된 맵 데이터의 양은 보조 루트의 우선순위에 기반하여 조절될 수 있다.

Description

렌더링 및 오프라인 라우팅을 위해 맵 데이터를 사전-인출하는 방법{METHOD OF PRE-FETCHING MAP DATA FOR RENDERING AND OFFLINE ROUTING}
본 발명은 전자적 맵 디스플레이 시스템과 같이 맵 렌더링 시스템에 관한 것이고, 더 구체적으로는 원격 데이터베이스로부터 맵 데이터를 사전-인출하기 위한 방법 및 시스템에 관한 것이다.
모바일 폰, 피디에이, 태블릿 퍼스널 컴퓨터 등과 같은 모바일 디바이스의 사용이 널리 퍼짐에 따라, 변하는 유형의 데이터에 쉽게 액세스하려는 소비자 요구가 높은 속도로 계속 자라나고 있다. 이러한 디바이스는 텍스트, 음성, 이미지, 및 비디오 데이터를 송신, 수신 및 저장하도록 사용된다. 소비자는 흔히 이러한 디바이스 상에 다수의 애플리케이션을 저장하려고 고려해서, 모바일 디바이스가 내부 프로세서 속도보다 이용가능한 애플리케이션의 수에 대해 더 자주 홍보되게 된다. 소비자는 데이터로의 고속 액세스를 소망하게 되었지만, 이러한 애플리케이션을 실행하는데 요구되는 순 데이터량은 디바이스 레벨 상에도 그리고 네트워크 레벨에서도 적용할 수 있는 데이터 관리에 프리미엄을 둔다. 이러한 프리미엄은 (예를 들어, 원격 데이터베이스로부터 맵 데이터를 검색하는 시스템에 대해) 전형적으로 비교적 다량의 네트워크 데이터를 요구할 수 있는 매핑 애플리케이션과 같은 애플리케이션의 유효성을 제한할 수 있다.
매핑 애플리케이션은 차량 네비게이션 시스템, 휴대용 GPS 유닛, 모바일 폰, 및 휴대용 컴퓨터를 포함하는 다양한 모바일 디바이스에서 찾아볼 수 있다. 이러한 애플리케이션은 가장 빈번하게 사용되는 애플리케이션들 중에 있는 것들이고 개인 안전에 필요하다고 일부는 생각한다. 기저 디지털 맵이 사용자의 관점으로부터 사용이 용이하기는 하지만, 디지털 맵을 생성하는 것은 데이터 집약적 프로세스이다. 모든 디지털 맵이 수백만의 거리 및 교차로에 대응하는 원시 데이터 세트로 시작할 수 있다. 그 원시 맵 데이터는 다른 양 및 유형의 정보를 각각 제공하는 다양한 소스로부터 유도된다. 위치를 효과적으로 매핑하고, 기점과 목적지 간 운전 루트의 위치를 찾아내고, 관심 지점을 식별하고 하는 등은 상당한 양의 데이터를 요구한다. 더욱, 많은 매핑 애플리케이션은 다른 줌 레벨로, 즉, 다른 스케일로 다른 맵의 디스플레이를 요구하고, 이 경우 상세의 양 및 그 상세의 본성은 각각의 줌 레벨에서 변한다. 예를 들어, 목표로부터 가장 멀게 스케일링된 가장 낮은 줌 레벨에서, 맵 데이터는 대륙, 대양, 및 주요 땅덩어리의 경계를 포함하고 있을 수 있다. 그 다음의 줌 레벨에서, 그 맵 데이터는 나라, 주, 고국, 보호국, 다른 주요 지리적 지역을 식별할 수 있다. 더욱 그 다음의 줌 레벨에 있는 동안, 그 맵 데이터는 주요 도로, 도시, 마을을 포함하고 있을 수 있고, 마침내 맵 데이터는 지역에 따라 보도 및 통로에 이르기까지 작은 도로, 빌딩을 포함하고 있을 수 있다. 상세의 양은 각각의 줌 레벨에서 맵 데이터를 구성하는데 사용된 정보의 소스에 의해 결정된다. 그러나 줌 레벨이 어떻든지간에, 정보량은 방대하고, 일반적으로, 모바일 디바이스에 총 저장하기에 너무 크고 무선 통신 네트워크를 통해 계속 다운로드하기에 너무 클 수 있다.
동작에 있어서, 전형적으로 매핑 애플리케이션은 디바이스에 대한 현재 전지구 측위 위성(GPS) 데이터 또는 현재 셀룰러 네트워크 위치 데이터와 같이 모바일 디바이스의 현재 위치에 기반하여 그리고/또는 사용자가 관심 위치를 입력하는 것에 응답하여 그리고 무선 통신 네트워크를 통하여 맵 데이터를 모바일 디바이스에 다운로드한다. 맵 데이터를 다운로드하기 위한 종래 기술은 모바일 디바이스가 무선 통신 네트워크 상의 원격 프로세서에 이러한 위치 데이터를 통신하게 하는 것이고, 응답하여, 사용자에게 디스플레이를 위해 요청된 맵 데이터 또는 모든 맵 데이터를 모바일 디바이스에 다운로드한다.
일반적으로 맵 데이터는 맵 데이터 타일로 알려져 있는 블록에 저장될 수 있는데, 이 경우 맵 데이터 타일의 수는 줌 레벨에 따라 증가한다. 원격 프로세서는 특정 위치 또는 지역에 대해 이용가능한 맵 데이터 타일의 서브세트를 맵 디스플레이 애플리케이션을 통해 어느 특정 시간에 저장 및 디스플레이를 위해 모바일 디바이스에 제공한다. 다수의 맵 데이터 타일을 제공함으로써, 모바일 디바이스는 소비자가 인접 또는 다른 매핑 위치를 찾는 매핑 애플리케이션을 사용하여 영역을 가로질러 스크롤함에 따라 소비자에게의 디스플레이를 위해 맵 데이터를 버퍼링할 수 있다. 그렇지만, 어느 특정 시간에 제공된 맵 데이터 타일의 수가 많아질수록 다운로드 시간은 더 길고 사용자가 맵 디스플레이 애플리케이션을 사용하고 있는 동안 버퍼 메모리 사용량은 더 높다.
맵 데이터 타일은 더 낮은 우선순위 데이터보다 더 높은 우선순위 매핑 데이터를 더 효율적으로 검색하도록 보기 컨텍스트를 이용할 수 없는 비효율적 방식으로 다운로드 및 캐싱될 수 있다. 하나의 그러한 보기 컨텍스트는 루트의 다른 부분들에 대한 맵 데이터를 사전-인출하는 것에 관하여 맵 데이터와 관련된다. 추후 사용을 위해 데이터를 사전-인출하는 것은 (예를 들어, 맵 데이터베이스 서버를 통한) 맵 데이터베이스로의 접속이 기껏해야 간헐적일 뿐일 수 있을 경우 모바일 디바이스에서 중요하다. 더욱, 모바일 컴퓨팅 디바이스는 예를 들어 데스크톱 컴퓨터보다 더 대역폭 및 프로세서 제한적이기 때문에, 맵 데이터의 검색 및 프로세싱의 효율은 모바일 애플리케이션에 있어서 더더욱 중대하다. 결과로서, 대역폭 및 프로세싱 서비스를 낭비함이 없이, 제한된 컴퓨팅 디바이스의 시각적 요건을 충분히 만족시키도록 맵 데이터 특히 맵 데이터 타일을 검색(예를 들어, 다운로드) 및/또는 프로세싱하기 위한 더 지능적 메커니즘을 가질 필요가 있다.
매핑 애플리케이션을 위한 맵 데이터를 사전-인출하기 위한 컴퓨터-구현 방법은 제1 루트를 발생시키는 기능을 개시하는 단계를 포함하되, 제1 루트는 출발지, 목적지, 출발지를 목적지에 연결하는 도로 세트, 및 제1 주행 방향에 의해 정의된다. 그 방법은 그 기능을 개시하는 단계에 응답하여 맵 데이터베이스로부터 보조 루트 세트에 대응하는 사전-인출 맵 데이터 타일 세트에 액세스한다. 그 방법은 사전-인출 맵 데이터 타일 세트를 로컬 메모리에 저장한다. 일 실시예에 있어서, 그 방법은 맵 데이터베이스로부터 사전-인출 맵 데이터 타일 세트에 액세스하고 보조 루트 세트 중 하나를 발생시키는 기능이 개시되기 전에 사전-인출 맵 데이터 타일 세트를 로컬 메모리에 저장한다.
일 실시예에 있어서, 보조 루트 세트는 제1 루트의 반환 루트 세트를 포함하되, 반환 루트의 각각은 제1 루트의 제1 주행 방향과 반대인 제2 주행 방향에 의해 정의된다. 반환 루트 세트 중 적어도 하나의 반환 루트는 제1 루트와 다른 도로 시퀀스를 포함한다. 보조 루트 세트는 제1 루트로부터 외부 관심 지점까지의 루트를 포함할 수 있다. 그 방법은 소정 수의 파라미터에 기반하여 보조 루트 세트 및/또는 사전-인출 맵 데이터 타일 세트를 결정하는 단계를 포함한다.
또 다른 실시예에 있어서, 컴퓨터 디바이스는 통신 네트워크 인터페이스, 하나 이상의 프로세서, 하나 이상의 프로세서에 결합된 하나 이상의 메모리, 및 하나 이상의 프로세서에 결합된 디스플레이 디바이스를 포함한다. 하나 이상의 메모리는 제1 루트를 발생시키는 기능을 개시하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함하고, 제1 루트는 출발지, 목적지, 출발지를 목적지에 연결하는 도로 세트, 및 제1 주행 방향에 의해 정의된다. 도로 세트는 도로 시퀀스일 수 있다. 하나 이상의 메모리는 제1 루트에 기반하여 보조 루트 세트를 결정하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함하되, 보조 루트 세트는 제1 루트의 제1 주행 방향과 반대인 제2 주행 방향에 의해 정의되는 반환 루트 세트를 포함하고, 반환 루트 세트 중 적어도 하나의 반환 루트는 제1 루트와 다른 도로 세트를 포함한다. 하나 이상의 메모리는 보조 루트 세트 중 적어도 하나의 맵 표면 영역에 대응하는 제1 사전-인출 맵 데이터 타일 세트를 결정하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함한다. 하나 이상의 메모리는 맵 데이터베이스로부터 제1 사전-인출 맵 데이터 타일 세트에 액세스하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함하되, 제1 사전-인출 맵 데이터 타일 세트는 맵 데이터베이스에 저장된 총 수의 맵 데이터 타일의 서브세트이다. 하나 이상의 메모리는 제1 사전-인출 맵 데이터 타일 세트를 디스플레이하는 기능이 클라이언트 컴퓨팅 디바이스에서 개시되기 전에 제1 사전-인출 맵 데이터 타일 세트를 로컬 메모리에 저장하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함한다.
또 다른 실시예에 있어서, 컴퓨터 디바이스는 통신 네트워크 인터페이스, 하나 이상의 프로세서, 하나 이상의 프로세서에 결합된 하나 이상의 메모리, 및 하나 이상의 프로세서에 결합된 디스플레이 디바이스를 포함한다. 하나 이상의 메모리는 제1 루트에 대응하는 맵 데이터에 대한 요청을 송신하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함하고, 제1 루트는 출발지, 목적지, 출발지를 목적지에 연결하는 도로 시퀀스, 및 제1 주행 방향에 의해 정의된다. 하나 이상의 메모리는, 요청에 응답하여, 제1 루트를 포함하는 주변 맵 표면 영역에 대응하는 제1 사전-인출 맵 데이터 타일 세트 및 제2 루트를 포함하는 주변 맵 표면 영역에 대응하는 제2 사전-인출 맵 데이터 타일 세트를 수신하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함하되, 제2 루트는 제1 루트의 주행 방향과 반대인 주행 방향에 의해 정의되는 반환 루트이고, 반환 루트는 제1 루트와 다른 도로 시퀀스를 포함한다. 하나 이상의 메모리는 컴퓨터 디바이스의 하나 이상의 메모리에 제1 및 제2 사전-인출 맵 데이터 타일 세트를 저장하도록 프로세서 상에서 실행되는 컴퓨터 실행가능한 명령어를 포함한다.
도 1은 하나 이상의 맵 이미지 렌더링 디바이스와 서버에 저장된 맵 데이터베이스 간 통신을 구현하는 맵 이미징 시스템의 하이-레벨 블록 선도;
도 2는 맵 백터 데이터를 사용하여 맵 이미지를 렌더링하도록 사용되는 이미지 렌더링 엔진의 하이 레벨 블록 선도;
도 3은 도 1의 맵 데이터베이스에서 사용될 수 있는 데이터 구조의 일부의 예시도;
도 4a, 도 4b 및 도 4c는, 각자, 3개의 다른 줌 레벨에서 맵 데이터 표현의 예시도;
도 5는 루트를 디스플레이하는 보기 윈도의 예시도;
도 6은 맵 데이터 타일에 대응하는 루트 주변 이산 영역을 보여주는 루트의 예시도;
도 7은 맵 타일 반경에 대응하는 식별된 사전-인출 맵 데이터 타일을 포함하는 맵 데이터 타일의 예시도;
도 8은 대응하는 타일 반경(810)으로 루트 세그먼트(810)(예를 들어, 도로 세그먼트)를 따른 2개의 지점(802, 804)을 예시한 도면;
도 9는 타일 반경을 사용하여 사전-인출 맵 데이터 타일을 결정하기 위한 프로세스 흐름 예시도;
도 10은 결정된 루트를 아우르는 맵 데이터에 대응하는 영역의 예시도;
도 11a는 출발지와 목적지 간 루트 상에 특별 관심 지점을 갖는 루트의 맵 디스플레이 예시도;
도 11b는 루트로부터 떨어져 있는 관심 지점을 갖는 루트의 맵 디스플레이 예시도;
도 12는 2개의 다른 줌 레벨에 대해 식별된 사전-인출 맵 데이터 타일을 포함하는 맵 데이터 타일의 예시도;
도 13은 사전-인출될 수 있는 맵 데이터 타일 세트의 액세스 시퀀스를 결정하기 위한 프로세스 흐름의 예시도;
도 14a 내지 도 14b는 보조 루트 세트에 대해 사전-인출 맵 데이터를 결정하기 위한 프로세스 흐름의 예시도;
도 15는 보조 루트 세트의 맵 보기 윈도의 예시도;
도 16은 주 루트 근방 내 우선순위 지점으로의 루트 세트의 맵 보기 윈도의 예시도;
도 17은 보조 루트의 다수의 다른 카테고리를 보여주는 차트의 예시도;
도 18은 주 루트와 연관된 보조 루트 세트를 결정하기 위한 프로세스 흐름의 예시도.
본 출원은 일반적으로 맵 데이터베이스로부터 맵 데이터를 사전-인출하는 것에 관한 것이다. 맵 데이터를 사전-인출하는 것은 맵 데이터가 사용에 즉시 요구되기 전에 애플리케이션 또는 디바이스에 의한 맵 데이터의 액세스/검색을 지칭할 수 있다. 일 실시예에 있어서, 맵 데이터는 사전-인출된 데이터를 사용하는 기능의 개시 전에 사전-인출될 수 있다. 예를 들어, 맵 데이터베이스로부터의 맵 데이터는 사용자가 그 맵 데이터를 사용하는 기능(예를 들어, 디스플레이 또는 렌더링 기능)을 활성화 또는 실행하기 전에 컴퓨팅 디바이스에 의해 액세스 및/또는 검색될 수 있다. 맵 데이터를 사전-인출하는 이점은, 맵 데이터베이스가 이용 불가능한 기간 동안(예를 들어, 모바일 컴퓨팅 디바이스가 오프라인일 때), 사전-인출된 맵 데이터가 사전-인출된 루트를 디스플레이하는 것과 같이 일부 서비스 또는 기능을 제공하도록 매핑 애플리케이션 또는 컴퓨팅 디바이스에 이용가능할 수 있다는 것이다. 일반적으로, 루트는 2개의 종점(예를 들어, 출발지와 목적지) 및 2개의 종점을 연결하는 경로 또는 도로 세트를 포함한다. 경로 또는 도로 세트는 시퀀스를 가질 수 있다. 시퀀스는 또한 주행 방향에 대응할 수 있다. 루트 및 루트 유형이 아래에서 더 상세하게 설명된다.
더 구체적으로, 본 출원은, 루트를 아우르는 영역에 대응하는 맵 데이터 타일을 선택함으로써, 이용가능한 맵 데이터 전체의 선택된 서브세트로서 맵 데이터를 인출하기 위한 기술을 설명한다. 액세스된 맵 데이터량은 루트를 따른 지점의 우선순위에 기반하여 조절될 수 있다. 예시적 구현에 있어서, 더 큰 양의 맵 데이터는 루트의 중간 지점에 대해서보다 루트의 종점(출발지 및 목적지 위치를 표현)에 대해 인출 또는 검색될 수 있다. 어떤 맵 데이터가 루트 주위 영역에 대응하는지 결정하기 위해, 루트를 따른 맵 표면의 영역에 대응하는 액세스될 맵 데이터 타일을 지정하도록 맵 타일 반경 세트가 사용될 수 있다.
이제 도 1을 참조하면, 일 실시예에 따라 맵-관련 이미징 시스템(10)은 서버(14)에 또는, 예를 들어, 중앙 사이트에 또는 다양한 다른 이격된 사이트에 위치하는 다수의 서버에 저장된 맵 데이터베이스(12)를 포함할 수 있고, 또한 맵 렌더링 디바이스 또는 맵 렌더링 엔진을 저장 및 구현하도록 각각 구성될 수 있는 다수의 맵 클라이언트 디바이스(16, 18, 20, 22)를 포함할 수 있다. 맵 클라이언트 디바이스(16 내지 22)는, 예를 들어, 하드와이어드 또는 무선 랜(LAN), 도시권 통신망(MAN) 또는 광역 통신망(WAN), 인터넷 또는 그 어느 조합을 포함하는 어느 하드와이어드 또는 무선 통신 네트워크(25)를 통해 서버(14)에 접속될 수 있다. 맵 클라이언트 디바이스(16 내지 22)는, 예를 들어, 모바일 폰 디바이스(18), 랩톱, 태블릿, 데스크톱 또는 다른 적합한 유형의 컴퓨터(16, 20)와 같은 컴퓨터, 또는 자동차 네비게이션 시스템(22)의 컴포넌트 같은 다른 이미징 시스템의 컴포넌트 등일 수 있다. 더욱, 클라이언트 디바이스(16 내지 22)는, 전화 및 케이블 하드웨어와 같은 하드와이어드 기반 통신 구조 및/또는 예를 들어 무선 LAN 및 WAN, 위성 및 셀룰러 폰 통신 시스템 등을 포함하는 무선 통신 네트워크와 같은 무선 통신 구조를 사용하는 것들을 포함하는 어느 공중 이용가능 및/또는 사적 소유 통신 네트워크와 같은 어느 적합한 통신 시스템을 통해 서버(14)에 통신 접속될 수 있다.
맵 데이터베이스(12)는 래스터 이미지 맵 데이터 및 벡터 이미지 맵 데이터를 포함하는 어느 소망 유형 또는 종류의 맵 데이터를 저장할 수 있다. 그렇지만, 여기서 설명되는 이미지 렌더링 시스템은, 일부 실시예에서는, 디스플레이될 이미지 내 수많은 이미지 오브젝트, 엘리먼트 또는 프리미티브 세트의 각각에 대해 일련의 정점 또는 정점 데이터 포인트를 정의 또는 포함할 수 있는 벡터 이미지 데이터와의 사용에 최적화될 수 있다. 일반적으로 말하면, 벡터 데이터에 의해 정의된 이미지 오브젝트의 각각은 그와 연관된 복수의 정점을 가질 수 있고 이러한 정점은 클라이언트 디바이스(16 내지 22) 중 하나 이상을 통해 맵 관련 이미지 오브젝트를 사용자에게 디스플레이하도록 사용될 수 있다.
또한 이해될 바와 같이, 클라이언트 디바이스(16 내지 22)의 각각은 연관된 디스플레이 디바이스(34) 상에 그래픽(이미지)을 렌더링 또는 구현하도록 알려진 방식으로 일반적으로 프로그래밍 및 상호접속될 수 있는 하나 이상의 프로세서(30), 하나 이상의 메모리(32), 디스플레이 디바이스(34), 및 많은 경우에서는 래스터라이저 또는 그래픽 카드(36)를 갖는 이미지 렌더링 엔진을 포함할 수 있다. 어느 특정 클라이언트 디바이스(16 내지 22)를 위한 디스플레이 디바이스(34)는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 플라즈마 디스플레이, 캐소드 레이 튜브(CRT) 디스플레이, 또는 어느 다른 유형의 기지의 또는 적합한 전자적 디스플레이와 같은 전자적 디스플레이 디바이스의 어느 유형일 수 있다.
일반적으로 말하면, 도 1의 맵-관련 이미징 시스템(10)은, 사용자가, 클라이언트 디바이스(16 내지 22) 중 하나에서, 서버(14)를 통해 맵 데이터베이스(12)로부터 맵 정보 또는 맵 관련 데이터를 획득하거나 그와 통신하도록 동작하고 그 후 수신된 맵 데이터에 기반하여 맵 이미지를 디스플레이 또는 렌더링할 수 있는 맵 애플리케이션(도 1에는 도시하지 않음)을 열거나 실행할 수 있게 되도록 동작할 수 있다. 맵 애플리케이션은 사용자로 하여금 맵 데이터베이스(12)에 저장된 맵 데이터의 다른 지리적 부분들을 보고, 특정 지리적 위치 상에서 줌인 또는 줌아웃하고, 디스플레이되고 있는 맵의 2-차원 또는 3-차원 보기 각도를 회전시키거나, 돌리거나, 변경 등 가능하게 할 수 있다. 더 구체적으로, 아래에 설명되는 시스템을 사용하여 디스플레이 디바이스 또는 디스플레이 스크린(34) 상에 맵 이미지를 렌더링할 때, 클라이언트 디바이스(16 내지 22)의 각각은 맵 데이터베이스(12)로부터 벡터 데이터 형태로 맵 데이터를 다운로드할 수 있고 연관된 디스플레이 디바이스(34) 상에 이미지를 렌더링하도록 하나 이상의 이미지 셰이더를 사용하여 그 벡터 데이터를 프로세싱할 수 있다.
이제 도 2를 보면, 클라이언트 디바이스(16 내지 22) 중 하나에 의해 구현 또는 그와 연관된 이미지 발생 또는 이미지 렌더링 디바이스(40)가 더 상세히 예시된다. 도 2의 이미지 렌더링 시스템(40)은 2개의 프로세서(30a, 30b), 2개의 메모리(32a, 32b), 사용자 인터페이스(34) 및 래스터라이저(36)를 포함할 수 있다. 이러한 경우에 있어서, 프로세서(30b), 메모리(32b) 및 래스터라이저(36)는 별개 그래픽 카드(수평선 아래 표시) 상에 배치될 수 있지만, 이것은 모든 실시예에 있어서 그럴 필요는 없다. 예를 들어, 다른 실시예에 있어서는, 단일 프로세서가 대신 사용될 수 있다. 부가적으로, 이미지 렌더링 시스템(40)은 네트워크 인터페이스(42), 통신 및 저장 루틴(43), 및 메모리(32a) 상에 저장된 내부에 맵 디스플레이 로직을 갖는 하나 이상의 맵 애플리케이션(48)을 포함할 수 있는데, 프로세서(30a) 상에서 실행될 수 있다. 마찬가지로, 예를 들어 정점 셰이더(44) 및 단편 셰이더(46) 형태의 하나 이상의 이미지 셰이더는 메모리(32b) 상에 저장되고 프로세서(30b) 상에서 실행된다. 메모리(32a, 32b)는 휘발성 및 비-휘발성 메모리 중 하나 또는 둘 다를 포함할 수 있고 루틴 및 셰이더는 아래에 설명되는 기능성을 제공하도록 프로세서(30a, 30b) 상에서 실행될 수 있다. 네트워크 인터페이스(42)는, 예를 들어, 사용자 인터페이스 또는 디스플레이 디바이스(34) 상에 이미지 디스플레이를 생성하는데 사용하기 위한 벡터 데이터 형태의 이미지 데이터를 획득하도록 하드와이어드 또는 무선 통신 네트워크를 통해 도 1의 서버(14)와 통신하도록 동작하는 주지의 소프트웨어 및/또는 하드웨어 컴포넌트를 포함할 수 있다. 또한 이미지 렌더링 디바이스(40)는 예를 들어 버퍼 또는 휘발성 메모리일 수 있는 데이터 메모리(49)를 포함할 수 있는데, 더 상세히 설명될 바와 같이 맵 데이터베이스(12)로부터 수신된 벡터 데이터, 어떠한 수의 정점 데이터 포인트를 포함하는 벡터 데이터 및 하나 이상의 룩업 테이블을 저장한다.
동작 동안, 맵 애플리케이션(48)의 맵 로직은 예를 들어 사용자 입력, GPS 신호, 사전에 저장된 로직 또는 프로그래밍 등을 사용하여 디스플레이 디바이스(34)를 통해 사용자에게 디스플레이하는데 필요한 특정 이미지 데이터를 결정하도록 프로세서(30) 상에서 실행될 수 있다. 애플리케이션(48)의 디스플레이 또는 맵 로직은, 맵 데이터베이스(12)로부터 바람직하게는 벡터 데이터 또는 압축된 벡터 데이터 형태로 맵 데이터를 획득하도록 네트워크 인터페이스(42)를 통해 서버(14)와 통신함으로써, 통신 루틴(43)을 사용하여, 맵 데이터베이스(12)와 상호작용할 수 있다. 이러한 벡터 데이터는 네트워크 인터페이스(42)를 통해 반환될 수 있고 루틴(43)에 의해 데이터 메모리(49)에 압축해제 및 저장될 수 있다. 특히, 맵 데이터베이스(12)로부터 다운로드된 데이터는 사용될 궁극적 벡터 데이터의 콤팩트, 구조화, 또는 그렇지 않으면 최적화 버전일 수 있고, 맵 애플리케이션(48)은 다운로드된 벡터 데이터를 프로세서(30a)를 사용하여 특정 정점 데이터 포인트로 변환하도록 동작할 수 있다. 일 실시예에 있어서, 서버(14)로부터 보내진 이미지 데이터는 스크린(34) 상에 디스플레이될 소정 수의 다른 이미지 엘리먼트 또는 이미지 오브젝트와 연관된 정점 세트의 각각에 대한 데이터를 일반적으로 정의하는 벡터 데이터 및 가능하게는 하나 이상의 룩업 테이블을 포함할 수 있다. 소망되면, 룩업 테이블이 내보내질 수 있거나, 들어있도록 디코딩될 수 있거나, 또는 벡터 그래픽을 사용하여 생성된 이미지의 일부분으로서 디스플레이될 특정 텍스처 또는 컬러 필드(픽셀 값)을 전형적으로 정의하는 기지 유형의 데이터 파일인 벡터 텍스처 맵 형태이도록 맵 애플리케이션(48)에 의해 발생될 수 있다. 더 구체적으로, 각각의 이미지 엘리먼트 또는 이미지 오브젝트에 대한 벡터 데이터는 이미지의 특정 엘리먼트 또는 오브젝트를 구성하는 하나 이상의 삼각형과 연관된 다수의 정점을 포함할 수 있다. 각각의 그러한 삼각형은 (정점 데이터 포인트에 의해 정의된) 3개의 정점을 포함하고 각각의 정점 데이터 포인트는 그와 연관된 정점 데이터를 갖는다. 일 실시예에 있어서, 각각의 정점 데이터 포인트는, 속성 레퍼런스뿐만 아니라, 레퍼런스 또는 가상 공간 내 정점의 2-차원 또는 3-차원 위치 또는 자리를 정의하는 정점 위치 데이터를 포함한다. 부가적으로 각각의 정점 데이터 포인트는 정점 데이터 포인트가 연관되는 이미지 오브젝트의 유형을 식별하는 오브젝트 유형 식별자와 같은 다른 정보를 포함할 수 있다. 여기서는 스타일 레퍼런스로서 또는 피처 레퍼런스로서 지칭되는 속성 레퍼런스는 데이터 메모리(43)에 다운로드 및 저장된 룩업 테이블 중 하나 이상 내 위치 또는 위치 세트를 참조하거나 가리킨다.
일반적으로 말하면, 특정 지리적 지역에 대한 맵 데이터베이스(12) 내 맵 데이터는 다른 줌 레벨로 저장될 수 있고, 이 경우 각각의 줌 레벨은, 일 실시예에서는, 다른 상세 레벨로 맵의 표면 또는 맵의 시각적 디스플레이를 구성하도록 사용될 수 있는, 맵 데이터 타일이라 칭하는, 복수의 맵 데이터 블록으로 형성된다. 도 3은 맵 데이터베이스(12)의 일부의 예시적 데이터 구조(200)를 도시한다. 특정 지리적 지역에 대한 맵 데이터는 수많은 (n)개의 다른 줌 레벨 데이터 구조(그 중 3개만 도시함)(202A, 202B, 202C)에 저장될 수 있고, 이 경우 각각의 데이터 구조는 복수의 맵 데이터 타일에 의해 형성된다. 설명의 목적으로 번호 매겨진 유일한 것인 데이터 구조(202B)는 18개의 맵 데이터 타일(204A-204R)로 형성되어 있는, 줌 레벨, z=2에서 특정 또는 고정 지리적 지역에 대한 맵 데이터를 도시한다. 맵 데이터 타일은 맵 디스플레이를 구성하기 위한 기본 빌딩 블록을 표현할 수 있다. 각각의 맵 데이터 타일은, 워터 라인, 컨트리 라인, 도시 경계, 주 라인, 산, 공원 등과 같이 도로, 빌딩 및 지리적 경계와 같은 다양한 맵 오브젝트 또는 맵 피처를 식별하는 데이터를 포함하여, 맵 디스플레이(예를 들어, 맵 표면)의 일부를 구성하는데 필요한 맵 데이터를 포함하고 있을 수 있다. 지리적 지역에 대한 맵 데이터는 특정 지리적 지역에 대한 다른 상세 레벨을 제공하도록 어떠한 수의 다른 줌 레벨 데이터 구조에 저장될 수 있다. 일 실시예에 있어서, 19개의 총 줌 레벨이 맵 데이터베이스(12)에 저장될 수 있다.
각각의 줌 레벨에서 고정된 지리적 지역에 대한 타일 수는, 예를 들어, 선형으로, 2차식으로, 지수적으로, 또는 그렇지 않으면 줌 레벨 번호가 증가함에 따라 증가할 수 있다. 도시된 예에서의 줌 레벨(z = 1, 2, 5)은, 각자, 동일한 지리적 영역 또는 지역을 커버하는 6개, 18개 및 60개의 맵 데이터 타일을 갖는다. 맵 데이터 타일 수가 줌 레벨이 증가함에 따라 동일 영역에 대해 증가할 수 있기 때문에, 줌 레벨은 단위 영역당 타일 수에 대응하는 맵 데이터의 밀도로 생각될 수 있다. 더 높은 줌 레벨은 일반적으로 단위 영역당 더 많은 타일을 요구하고 그래서 더 낮은 줌 레벨보다 더 높은 맵 데이터 밀도를 제공할 수 있다.
도시된 실시예에 있어서, 모든 맵 데이터는 맵 데이터 타일에 저장되고, 줌 레벨 데이터 구조 내 각각의 맵 데이터 타일은 동일 또는 유사한 메모리 할당 사이즈가 할당될 수 있다. 예를 들어, 각각의 타일(204A 내지 204R)은 사이즈가 10K바이트인 비트맵 이미지일 수 있다. 이것은, 예를 들어, 각각의 맵 데이터 타일이 동일 사이즈의 지리적 영역을 커버하게 함으로써 달성될 수 있다. 벡터 데이터를 포함하고 있는 맵 데이터 타일에 대해, 각각의 타일에 대한 데이터 사이즈는 달라질 수 있지만, 각각의 타일은, 일부 실시예에서는, 여전히 동일한 최대 메모리 공간이 할당될 수 있다. 도시되지는 않았지만, 다른 실시예에서는, 데이터 타일은 각각의 줌 레벨 데이터 구조 내 다른 메모리 공간 할당을 가질 수 있다. 일부 실시예에 있어서, 각각의 맵 데이터 타일은 비트맵 포맷으로 저장된 맵 데이터를 포함하고 있을 수 있는 한편 다른 실시예에서는 각각의 맵 데이터 타일은 벡터 포맷으로 저장된 맵 데이터를 포함하고 있을 수 있다.
도 4a 내지 도 4c는, 예를 들어, 사용자 인터페이스(34) 상에 완전히 또는 부분적으로 디스플레이될 수 있는 시각적 맵 디스플레이를 예시하고 있는데, 이 경우 각각의 도면은 다른 줌 레벨로 맵 표면의 시각적 디스플레이를 제공할 수 있다. 도시된 실시예에 있어서, 도 4a는 동일 사이즈의 지리적 영역을 커버하는 그리고 동일한 양의 메모리 사이즈를 갖는, 일련의 맵 데이터 타일(302-318)로 구성된, 예시적 줌 레벨, z=6로 시각적 맵 디스플레이(300)를 제공한다.
동작에 있어서, 서버(14)는 이러한 맵 데이터 타일에 의해 정의된 데이터 청크로 각자의 클라이언트 디바이스(16 내지 22)에 맵 데이터를 송신하도록 구성될 수 있다. 예를 들어, 맵 디스플레이(300)를 구성하는데 필요한 맵 데이터를 송신하기 위해, 서버(14)는 (지리적 위치, 클라이언트 디바이스 주소, 맵 데이터 타일 버전 번호 등과 같이) 프레임의 식별 데이터를 제공하는 헤더 부분 및 시각적 디스플레이를 형성하는데 사용될 특정 맵 데이터 타일 데이터를 포함하고 있는 페이로드 부분을 갖는, 프레임으로 각각의 맵 데이터 타일을 송신할 수 있다. 맵 데이터 타일은 맵 데이터베이스(12)에 저장된 맵 데이터를 양자화하기 위한 그리고 클라이언트 디바이스(16 내지 22)로 네트워크(25)를 통해 맵 데이터의 통신을 양자화하기 위한 효과적 메커니즘을 제공할 수 있다.
도 4a에 비교하여, 도 4b는 도 4a의 줌 레벨보다 더 높은 줌 레벨, 이 예에서는 줌 레벨, z=10으로 시각적 맵 디스플레이(400)를 예시한다. 맵 디스플레이(400)는 복수의 맵 데이터 타일(402-432)로 형성될 수 있다. 맵 데이터 타일(302-318)처럼, 맵 데이터 타일(402-432)은 각각 사이즈가 동일하고, 예를 들어, 동일 사이즈의 지리적 영역을 커버하고 동일 메모리 사이즈를 갖는다. 도 4c는 맵 데이터 타일로 형성된, 제3의 더 높은 줌 레벨, 줌 레벨 z=12로 또 다른 시각적 맵 디스플레이(480)를 예시한다.
디스플레이(300, 400, 480)의 각각은 더 많은 맵 데이터 타일을 포함하는, 전 맵 데이터의 일부를 예시할 수 있다. 도 4a 내지 도 4c에 걸쳐 예시된 바와 같이, 각각의 시각적 맵 디스플레이를 형성하는 맵 데이터 타일은 다양한 상세 레벨을 가질 수 있다. 타일(302 내지 318)은 지리적 경계를 도시하지만, 도로는 아니고, 고속도로 및/또는 주 간 도로만을 도시하는 한편, 도 4c의 타일은 더 높은 줌 레벨에 있고 도로, 빌딩, 공원, 종점 등에 관한 정보를 포함하고 있을 수 있다.
사용자가 시각적 맵 디스플레이(300, 400, 480)와 상호작용하는 동안, 사용자는 도시된 맵 데이터 근처 다른 맵 데이터(다른 지리적 영역에 대응)를 디스플레이하도록 주위 스크롤을 소망할 수 있다. 그래서, 클라이언트 디바이스(16 내지 22)는 시각적 맵 디스플레이를 형성하기에 충분한 양의 맵 데이터를 인출 및 저장하는 한편 그 디스플레이와의 효율적 사용자 상호작용을 가능하게 하도록 로컬 클라이언트 디바이스(16 내지 22) 중 하나에서 부가적 맵 데이터를 버퍼링하는 시스템을 사용할 수 있다.
도 5는 루트(501)의 보기 윈도(500)를 예시한다. 루트는 맵 표면 또는 맵 영역 상으로 투영될 수 있다. 일반적으로, 루트(501)는 출발지(502), 목적지(504), 및 출발지(502)를 목적지(504)에 함께 연결하는 일 세트의 도로, 거리, 경로, 세그먼트 등(506)을 포함할 수 있다. 여기서 사용되는 바와 같이, 세트는 하나 이상의 엘리먼트를 포함한다. 도로 세트는 도로 시퀀스로 순서가 정해질 수 있다. 루트(501)는 도로 세트의 시퀀스로 또한 나타내어질 수 있는 방향을 가질 수 있다. 루트(501)는 소정 수의 방식으로 결정될 수 있다. 예를 들어, 사용자는 출발지와 목적지를 지정할 수 있고(예를 들어, 사용자는 2개의 주소를 입력할 수 있고) 매핑 애플리케이션은, 매핑 데이터베이스로부터의 데이터를 사용하여, 2개의 지점 또는 위치를 연결할 수 있는 거리 세트를 결정함으로써, 루트를 형성할 수 있다. 일부 경우에 있어서, 매핑 애플리케이션은 출발지와 목적지를 연결하는 복수의 루트를 결정할 수 있고, 이 경우 사용자에게는 프로세싱에 가능한 루트 중 적어도 하나를 선택 또는 지정할 옵션이 주어질 수 있다. 대안으로, 사용자는 출발지, 목적지, 및 출발지와 목적지를 연결하는 경로(예를 들어, 도로)의 집합을 포함하는 루트를 매핑 애플리케이션에 제공할 수 있다.
여기서 설명되는 기술의 일 실시예에 있어서, 맵 데이터베이스(12)와 같은 맵 데이터베이스는 결정된 루트를 아우르는 맵 영역에 대응하는 맵 데이터(예를 들어, 맵 데이터 타일)를 사전-인출 또는 검색하도록 액세스될 수 있다. 또 다른 실시예에 있어서, 맵 데이터는 하나 이상의 루트를 발생시키도록 사전-인출될 수 있다. 루트를 발생시키도록 사용된 맵 데이터는 루트를 디스플레이하기 위한 정보를 제공하도록 사용된 동일 맵 데이터 타일에 포함되어 있을 수 있다. 다른 실시예에 있어서, 루트를 발생시키도록 사용된 데이터는 루트를 렌더링하도록 사용된 맵 데이터 타일과 별개의 맵 데이터 타일에 포함되어 있을 수 있다. 또 다른 실시예에 있어서, 루트를 발생시키도록 사용된 데이터는 맵 데이터 타일과 다른 데이터 형태에 포함되어 있을 수 있다. 사전-인출하는 것은 일반적으로 그 데이터가 프로세싱에 필요로 되기 전에 맵 데이터의 검색을 개시하는 것을 포함한다. 예를 들어, 사전-인출하는 것은 그 맵 데이터를 이용하여 렌더링 또는 디스플레이 기능의 개시 전에 맵 데이터를 검색하는 것을 포함할 수 있다. 또한 사전-인출하는 것은 맵 데이터베이스에 대한 더 빠른 검색을 위해 로컬 메모리에 맵 데이터를 저장하는 것을 포함할 수 있다. 예를 들어, 로컬 메모리에 액세스하는 속도는 (예를 들어, 간헐적 접속, 접속 대역폭 등에 기인하여) 맵 데이터베이스에 액세스하는 속도보다 더 빠를 수 있다. 모바일 디바이스가 네트워크(25)를 통해 서버(14)에 간헐적으로 액세스할 수 있을 뿐인 상황에 있어서, 사전-인출은, 모바일 디바이스/사용자가 (예를 들어, 사전-인출된 데이터에 대응하는 맵 데이터를 렌더링하는 요청 또는 기능을 통해) 그 데이터로의 액세스를 요청도 하였든 아니든, 클라이언트 디바이스가 서버(14)에 접속할 수 있을 때마다 맵 데이터의 스케줄링 액세스 및 검색을 포함할 수 있다.
도 6은 루트 주변에 배치된 정사각형 영역(510)을 갖는 도 5의 루트(501)를 예시한다. 위치 또는 지점에 관하여 사용될 때 용어 "주변"은 위치 또는 지점을 포함하는 의미임을 주목해야 한다. 그래서, "목적지 주변"은 목적지에 인접하는 영역과 더불어 목적지 지점 자체도 포함한다. 정사각형(510)은 맵 데이터의 이산 단위에 대응하는 맵의 이산 영역을 표현할 수 있다. 위에서 설명된 맵 데이터 타일에 관하여, 각각의 정사각형 영역(510)은 특정 줌 레벨에 대한 맵 데이터 타일과 대응 또는 표현할 수 있다. 영역(510)은 이용가능한 또는 검색가능한 총 세트의 맵 데이터 타일의 서브세트만을 표현할 수 있다. 예를 들어, 맵 데이터 타일이 일반적으로 보기 윈도(600) 전체에 대해 존재할 수 있을 경우, 영역(510)에 의해 표현된 맵 데이터 타일은 보기 윈도에 대한 총 맵 데이터 타일 중 일부만이다.
도 6은, 특정 줌 레벨에서, 루트를 디스플레이하기 위한 최소량의 맵 데이터는 루트 상의 매 지점을 아우르는 영역에 대응하는 적어도 일 세트의 맵 데이터 타일을 포함할 수 있음을 예시한다. 일 실시예에 있어서, 최소량의 맵 데이터는 도 6의 정사각형(510)에 대응하는 맵 데이터 타일에 맵 데이터베이스를 통해 액세스함으로써 루트에 대해 검색 또는 사전-인출될 수 있다. 예를 들어, 시스템(10)의 디바이스 중 하나는, 프로세서에 의해 실행 시, 루트 상의 지점이 맵 데이터 타일 내 포함되는지 결정하고 루트를 아우르는 맵 데이터 타일의 최소 수를 포함하는 맵 데이터 타일을 결정 또는 식별하는 명령어를 포함할 수 있다.
루트 주변 더 큰 영역은 매핑 애플리케이션의 어떤 렌더링 상황에 대해 소망될 수 있다. 일반적으로, 그 방법 및 시스템은, 출발지 및 목적지를 포함하는, 루트를 따른 지점의 타일 반경을 결정함으로써 루트(예를 들어, 도 5 내지 도 9의 루트)를 아우르는 영역에 대한 맵 데이터 타일의 서브세트를 결정할 수 있다. 도 7은, 제1(임의) 줌 레벨로, 맵 데이터베이스(12)에 저장된 이용가능한 맵 데이터의 일부를 보여주는 예시적 시각적 맵 디스플레이(700)를 도시한다. 관심 지점(704)을 할당된 맵 타일 반경(754)으로 보여준다. 맵 타일 반경(754)은 맵 데이터베이스(12)로부터 인출할 타일을 식별하도록 관심 지점(704)으로부터의 반경 거리를 표현한다. 타일 반경(754)은, 도 7에서, 식별된 타일 반경(R)에 의해 정의된 원주 지역(756) 내 배치되어 있는 관심 지점과 연관된 복수의 맵 데이터 타일을 식별하도록 관심 지점(704)으로부터 뻗어있다. 도시된 실시예에 있어서, 이러한 지역(756)은 예를 들어 맵 데이터베이스(12)로부터 식별되어 클라이언트 디바이스(16 내지 22) 중 하나에 보내져야 할 사전-인출 맵 데이터 타일 세트를 정의한다. 하나의 예에 있어서, 원주 지역(756)과 부분적으로라도 중첩하는 어느 맵 데이터 타일은 사전-인출 맵 데이터 타일 세트 내에 있을 것이다. 이러한 타일은 도 7에서 음영처리되어 있다.
도 8은 대응하는 타일 반경(810)을 갖는 루트 세그먼트(810)(예를 들어, 도로 세그먼트)를 따른 2개의 지점(802, 804)을 예시한다. 도 8의 음영처리된 영역은 반경(802, 804)에 기반하여 루트 세그먼트(810)에 대해 검색될 수 있는 맵 데이터 타일을 예시한다. 도 8에 있어서, 도로를 따른 몇개의 지점(예를 들어, 일정 간격에 의해 이격되어 있는 지점들)만이 맵 반경을 결정하도록 사용될 수 있고 대응하는 음영처리된 영역이 검색될 수 있다. 다른 실시예에 있어서, 라인 세그먼트에 대해 맵 타일 반경을 정의하도록 더 많은 지점이 사용될 수 있다. 더욱, 도로 세그먼트와 같은 라인 세그먼트는 무한 수의 지점을 포함할 수 있지만, 맵 타일 요청은 데이터 타일에 대해 많은 수의 요청 또는 식별을 반드시 요구하는 것은 아니다. 대신에, 음영처리된 관심 영역은 (예를 들어, 적분 함수를 사용하여) 라인 세그먼트의 길이 전체에 대해 계산될 수 있고, 단일 계산이 루트의 반경 내 모든 타일을 식별하도록 이루어질 수 있다. 단일 호출은 그 후 모든 대응하는 맵 데이터 타일을 (예를 들어, 한번에) 검색하도록 이루어질 수 있다.
도 9는 도 5 내지 도 6에서 예시된 것과 같은 맵 표면에 대한 맵 데이터를 사전-인출하도록 사용될 수 있는 방법, 루틴 또는 프로세스(900)의 프로세스 흐름 선도 또는 흐름도를 예시한다. 방법(900)은 유형적 컴퓨터-가독 매체에 저장되고 서버(14) 또는 클라이언트 디바이스(16 내지 22)의 프로세서를 사용하여 실행되는 컴퓨터-실행가능한 명령어의 형태로 하나 이상의 블록, 모듈, 기능 또는 루틴을 포함할 수 있다. 방법(900)은 여기서 설명되는 시스템을 위한 컴퓨팅 환경의 어느 백엔드 디바이스(예를 들어, 서버(14)) 또는 프론트엔드 디바이스(예를 들어, 클라이언트 디바이스(16 내지 22))의 모듈 또는 컴포넌트로서, 또는 그러한 시스템 외부에 있는 모듈의 일부분으로서 포함될 수 있다. 도 9는 설명의 용이함을 위해 도면을 참조하여 설명될 것이지만, 방법(900)은 물론 다른 오브젝트 및 사용자 인터페이스와 이용될 수 있다. 어느 경우에서든, 블록(902)은 출발지, 목적지, 및 출발지와 목적지를 연결하는 도로 세트에 관한 정보를 포함하는 루트 정보를 결정한다. 이것은 클라이언트 디바이스(16 내지 22) 중 하나 상의 매핑 애플리케이션 내에서 하나 이상의 명령어가 실행되는 것에 응답하여 수신될 수 있다. 블록(902)은 또한 루트를 발생시키도록 사용되는 맵 데이터를 사전-인출할 수 있다. 논의된 바와 같이, 루트를 발생시키기 위한 이러한 맵 데이터는 루트를 렌더링하기 위한 맵 데이터 타일과 동일하거나 다를 수 있는 맵 데이터 타일의 형태를 취할 수 있거나 또는 전적으로 별개 데이터 형태로서 저장될 수 있다. 일 실시예에 있어서, 루트를 발생시키기 위한 맵 데이터는 루트를 정의하는 턴-바이-턴 명령어의 형태일 수 있다.
블록(904)은 루트를 따른 지점에 대한 맵 타일 반경 세트를 결정할 수 있다. 일 실시예에 있어서, 블록(904)은 루트를 따른 모든 지점에 대해 최소 타일 반경을 결정할 수 있다. 최소 맵 타일 반경은 (도 6의 것과 같은) 루트 전체를 아우르는 영역과 대응하는 맵 데이터 타일의 최소 수가 선택되는 것을 가능하게 하도록 선택될 수 있다. 이러한 최소 맵 타일 반경은 루트 전체에 대해 고정된 반경으로 생각될 수 있다. 다른 실시예에 있어서, 블록(904)은 또한 루트를 따른 우선순위 지점 또는 관심 지점에 대해 맵 타일 반경 세트를 결정할 수 있다. 이러한 관심 지점은 (아래에서 더 논의될) 최소 타일 반경보다 더 큰 반경을 갖도록 결정될 수 있다. 반경이 루트에 대해 결정되고 나면, 블록(906)은 블록(904)에서 결정된 반경에 대응하는 맵 데이터 타일에 대해 맵 데이터베이스(12)와 같은 맵 데이터베이스에 액세스할 수 있다. 그 후 블록(908)은 블록(904)에서 결정된 반경에 대응하는 맵 데이터 타일을 검색하고 검색된 타일을 클라이언트 디바이스(16 내지 22)의 로컬 메모리에 저장할 수 있다.
일 실시예에 있어서, 루트를 따른 지점에는 우선순위 값이 할당될 수 있다. 예를 들어, 우선순위는 루트 상의 지점과 연관된 플래그, 속성 또는 다른 표시자를 사용하여 할당 또는 지정될 수 있다. 루트 세그먼트는 지점 세트에 의해 정의될 수 있고, 그래서, 루트 세그먼트(예를 들어, 루트의 도로 세그먼트)는 루트 세그먼트를 정의하는 지점 세트에 우선순위가 할당될 때 그 우선순위에 대응할 수 있다. 더욱, 우선순위 속성은 단순히 하이 값 또는 로우 값(즉, 우선순위 있음 또는 없음)일 수 있다. 다른 실시예에 있어서, 우선순위는 하이 값과 로우 값 사이의 스케일링된 값일 수 있다.
여기서 설명되는 방법 및 시스템은 인터페이스(34)를 통해 사용자에게 디스플레이할 하나 이상의 관심 지점을 결정할 수 있다. 관심 지점은, 예를 들어, 사용자가 인터페이스(34) 상에 제시된 데이터 필드 내에 주소를 제공하는 것을 통해, 또는 사용자가 인터페이스(34)와의 상호작용을 통해 획득된 관심 지점을 찾기를 선택하는 것을 통해, 사용자 입력에 기반하여 결정될 수 있다. 일반적으로, 루트를 따른 지점의 우선순위는 사용자가 그 지점에 대응하는 맵 데이터에 액세스하는 기능을 개시할 수 있는 가능성을 표현할 수 있거나 또는 그 가능성에 의해 결정될 수 있다. 이것은 사용자가 특정 맵 데이터를 사용하여 맵의 일부를 디스플레이하는 기능을 개시하는 것에 대응할 수 있다. 액세스 가능성은, 예를 들어, 매핑 애플리케이션의 명령어가 맵 데이터에 액세스하도록 실행되는 평균 수 및 시간의 분석을 포함하여, 동작에 있어서 시스템의 메트릭스에 기반하여 결정될 수 있다.
일 실시예에 있어서, 출발지 및 목적지는 높은 우선순위를 갖는 관심 지점으로서 디폴트로 할당될 수 있다. 도 10은 결정된 루트(501)(도 5)를 아우르는 영역(1000)을 예시하는데, 이 경우 출발지(502)와 목적지(504)를 연결하는 루트(506)를 따라서보다 출발지(502)와 목적지(504) 주변에 더 큰 영역에 대응하는 맵 데이터가 있다. 도 10은 출발지(502) 및 목적지(504)에는 출발지와 목적지 사기 루트(506)를 따른 지점 세트보다 더 높은 우선순위가 할당될 수 있음을 예시한다. 이러한 경우에 있어서는, 더 큰 맵 타일 반경이 출발지(502) 및 목적지(504)에 할당된다. 출발지 및 목적지는 디폴트 관심 지점을 표현할 수 있다. 이러한 경우에 있어서, 더 큰 양의 데이터는 연결 루트의 더 낮은 우선순위 지점에 대해서보다 더 높은 우선순위 지점(출발지 및 목적지)에 대해서 검색된다.
일부 실시예에 있어서, 목적지(504)는, 출발지(502)보다, 더 높은 우선순위, 및 그래서 더 큰 영역에 대응하는 더 많은 맵 데이터를 가질 수 있다. 이것은 사용자가 목적지로 주행하려고 의도하고 출발지(사용자가 떠나고 있는 중일 수 있으므로 잠재적으로 더 적은 체류 시간)에서보다 목적지(잠재적으로 더 긴 체류 시간)에서 더 많은 정보를 요구할 가능성이 더 있는 상황에 적용할 수 있다. 그렇지만, 출발지가 더 큰 양의 우선순위를 요구하고 더 큰 맵 영역을 가질 수 있는 상황이 일부 있다. 이것은, 예를 들어, 출발지 주변 영역의 복잡도(예를 들어, 복잡도는 나들목, 도로, 및 지형 복합 수가 증가함에 따라 증가)가 높고 출발지 주변 영역을 통해 네비게이팅하는데 더 큰 양의 맵 영역이 필요로 되는 때 그럴 수 있다.
도 11a는 다수의 관심 지점(502, 504, 1101)을 보여주는 맵 표면의 보기 윈도(1100)를 예시한다. 도 11a는 출발지(502)와 목적지(504) 간 루트(501) 상에 특별 관심 지점(1101)을 예시한다. 이러한 상황에 있어서, 관심 지점(1101)에는, 주위 루트보다, 더 높은 우선순위 및 더 큰 타일 반경이 할당될 수 있다. 이러한 관심 지점은 높은 우선순위가 할당된 도시, 마을 또는 다른 랜드마크일 수 있다. 루트를 따른 복수의 관심 지점에 높은 우선순위가 할당될 수 있고 그러한 관심 지점에 대해 더 많은 양의 맵 데이터 타일이 검색될 수 있다.
도 11b는 출발지(502)와 목적지(504) 간 루트(501)로부터 떨어져 있는 거리에 위치하는 특별 관심 지점(1120)을 갖는 루트(501)의 보기 윈도(1150)를 예시한다. 이러한 상황에 있어서, 지점(1120) 주위의 영역(1125)이 지정될 수 있고 영역(1125)에 대해 대응하는 맵 데이터 타일이 마크될 수 있다. 일 실시예에 있어서, 관심 지점(1120)에 대한 타일 반경은 타일 반경의 원주가 관심 지점(1120)에 가장 가까운 루트(501)를 따른 지점의 타일 반경과 중첩하도록 결정될 수 있다. 이것은 루트(501) 가까이 위치하는 관심 지점에 대해 편리할 수 있다. 또 다른 실시예에 있어서, 방법 및 시스템은 루트를 따른 지점으로부터 루트의 바깥에 있는 관심 지점(1120)으로 하나 이상의 경로를 결정할 수 있다. 관심 지점(1120)에 대한 경로가 결정되는지 여부는 관심 지점(1120)과 경로(501) 간 거리에 의존할 수 있다. 예를 들어, 루트-밖 관심 지점(1120)으로의 루트에 대한 경로는 그 지점으로의 거리가 사용자가 더 긴 루트-밖 거리보다 그 지점(1120)으로 갈 더 짧은 루트-밖 거리를 주행할 더 큰 가능성을 설명하는 임계 거리에 또는 그 아래에 있을 때 결정될 수 있다.
루트를 따른 지점의 우선순위는, 예를 들어, 사용자가 인터페이스(34) 상에 제시된 데이터 필드 내에 주소를 제공하는 것을 통해 또는 더 일반적으로 사용자가 인터페이스(34)와의 상호작용을 통해 획득된 관심 지점을 찾기를 선택하는 것을 통해, 사용자 입력에 기반하여 결정될 수 있다. 예를 들어, 사용자는 클라이언트 디바이스(16 내지 22) 중 하나가 사용자로 하여금 그러한 관심 지점 주변 근방의 맵 디스플레이를 만들도록 그러한 아이템을 선택 가능하게 할 수 있는 위치, 영업소, 집 등을 식별하는 클라이언트 디바이스 상에서 실행되고 있는 웹-브라우저 또는 다른 프로그램에 액세스할 수 있다.
하나 이상의 관심 지점을 입력 또는 그렇지 않으면 식별하기 위한 어느 적합한 수동 방법이라도 클라이언트 디바이스(16 내지 22) 중 하나에 의해 사용될 수 있다. 더욱, 클라이언트 디바이스(16 내지 22) 중 하나 상의 매핑 애플리케이션은, 예를 들어, 클라이언트 디바이스(16 내지 22) 중 하나의 현재 위치의 GPS 위치를 결정함으로써, 가장 최근 검색된 관심 지점을 결정함으로써, 저장된 관심 지점의 데이터베이스에 액세스함으로써, 또는 가장 최근 방문된 관심 지점(예를 들어, 도시, 이웃 등)을 결정함으로써, 관심 지점을 자동으로 식별할 수 있다. 물론, 이들 경우 중 일부에서는, 매핑 애플리케이션은 백그라운드 애플리케이션으로서 그리고 그래서 어떠한 특별 사용자 상호작용도 없이 사용자 디바이스에서의 저장을 위해 맵 데이터를 다운로드할 위치를 결정할 수 있다.
위에서 논의된 바와 같이, 프로세스 블록(906 내지 908)은 단일 줌 레벨로 관심 지점 주변 더 큰 맵 영역에 대응하는 더 많은 수의 맵 데이터 타일을 사전-인출하도록 맵 데이터베이스에 액세스할 수 있다. 일 실시예에 있어서, 높은 우선순위 지점에 대해 제1 단일 줌 레벨로 더 많은 맵 데이터 타일을 사전-인출하는 것 대신에 또는 그에 부가하여, 그 방법 및 시스템은 제2 더 높은 줌 레벨로 높은 우선순위 지점에 대해 맵 데이터 타일을 사전-인출할 수 있다. 도 12는 도 6의 줌 레벨과 동일한 사이즈의 맵 데이터 타일을 표현하는 영역(506)을 갖는 도 6의 동일 루트를 예시한다. 부가하여, 도 12는 제2의 더 높은 줌 레벨의 영역(1210)에 의해 표현된 부가적 맵 데이터 타일을 예시한다. 출발지(502) 또는 목적지(504) 주변 영역을 줌인 하기를 바라는 사용자는 보기 윈도의 줌 기능을 개시할 수 있다. 더 높은 줌 레벨 맵 데이터 타일이 클라이언트 디바이스(16 내지 22) 중 하나에 사전-인출될 때, 그러한 맵 데이터 타일을 렌더링하기 위한 응답 시간은 상대적으로 빠를 수 있다.
물론, 제2의 더 높은 줌 레벨로 부가적 맵 데이터 타일을 검색하는 것에 부가하여, 그 방법 및 시스템은 또한 제2의 더 높은 줌 레벨로 루트 상의 다른 지점과 관련하여 다른 영역에 대해 또는 제1 줌 레벨의 그것과 다른 영역에 대해 제2의 더 높은 줌 레벨로 맵 데이터 타일을 검색할 수 있다. 또한, 그 방법 및 시스템은 (예를 들어, 루트의 중간에, 관심 지점 없이) 낮은 우선순위로 루트를 따른 지점에 대해 더 높은 줌 레벨 데이터를 검색할 수도 하지 않을 수도 있다. 루트의 중간 주변 지점에 대해 더 높은 줌 레벨 맵 데이터가 검색되는지는 루트를 따른 지점의 우선순위에 의존할 수 있다. 위에서 논의된 바와 같이, 루트를 따른 지점의 우선순위는 그 맵 데이터에 대한 액세스 가능성의 결정에 일부 기반할 수 있다.
위에서 설명된 방법 및 시스템은 결정된 루트를 아우르는 결정된 영역에 기반하여 이용가능한 또는 검색가능한 맵 데이터 타일의 서브세트만을 검색 또는 프로세싱 및 클라이언트 디바이스(16 내지 22)의 캐시 메모리에 저장할 수 있다. 이러한 방법 및 시스템은 예상된 맵 데이터가 신속한 검색 및 프로세싱을 위해 로컬 캐시 메모리에 다운로드될 때 더 빠른 응답 시간을 제공할 수 있다. 위에서 논의된 우선순위의 하나의 유형은 어떤 맵 데이터(루트 주변 영역 및/또는 줌 레벨 데이터)를 검색할지 지정하는 것에 기반하고 있지만, 우선순위의 제2 유형은 맵 데이터가 검색되는 순서 또는 시퀀스일 수 있다. 맵 데이터 검색(예를 들어, 맵 데이터 타일)의 시퀀스는 대역폭 및 프로세서 톨을 감축하는 것을 도울 수 있다. 맵 데이터 검색의 시퀀스는 또한 맵 데이터를 포함하고 있는 서버로의 접속이 검색 동안 상실되는 경우 더 중요한, 높은 우선순위 타일이 우선 다운로드됨을 보장할 수 있다.
도 13은 언제 어떤 순서로 맵 데이터 타일을 검색할지 결정하기 위한 프로세스 흐름을 예시한다. 블록(1302)은 수신할 다른 맵 데이터 세트를 결정할 수 있다. 맵 데이터 세트는 위에서 논의된 바와 같이 결정된 맵 데이터에 대응할 수 있다. 예를 들어, 제1 맵 데이터 세트는 출발지 주변 영역과 대응할 수 있고, 제2 맵 데이터 세트는 목적지 주변 영역과 대응할 수 있고, 제3 맵 데이터 세트는 출발지와 목적지 간 경로를 따른 영역과 대응할 수 있고, 제4 맵 데이터 세트는 부가적 관심 지점에 대응할 수 있다. 부가적 세트는 루트의 부분들(예를 들어, 출발지, 목적지, 도로 세그먼트, 및 다른 관심 지점)에 대해 다른 줌 레벨 데이터를 관련시킬 수 있다.
블록(1304)은 그 후 시스템의 현재 조건(예를 들어, 보기 윈도 상태, 현재 대역폭, 현재 프로세서 용량 등)을 결정할 수 있다. 블록(1306)은 그 후 블록(1302)에서 결정된 각각의 맵 데이터 세트를 사전-인출하기 위한 시퀀스를 결정할 수 있다. 블록(1306)의 결정은 블록(1304)에서 결정된 조건에 기반하여 수행될 수 있다. 블록(1306)에 의해 결정된 시퀀스는 사용자에 의해 가능성 있는 액세스 순서에 기반하는 고정 디폴트 시퀀스일 수 있다. 이것은 블록(1304)이 디폴트 조건을 나타낼 때 그럴 수 있다. 블록(1308)에서, 맵 데이터베이스는 블록(1302)의 각각의 맵 데이터 타일 세트에 대해 블록(1307)에 의해 결정된 시퀀스로 액세스될 수 있다. 블록(1310)에서, 액세스된 맵 데이터는 그 후 사용자 또는 맵 애플리케이션이 맵 데이터를 요구하는 액세스 또는 프로세싱 기능을 개시할 때 신속한 액세스를 위해 검색되고 그리고/또는 로컬 메모리에 저장될 수 있다.
일반적 시퀀스는 목적지, 출발지, 루트를 따른 부가적 관심 지점, 및 그 후 다양한 루트-밖 관심 지점으로의 연결 세그먼트(도로 세그먼트)에 대해 맵 데이터를 검색하는 것을 관련시킬 수 있다. 또 다른 시퀀스는 (도 5의 것과 같은) 하나의 디스플레이가능한 보기 스크린에 출발지 및 목적지를 포함하는 보기 윈도 위치 및 줌 레벨에 대한 최소 맵 타일 데이터를 포함하는 개관 맵 데이터 세트로 시작할 수 있다. 또 다른 시퀀스는 제1 줌 레벨의 개관 세트 상의 맵 데이터, 더 높은 줌 레벨의 출발지 및 목적지의 맵 데이터, 그 후 제1 줌 레벨의 도로 세그먼트에 대응하는 맵 데이터를 포함할 수 있다. 또 다른 시퀀스에 있어서, 출발지 데이터는 출발지에 더 높은 우선순위가 할당될 때 목적지 데이터에 선행할 수 있다. 이것은 출발지가 복잡한 교통 조건을 포함하고 있을 때 그럴 수 있다. 또 다른 경우는 (예를 들어, GPS 측위 신호를 통한) 현재 사용자 위치 상의 부가적 정보가 사용자를 출발지로부터 먼 루트를 따라 놓을 때일 수 있다. 다른 상황에 있어서, 루트를 따른 관심 지점에 대한 맵 데이터가 출발지보다 더 높은 우선순위를 가질 수 있다. 물론 다른 시퀀스가 가능하고 여기서 설명되는 기술의 동작 범위 내에 있다.
일 실시예에 있어서, 맵 데이터 타일의 시퀀스 및 영역은 보기 윈도 상태에 기반하여 액세스 또는 사전-인출될 수 있다. 특히, 맵 데이터 타일은 보기 윈도 위치에 기반하여 액세스될 수 있다. 보기 윈도 위치는 루트를 따른 특정 지점 가까이에 중심이 있을 수 있다. 중심 위치가 루트의 다른 위치에 접근하도록 보기 윈도 위치가 변경됨에 따라, 부가적 영역 맵 데이터가 (예를 들어, 블록(906 내지 908)을 통해) 검색될 수 있거나 또는 검색의 시퀀스가 (예를 들어, 블록(1306-1310)을 통해) 변경될 수 있다. 이러한 실시예는 맵을 렌더링하는 디바이스의 현재 위치가 (예를 들어, GPS 시스템을 사용하여) 그 현재 위치에 맵의 중심을 두도록 제공되는 상황에서 사용될 수 있다.
맵 타일 데이터의 양 및 맵 타일 데이터의 서브세트가 액세스되는 시퀀스는 도 1의 시스템의 현재 대역폭 또는 프로세서 부하에 기반할 수 있다. 더 큰 반경 또는 더 작은 반경의 맵 데이터 타일을 다운로드할지의 결정은 서버로부터 그 양의 맵 데이터 타일을 검색하는 것과 연관된 대역폭 및/또는 레이턴시 고려사항에 의존할 수 있다. 일부 실시예에 있어서, 대역폭 고려사항은 맵 데이터 타일을 검색하기 위한 현재 다운로드 대역폭/시간이 임계값 위에 있는지 체크하는 것에 의존할 수 있다. 예를 들어, 클라이언트 디바이스(16 내지 22) 중 하나가 더 큰 타일 반경에 대응하는 부가적 맵 데이터 타일을 검색할지 결정하도록 검색 프로세스의 현재 다운로드 속도를 체크할 수 있다.
맵 데이터베이스 액세스를 수행하기 위한 프로세서 용량이 고려될 수 있다. 예를 들어, 현재 프로세서 용량이 임계값 대비 체크될 수 있다. 이것은 매핑 애플리케이션의 현재 조건이 프로세서 부하에 기인하여 감축된 데이터 검색 및/또는 프로세싱을 요구할 때 그럴 수 있다. 예를 들어, 프로세서가 과부하이거나 백업되는 경우(프로세서 용량이 임계값 아래이거나 낮은 경우), 맵 데이터 타일 반경은 검색 및 프로세싱되는 맵 데이터 타일의 총량을 감축하도록 짧아져서, 프로세서 작업부하를 덜 수 있다.
더욱, 사전-인출 맵 데이터 타일의 시퀀스 및 양은 메모리 조건에 기반할 수 있다. 예를 들어, 사전-인출 맵 데이터에 할당된 메모리의 양은 제한적일 수 있다. 맵 데이터 타일의 대응하는 영역은 메모리 예산을 고려하여 적절히 스케일링될 수 있다. 검색의 시퀀스는 메모리 예산에 기반하여 순서가 다시 정해질 수 있다. 대안으로, 맵 데이터 타일 세트의 수는 메모리 예산에 기반하여 감축될 수 있다.
도 9 및 도 13의 블록의 어느 적합한 서브세트라도 소정 수의 다른 디바이스(예를 들어, 클라이언트 또는 서버)에 의해 어느 적합한 순서로 구현될 수 있고 여기서 설명되는 방법 및 시스템과 여전히 일관된다. 더욱, 부가적 결정 블록은 보간 프로세싱을 받게 되는 스타일 파라미터의 필터링을 정제하도록 부가될 수 있다.
또 다른 실시예에 따르면, 루트에 대응하는 맵 데이터가 액세스 및 사전-인출될 수 있는 경우 최초 루트와 연관된 루트 세트에 대한 보조 라우팅 정보가 결정될 수 있다. 최초 루트는 이하 주 루트라고 지칭될 수 있는 한편, 연관된 루트는 보조 루트라고 지칭될 수 있다. 보조 라우팅 정보는 보조 루트 세트의 각각에 대한 턴-바이-턴 명령어를 포함할 수 있다. 보조 루트에 대한 맵 데이터 타일 형태의 대응하는 맵 데이터는 또한 위에서 설명된 것과 유사한 방식으로 사전-인출될 수 있다. 이러한 실시예를 사용하여 사전-인출되는 맵 데이터 타일은 클라이언트 디바이스가 서버에 접속되어 있지 않을 때 라우팅 정보를 제공하도록 사용될 수 있다. 위에서 논의된 바와 같이, 클라이언트 디바이스는 맵 데이터베이스에 간헐적으로 접속될 뿐일 수 있고 맵 데이터 타일을 제공하는 맵 데이터베이스 서버와 사용자 컴퓨팅 디바이스 간 접속이 없는 오프라인 기간 동안 데이터베이스로부터 맵 데이터 타일을 검색할 수 없을 수 있다. 맵 데이터 타일을 사전-인출하는 것은 클라이언트 디바이스가 오프라인에 있을 때에도 클라이언트 디바이스가 클라이언트 요청된 맵 디스플레이를 계속 제공 가능하게 할 수 있다.
도 14a 및 도 14b는 주 루트에 기반하는 보조 루트 세트에 대한 맵 데이터를 사전-인출하도록 사용될 수 있는 방법, 루틴 또는 프로세스(1400)의 프로세스 흐름 선도 또는 흐름도를 예시한다. 도 14a는 디스플레이 디바이스 상에 디스플레이될 수 있는 제1 루트 또는 주 루트를 발생시키는 기능을 개시할 수 있는 블록(1401)을 갖는 프로세서(1400)를 예시한다. 주 루트는 출발지, 목적지, 및 출발지와 목적지를 연결하는 도로 세트에 의해 정의될 수 있다. 주 루트는 또한 주행 방향에 의해 정의될 수 있다. 주행 방향은 예를 들어 일방 거리를 포함하는 소정 수의 인자에 의해 결정될 수 있다. 주 루트를 발생시키는 기능은 제1 루트를 디스플레이하는 기능을 포함할 수 있다. 그 후 블록(1403)은 주 루트를 발생시키는 기능의 개시에 응답하여 보조 루트 세트에 대해 맵 데이터 타일과 같은 맵 데이터에 대한 맵 데이터베이스에 액세스할 수 있다. 바꿔 말하면, 매핑 애플리케이션이 (예를 들어, 제1 루트를 디스플레이하기 위해) 제1 루트의 발생을 개시할 때, 프로세스(1400)는 제1 루트에 기반하여 보조 루트 세트에 대응하는 맵 데이터를 자동으로 사전-인출할 수 있다. 보조 루트 세트에 대응하는 맵 데이터는 보조 루트를 발생시키는데 사용되는 맵 데이터뿐만 아니라 보조 루트의 디스플레이를 렌더링하는데 사용되는 맵 데이터도 포함할 수 있다. 블록(1405)은 그 후 사전-인출 맵 데이터를 검색, 송신 및/또는 저장할 수 있다. 블록(1405)은 예를 들어 매핑 애플리케이션에 의한 고속 액세스를 위해 로컬 메모리에 사전-인출 맵 데이터를 저장할 수 있다. 매핑 애플리케이션은 주 루트를 발생시키는 기능을 개시한 엔티티일 수 있다.
도 14b는 주 루트에 기반하는 보조 루트 세트에 대한 맵 데이터를 사전-인출하는 관련 방법, 루틴 또는 프로세스(1420)를 예시한다. 블록(1402)은 디스플레이 디바이스 상에 디스플레이될 수 있는 제1 루트 또는 주 루트를 발생시키는 기능을 개시할 수 있다. 개시 기능은 위 도 9의 블록(902)의 프로세스와 유사한 매핑 애플리케이션에 의한 주 루트의 결정을 포함 또는 관련시킬 수 있다. 블록(1402)의 기능은 예를 들어 사용자에 의해 제공된 정보에 기반하여 주 루트를 계산할 수 있다. 블록(1404)은 주 루트를 아우르는 영역에 대응하는 맵 데이터(예를 들어, 맵 데이터 타일)에 대해 맵 데이터베이스에 액세스할 수 있다.
블록(1406)은 주 루트에 기반하여 보조 루트 세트를 결정할 수 있다. 보조 루트 세트는 아래에 더 논의되는 바와 같은 소정 수의 인자 및 파라미터에 기반하여 결정될 수 있다. 그 후 블록(1408)은 맵 데이터베이스로부터 사전-인출 맵 데이터 타일에 액세스할 수 있는데, 사전-인출 맵 데이터 타일은 블록(1406)에 의해 결정된 보조 루트 세트 중 하나 이상에 대응한다. 더 구체적으로, 사전-인출 맵 데이터 타일은 보조 루트 중 하나 이상을 아우르는 영역에 대응할 수 있다. 하나 이상의 보조 루트를 아우르는 영역의 사이즈는 위에서 설명된 것과 유사한 방식으로 결정될 수 있다. 일 실시예에 있어서, 블록(1406)은 보조 루트 세트를 발생시키도록 사용되는 데이터를 사전-인출할 수 있다. 예를 들어, 사전-인출 데이터 중 일부는 하나 이상의 보조 루트를 정의하는 도로 세트의 각각을 발생시키도록 사용될 수 있다. 위에서 논의된 바와 같이, 이러한 맵 데이터는 루트를 렌더링하는데 사용되는 맵 데이터 타일과 동일 또는 유사하거나 전적으로 다른 형태를 취할 수 있다. 블록(1410)은 그 후 주 및 보조 루트의 사전-인출 맵 데이터 타일을 검색, 수신, 송신, 및/또는 클라이언트 디바이스의 로컬 메모리에 저장할 수 있다. 위에서 논의되는 바와 같이, 사전-인출은 그 맵 데이터를 이용하여 렌더링 또는 디스플레이 기능의 개시 전에 맵 데이터를 검색 또는 그렇지 않으면 액세스하는 것을 관련시킬 수 있다. 사전-인출은 클라이언트 디바이스에서 보조 루트 중 어느 것을 발생시키기 위한 기능의 개시 전에 맵 데이터를 검색 또는 그렇지 않으면 액세스하는 것을 관련시킬 수 있다. 또한, 보조 루트를 아우르는 영역을 결정하는 방법은, 도 9 및 도 13에서 예시된 것과 같이, 위에서 설명되는 기술 중 어느 것이라도 사용하여 구현될 수 있다. 여기서 설명되는 사전-인출 기술과 일관되기 위해 도 14b의 블록 모두가 수행되도록 요구되는 것은 아님을 주목해야 한다. 더욱, 블록이 수행되는 순서는 바뀔 수 있지만 역시 설명된 기술과 여전히 일관된다.
일 실시예에 있어서, 블록(1402, 1404) 중 하나는 제1 루트에 대응하는 맵 데이터에 대한 요청을 송신하는 것을 포함할 수 있다. 블록(1406)은 요청을 송신하는 컴퓨터의 외부에 있는 서버 디바이스에서 수행될 수 있다. 그 후 블록(1410)은 블록(1402)에서 제1 루트에 대한 맵 데이터만이 요청된 경우 서버로부터 제1 루트 및 보조 루트에 대한 맵 데이터를 수신할 수 있다.
도 15는 보조 루트 세트를 예시한다. 출발지(1502) 및 목적지(1504)를 갖는 주 루트(1501)를 보여주고 있다. 보조 루트(1510, 1520, 1530)는 주 루트(1501)에 대한 반환 루트를 표현할 수 있다. 이러한 경우에 있어서, 보조 루트(1510, 1520, 1530)의 세트는 주 루트의 출발지(1502) 및 목적지(1504)가 전환되는 역 종점을 가질 것이다. 주 루트의 경로는 반환 루트에 실행가능한 경로가 아닐 수 있고 그래서 일부 경우에서는 동일 주 루트는 반환 루트가 아닐 수 있음을 주목해야 한다. 이것은, 예를 들어, 주 루트가 하나 이상의 일방 거리를 포함하는 때 그럴 수 있다. 일 실시예에 있어서, 반환 루트 세트는 물리적으로 또는 법적으로 주행될 수 있는 실행가능한 경로 세트만을 포함할 수 있다.
도 15는 디스플레이될 수 있는 반환 루트의 다른 유형 또는 카테고리를 예시한다. 루트(1510)와 같은 일부 반환 루트는 반환 루트 세트에 대해 2개의 종점 간 최단 또는 최소 거리 경로인 경로를 포함할 수 있다. 하나보다 많은 부가적 단거리 경로가 결정될 수 있다. 부가적 단거리 루트는 단순히 동일 목적지(1504)로의 대안 루트를 표현할 수 있다. 루트(1520)는 (예를 들어, 거리가 루트(1510)에 유사한) 단거리 루트가 아닐 수 있다. 루트(1520)는 최소 교통량 루트를 표현할 수 있다. 예를 들어, 루트(1520)는 더 긴 루트일 수 있지만, 이력 또는 현재 데이터는 그 루트가 루트(1510)와 같은 최소 거리 루트 중 하나 이상보다 더 적은 교통량을 가짐을 나타낼 수 있다.
보조 루트는 반환 루트의 종점을 연결하도록 사용되는 도로 유형(들)에 의해 카테고리가 나뉠 수 있다. 일반적으로, 도로 등급을 나누는데 속도 순위가 사용될 수 있다. 예를 들어, 일부 도로는 더 협소하고 운행이 덜 용이하여, 그러한 도로가 느린 것으로 생각되게 할 수 있는 한편, 다른 더 큰 도로(예를 들어, 고속도로)는 빠른 도로로 생각된다. 부가적으로, 예상되는 도로 속도는 그러한 도로에 대한 기지의 게시 속도 제한에 기반할 수 있다. 이러한 경우에서는, 연관된 루트 세트가, 루트의 총 거리에 무관하게, 루트에 대해 지정 또는 결정된 높은 속도 도로에 기반하여 결정될 수 있다. 다른 보조 루트는 사용자 프로파일에 기반하는 도로 또는 경로 세그먼트를 포함할 수 있다. 예를 들어, 보조 루트는 사용자에 의해 빈번하게 주행되는 하나 이상의 경로 세그먼트를 포함하도록 결정될 수 있다. 이것은, 일부 경우에 있어서, 사용자가 그러한 경로 세그먼트에 친숙하기 때문에 사용자에게 유용할 수 있다.
도 15는 또 다른 반환 루트(1530)가 최소 거리, 최소 교통량 또는 최고 속도 경로에 기반하지 않을 수 있음을 예시한다. 루트(1530)는 관심 지점 또는 우선순위 지점(1532)에 기반하여 결정될 수 있다. 관심 지점(우선순위 지점)은, 위에서 논의된 바와 같이, 사용자 입력 또는 선호에 기반하여 또는 매핑 애플리케이션에 의해 자동으로 결정될 수 있다. 루트(1530)의 관심 지점은 예를 들어 호수(1532)일 수 있다. 호수(1532)에는 예를 들어 매핑 데이터베이스로부터 수신된 사전-결정된 맵 데이터에 기반하여 높은 우선순위가 할당될 수 있거나, 또는 호수는 사용자 프로파일에 기반하여 관심 지점으로서 프로그래밍될 수 있다. 일 실시예에 따르면, 반환 루트는 관심 지점을 통해 또는 그 근처를 지나가도록 결정 또는 플롯팅될 수 있다.
도 16은 주 루트(1601)의 근방 내 우선순위 지점(1621 내지 1625)에 대한 루트 세트를 예시한다. 이러한 경우에 있어서, 보조 루트는 주 루트(1601)를 따른 지점으로부터 관심 지점(1621 내지 1625)으로 결정될 수 있다. 일부 상황에 있어서, 주 루트를 따른 지점으로부터 관심 지점(1631 내지 1635)으로의 루트는 관심 지점으로부터 다시 주 루트로 돌아가는 동일 루트일 수 있다. 다른 상황에 있어서, 이것은 그렇지 않을 수 있다. 도 16은 관심 지점(1631 내지 1635)으로의 단일 루트만이 미리 결정될 수 있는 실시예를 예시한다. 이것은, 예를 들어, 사용자가 이러한 관심 지점이 최종 목적지이도록 결정할 때 의도적일 수 있다. 일부 실시예에 있어서, 프로세서 부하를 감축하고 그리고/또는 대역폭 소모를 감축하기 위해 관심 지점에서 끝나는 단일 루트만이 디스플레이될 수 있다. 이것은 (아래에서 논의될) 루트의 우선순위에 부가하여 관심 지점의 우선순위에 기반하여 행해질 수 있다.
관심 지점으로부터 다시 주 루트의 이탈 지점(예를 들어, 관심 지점으로의 경로의 출발 지점)으로 부가적 루트(도시하지 않음)가 계산될 수 있다. 대안으로, 관심 지점으로부터 다시 이탈 지점과 다른 루트를 따른 지점으로 또 다른 루트가 결정될 수 있다. 이것은, 예를 들어, 주 루트의 목적지 또는 출발지에 더 가깝게 사용자를 안내하는 더 효율적 루트가 존재할 때 디스플레이될 수 있다. 대안으로, 관심 지점으로부터의 루트는 제2의 다른 관심 지점에서 끝날 수 있다. 이것들은 단지 액세스 및 디스플레이될 수 있는 보조 루트 유형 중 일부이다.
우선순위는 가능한 보조 루트 세트의 세트 각각에 할당될 수 있다. 보조 루트의 우선순위는 보조 루트의 루트 정보에 액세스할 가능성에 기반할 수 있다. 구체적으로, 우선순위는 사용자가 보조 루트에 대응하는 맵 데이터로의 액세스를 요구하는 기능을 개시할 수 있을 가능성을 표현할 수 있다. 개시 기능은, 예를 들어, 루트에 대한 맵 타일 데이터를 디스플레이하는, 발생될 턴-바이-턴 명령어 등을 요구하는 기능일 수 있다. 액세스 가능성은, 예를 들어, 루트 또는 루트의 일부(예를 들어, 루트의 경로 세그먼트 세트)로의 액세스를 개시하는 평균 수 및 시간의 분석을 포함하여, 동작에 있어서 시스템의 메트릭스에 기반하여 결정될 수 있다. 액세스 메트릭스는 사용자 또는 사용자 그룹에 특정적일 수 있다. 액세스 가능성은 사용자에 대해 또는 그에 의해 발생되는 사용자 패턴 또는 프로파일에 기반할 수 있다. 사용자 패턴은 사용자가 자주 다니는 위치, 선호되는 루트 세그먼트, 및 다른 선호에 관한 정보를 제공하는 용례 패턴을 포함할 수 있다. 루트를 따른 지점에 할당된 우선순위와 유사하게, 위에서 논의된 바와 같이, 우선순위는 루트 상의 지점과 연관된 플래그, 속성 또는 다른 표시자를 사용하여 결정된 루트에 할당될 수 있다. 더욱, 우선순위 속성은 단순히 하이 값 또는 로우 값(즉, 우선순위 있음 또는 없음)일 수 있거나 또는 하이 값과 로우 값 사이의 스케일링된 값일 수 있다.
도 17은 도 15 및 도 16에 예시된 것들과 같은 보조 루트의 다수의 다른 카테고리를 도시하는 차트를 예시한다. 보조 루트의 하나의 카테고리는 반환 루트 또는 관심 지점 루트를 포함한다. 반환 루트의 서브카테고리는 최소 루트, 교통량 기반 루트, 또는 도로 유형 루트(예를 들어, 도로 속도 순위 기반)를 포함할 수 있다. 루트의 또 다른 카테고리는 관심 지점으로의 또는 그 주변 루트일 수 있다. 관심 지점으로부터 돌아오는 루트는, 몇개 들자면, 주 루트로부터의 이탈 지점으로 돌아오는 루트, 주 루트의 출발지 또는 목적지로 돌아오는 루트, 이탈 지점으로부터 먼 주 루트를 따른 지점으로 돌아오는 루트, 또는 제2 관심 지점으로 가는 루트를 포함할 수 있다. 물론, 루트의 다른 카테고리가 포함될 수 있고 역시 여기서 설명되는 방법 및 시스템과 여전히 일관된다. 도 17에 예시된 바와 같이, 루트의 우선순위(1702)는 루트의 카테고리(1704)에 기반하여 할당될 수 있다. 예를 들어, 하나 이상의 최소 거리 반환 루트(1706)에는 5(5는 가장 높은 우선순위)의 카테고리가 할당될 수 있다. 또한 하나보다 많은 루트 카테고리에 동일 우선순위가 할당될 수 있다.
도 18은 보조 루트의 우선순위 및/또는 보조 루트의 카테고리에 기반하여 보조 루트에 대응하는 사전-인출 맵 데이터 또는 주 루트와 연관된 보조 루트 세트를 결정하는데 사용될 수 있는 방법, 루틴 또는 프로세스(1800)의 프로세스 흐름 선도 또는 흐름도를 예시한다. 일 실시예에 따르면, 블록(1802)은 결정될 수 있는 보조 루트의 카테고리 또는 유형을 결정할 수 있다. 카테고리는, 가능한 카테고리 결정 방법을 몇개만 들자면, 룩업 테이블로부터 사전-결정될 수 있거나 또는 사용자 프로파일에 기반하여 발생될 수 있다.
블록(1804)은 루트의 카테고리에 우선순위를 할당할 수 있다. 블록(1806)은 어떤 루트 카테고리 세트에 대해 보조 루트를 발생시킬지 결정할 수 있다. 예를 들어, 우선순위가 하이 또는 로우(예를 들어, 0 또는 1)인 경우, 블록(1806)은 높은 우선순위를 갖는 카테고리에 속하는 루트만이 프로세싱될 수 있다고 결정할 수 있다. 대안으로, 우선순위가 스케일 값 예를 들어 1 내지 5의 값인 경우, 블록(1806)은 단순히 3의 임계 우선순위보다 더 높은 값(예를 들어, 우선순위 범위 3-5, 5가 가장 높음)을 갖는 카테고리만이 프로세싱되도록 우선순위 범위를 결정할 수 있다. 그 후 블록(1808)은 각각의 카테고리 및 서브카테고리에 대해 발생 또는 포함할 소정 수의 루트를 결정할 수 있다. 카테고리당 루트의 총 수는 각각의 카테고리의 우선순위에 기반하여 결정될 수 있다. 예를 들어, 1의 우선순위에 대해 루트 수에 관한 사전-결정된 제한, 2의 우선순위에 대해 루트 수에 관한 사전-결정된 제한 등이 있을 수 있다. 대안으로, 각각의 카테고리에 대한 루트 수는 일정한 제한(예를 들어, 모든 우선순위 3 루트 카테고리는 2개의 발생된 루트로 한정)을 가질 수 있다. 그 후 블록(1810)은 블록(1808)에 의해 결정된 바와 같이 각각의 카테고리에 대한 소정 수의 루트까지 블록(1806)의 루트 카테고리의 각각에 대한 루트 정보를 발생 또는 결정할 수 있다.
블록(1804 내지 1806)의 우선순위 및 카테고리 및 블록(1808)의 제한/임계값은, 일 실시예에 따라, 현재 시스템 조건에 기반 또는 조절될 수 있다. 시스템 조건은 현재 프로세서 부하 또는 현재 대역폭일 수 있다. 예를 들어, 프로세서 부하가 임계값 위에 있고 대역폭이 임계값 아래에 있는 상황에서는, 높은 우선순위 할당은 더 적은 카테고리로 한정될 수 있다. 유사하게, 우선순위 범위는 결정 및 프로세싱되는 보조 라우팅 데이터의 양을 제한하도록 감축될 수 있다. 예를 들어, 우선순위 범위가 3 위의 우선순위로 한정되는 경우, 우선순위 범위는 프로세서 부하가 높고 대역폭이 낮을 때 4 위의 우선순위로 변경될 수 있다.
또 다른 실시예에 있어서, 카테고리당 보조 루트의 수는 대역폭 및/또는 프로세서 고려사항에 기반하여 조절될 수 있다. 예를 들어, 초기 대역폭 또는 프로세서 조건은 최소 거리 반환 루트, 가장 빠른 교통량 루트, 및 경치 좋은 루트의 카테고리만이 허용되는 경우 카테고리당 2개의 루트를 허용할 수 있다. 임계값 위로 프로세서 부하 증가 또는 임계값 아래로 대역폭 감소 중 하나 또는 둘 다가 일어나는 경우 조건이 변할 때, 카테고리당 루트의 수는 하나로 한정될 수 있다. 부가하여, 최소 거리 및 가장 빠른 교통량 루트만이 프로세싱될 것이라고 결정될 수 있다.
또 다른 시스템 조건은 클라이언트 디바이스의 현재 위치일 수 있다. 예를 들어, 출발지 또는 목적지로부터의 주 루트는 사용자가 지금은 루트를 따라 더 어딘가에 위치하는 경우 이전 시간에서 결정되었을 수 있다. 이러한 경우에 있어서, 예를 들어, 현재 위치에 가까운 관심 지점으로의 부가적 보조 루트가 결정될 수 있거나 또는 이러한 보조 루트의 우선순위가 증가될 수 있다. 따라서 다른 카테고리에 대한 부가적 우선순위가 조절될 수 있다. 유사하게, 현재 위치에 기반하여 임계값 또한 조절될 수 있다.
또 다른 실시예에 따르면, 보조 루트 세트에 대응하는 맵 데이터(예를 들어, 맵 데이터 타일)의 액세스, 송신 또는 검색은 보조 루트의 우선순위에 기반하는 시퀀스로 수행될 수 있다. 일반적으로, (예를 들어, 블록(1410)의) 액세스, 송신 또는 검색의 시퀀스는 보조 루트가 결정 및 액세스되는 시퀀스(예를 들어, 블록(1406 내지 1408))와 일치할 수 있다. 루트가 우선순위에 기반하지 않는 시퀀스로 발생될 수 있는 경우에, 보조 루트에 대응하는 맵 데이터는 우선순위에 기반하여 액세스, 송신 또는 검색될 수 있고 루트가 발생되는 순서와 다를 수 있다. 이것은, 우선순위 순서로, 보조 루트에 대응하는 사전-인출 데이터 타일을 수집하고 보조 루트에 대응하는 사전-인출 맵 데이터 타일 세트를 릴리스하는 버퍼를 사용하여 구현될 수 있다. 또 다른 실시예에 있어서, 결정된 보조 루트의 서브세트에 대응하는 맵 데이터 타일만이 액세스, 송신 또는 검색될 수 있다. 이러한 서브세트는 프로세서 부하 또는 현재 대역폭과 같이 위에서 설명된 시스템 조건에 기반하여 결정될 수 있다. 이러한 실시예는 보조 루트 세트가 이미 결정된 후에 프로세서 부하 또는 대역폭이 변하는 상황에서 유익할 수 있다.
위에서 논의된 바와 같이, 맵 데이터는 대역폭 사용량 및 프로세서 부하 감축을 달성하고 응답 시간에서의 증가를 달성하는 소정 수의 방식으로 조작될 수 있다. 부가적으로, 중요한 높은 우선순위 데이터가 사전-인출되는 우선순위 및 속도는 사용자 컴퓨팅 디바이스가 맵 서버에 접속할 수 없는 시간 동안 사용자 컴퓨팅 디바이스가 오프-라인 매핑 지원을 제공 가능하게 할 수 있다. 일 실시예에 있어서, 그 방법 및 시스템은 주 제1 루트에 대응하는 맵 데이터(예를 들어, 맵 데이터 타일)를 결정하고, 그 후 부가적 맵 데이터 검색에 대한 하나 이상의 보조 루트를 결정할 수 있다. 또 다른 실시예에 따르면, 그 방법 및 시스템은 제1 주 루트를 수신하고 그 루트와 관련된 맵 데이터 유형에 기반하여 사전-인출하기 위한 데이터의 우선순위결정을 시작할 수 있다. 동시에 또는 이러한 프로세스 후 순차적으로, 부가적 보조 루트가 발생되어 역시 사전-인출에 대해 고려될 수 있다. 주 및 보조 루트의 디스플레이를 렌더링하는데 요구되는 맵 데이터 타일의 양뿐만 아니라 보조 루트의 수 및 유형은 시스템 조건(예를 들어, 대역폭 또는 프로세서 부하) 또는 사용자 프로파일/선호 정보(예를 들어, 사용 패턴을 포함)에 기반하여 조절될 수 있다.
이 명세서의 곳곳에서, 복수형 경우는 단일 경우로서 설명되는 컴포넌트, 동작 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개개의 동작이 별개 동작으로서 예시 및 설명되고 있지만, 개개의 동작 중 하나 이상은 동시다발적으로 수행될 수 있고, 어느 것도 그 동작이 예시된 순서로 수행될 것을 요구하지는 않는다. 예시적 구성에서 별개의 컴포넌트로 제시된 구조 및 기능성은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 유사하게, 단일 컴포넌트로서 제시된 구조 및 기능성은 별개 컴포넌트로서 구현될 수 있다. 이들 및 다른 변종, 수정, 부가 및 개선은 여기에서의 주제의 범위 내에 든다.
예를 들어, 네트워크(25)는 국한되는 것은 아니지만 LAN, MAN, WAN, 모바일, 유선 또는 무선 네트워크, 프라이빗 네트워크, 또는 가상 프라이빗 네트워크의 어느 조합을 포함할 수 있다. 더욱, 설명을 단순화 및 명확화 하기 위해 4개의 클라이언트 디바이스만이 도 1에 예시되어 있지만, 어떠한 수의 클라이언트 컴퓨터 또는 디스플레이 디바이스라도 지원되고 서버(14)와 통신하고 있을 수 있다고 이해된다.
부가적으로, 특정 실시예가 로직 또는 소정 수의 컴포넌트, 모듈 또는 메커니즘을 포함하는 것으로 여기서 설명되어 있다. 모듈은 소프트웨어 모듈(예를 들어, 송신 신호로 또는 머신-가독 매체 상에 구체화된 코드) 또는 하드웨어 모듈을 구성할 수 있다. 하드웨어 모듈은 특정 동작을 수행할 수 있는 유형적 유닛이고 특정 방식으로 구성 또는 배열될 수 있다. 예시의 실시예에 있어서, 하나 이상의 컴퓨터 시스템(예를 들어, 스탠드얼론, 클라이언트 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들어, 프로세서 또는 프로세서 그룹)은 여기서 설명되는 바와 같은 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 부분)에 의해 구성될 수 있다.
다양한 실시예에 있어서, 하드웨어 모듈은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 (예를 들어, 필드 프로그래밍 가능한 게이트 어레이(FPGA) 또는 애플리케이션-특정 집적 회로(ASIC)와 같은 특수-목적 프로세서로서) 영구적으로 구성되는 전용 회로 또는 로직을 포함할 수 있다. 또한 하드웨어 모듈은 특정 동작을 수행하도록 소프트웨어에 의해 일시적으로 구성되는 (예를 들어, 범용 프로세서 또는 다른 프로그래밍 가능한 프로세서 내 포함되는 바와 같은) 프로그래밍 가능한 로직 또는 회로를 포함할 수 있다. 전용 및 영구적으로 구성된 회로로 또는 (예를 들어, 소프트웨어에 의해 구성된) 일시적으로 구성된 회로로, 기계적으로 하드웨어 모듈을 구현하는 결정은 비용 및 시간을 고려하여 유도될 수 있음을 인식할 것이다.
따라서, "하드웨어"라는 용어는 엔티티가 여기서 설명된 소정 동작을 수행하기 위해 또는 소정 방식으로 동작하기 위해 물리적으로 구성되든, 영구적으로 구성되든(예를 들어, 하드와이어드) 또는 일시적으로 구성되든(예를 들어, 프로그래밍) 그러한 유형적 엔티티를 아우르는 것으로 이해되어야 한다. 하드웨어 모듈이 일시적으로 구성되는(예를 들어, 프로그래밍되는) 실시예를 고려하면, 하드웨어 모듈의 각각이 어느 일 순시에서라도 실체화 또는 구성될 필요가 없다. 예를 들어, 하드웨어 모듈이 소프트웨어를 사용하여 구성된 범용 프로세서를 포함하는 경우에, 범용 프로세서는 다른 시각에서 각자의 다른 하드웨어 모듈로서 구성될 수 있다. 따라서, 소프트웨어는 예를 들어 일 순시에서 특정 하드웨어 모듈을 구성하도록 그리고 다른 순시에서 다른 하드웨어 모듈을 구성하도록 프로세서를 구성할 수 있다.
하드웨어 및 소프트웨어 모듈은 다른 하드웨어 및/또는 소프트웨어 모듈에 정보를 제공하고 그로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈은 통신 결합되는 것으로 생각될 수 있다. 다중의 그러한 하드웨어 또는 소프트웨어 모듈이 동시에 존재하는 경우에, 통신은 하드웨어 또는 소프트웨어 모듈을 접속하는 신호 전송을 통해 (예를 들어, 적절한 회로 및 버스를 통해) 달성될 수 있다. 다중의 하드웨어 모듈 또는 소프트웨어가 서로 다른 시각에 실체화 또는 구성되는 실시예에 있어서, 그러한 하드웨어 또는 소프트웨어 모듈 사이의 통신은 예를 들어 다중 하드웨어 또는 소프트웨어 모듈이 액세스할 수 있는 메모리 구조에 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 또는 소프트웨어 모듈은 동작을 수행하고 그 동작의 출력을 그것이 통신 결합되는 메모리 디바이스에 저장할 수 있다. 그 후, 추후 시각에, 또 다른 하드웨어 또는 소프트웨어 모듈이 저장된 출력을 검색 및 프로세싱하기 위해 메모리 디바이스에 액세스할 수 있다. 또한 하드웨어 및 소프트웨어 모듈은 입력 또는 출력 디바이스와의 통신을 개시할 수 있고, 자원(예를 들어, 정보 모음) 상에 동작할 수 있다.
여기서 설명된 예시의 방법의 다양한 동작은, 적어도 일부, 관련 동작을 수행하기 위해 영구적으로 구성되거나 (예를 들어, 소프트웨어에 의해) 일시적으로 구성되는 하나 이상의 프로세서에 의해 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든, 그러한 프로세서는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서-구현된 모듈을 구성할 수 있다. 여기서 지칭되는 모듈은 어떤 예의 실시예에서는 프로세서-구현된 모듈을 포함할 수 있다.
유사하게, 여기서 설명되는 방법 또는 루틴은 적어도 일부 프로세서-구현될 수 있다. 예를 들어, 방법의 동작의 적어도 일부는 하나 이상의 프로세서 또는 프로세서-구현된 하드웨어 모듈에 의해 수행될 수 있다. 동작 중 어떤 것의 수행은 단일 머신 내 상주하는 것뿐만 아니라 소정 수의 머신에 걸쳐 배치되는 하나 이상의 프로세서 사이에 분산될 수 있다. 어떤 예의 실시예에 있어서, 프로세서 또는 프로세서들은 단일 위치에 (예를 들어, 집 환경, 사무소 환경 내 또는 서버 팜으로서) 위치할 수 있는 한편, 다른 실시예에서는 프로세서들이 소정 수의 위치에 걸쳐 분산될 수 있다.
또한 하나 이상의 프로세서는 "클라우드 컴퓨팅" 환경에서 또는 "서비스형 소프트웨어"(SaaS)로서 관련 동작의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작의 적어도 일부는 (프로세서를 포함하는 머신의 예로서) 컴퓨터 그룹에 의해 수행될 수 있고, 이들 동작은 네트워크(예를 들어, 인터넷)를 통해 그리고 하나 이상의 적절한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(API))를 통해 액세스가능하다.
동작 중 어떤 것의 수행은 단일 머신 내 상주하는 것뿐만 아니라 소정 수의 머신에 걸쳐 배치되는 하나 이상의 프로세서 사이에 분산될 수 있다. 어떤 예의 실시예에 있어서, 하나 이상의 프로세서 또는 프로세서-구현된 모듈은 단일 지리적 위치에 (예를 들어, 집 환경, 사무소 환경 또는 서버 팜 내) 위치할 수 있다. 다른 예의 실시예에 있어서, 하나 이상의 프로세서 또는 프로세서-구현된 모듈은 소정 수의 지리적 위치에 걸쳐 분산될 수 있다.
이 명세서의 일부는 머신 메모리(예를 들어, 컴퓨터 메모리) 내에 비트 또는 이진 디지털 신호로서 저장된 데이터 상에의 동작의 기호적 표현 또는 알고리즘의 관점에서 제시되고 있다. 이들 알고리즘 또는 기호적 표현은 다른 당업자에게 그 작업의 실체를 전하기 위해 데이터 프로세싱 분야의 당업자에 의해 사용된 기술의 예이다. 여기서 사용되는 바와 같이, "알고리즘" 또는 "루틴"은 소망의 결과에 이르는 자기 모순 없는 동작 시퀀스 또는 유사한 프로세싱이다. 이러한 맥락에 있어서, 알고리즘, 루틴 및 동작은 물리적 수량의 물리적 조작을 관련시킨다. 전형적으로, 반드시 그런 것은 아니지만, 그러한 수량은 머신에 의해 저장되거나, 액세스되거나, 전송되거나, 조합되거나, 비교되거나 그렇지 않으면 조작될 수 있는 전기적, 자기적 또는 광학적 신호의 형태를 취할 수 있다. 때로는, 주로 공통 용례의 이유로, "데이터", "컨텐트", "비트", "값", "엘리먼트", "심벌", "캐릭터", "텀즈", "넘버", "숫자" 등과 같은 단어를 사용하여 그러한 신호를 가리키는 것이 편리하다. 그렇지만, 이들 단어는 단지 편리한 라벨일 뿐이고 적절한 물리적 수량과 연관되는 것이다.
특별히 달리 서술되지 않는 한, "프로세싱", "컴퓨팅", "계산", "결정", "제시", "디스플레이" 등과 같은 단어를 사용하는 여기서의 논의는 정보를 수신, 저장, 송신 또는 디스플레이하는 하나 이상의 메모리(예를 들어, 휘발성 메모리, 비-휘발성 메모리 또는 그 조합), 레지스터 또는 다른 머신 컴포넌트 내 물리적(예를 들어, 전자적, 자기적 또는 광학적) 수량으로 표현된 데이터를 조작 또는 변환하는 머신(예를 들어, 컴퓨터)의 액션 또는 프로세스를 지칭할 수 있다.
여기서 사용되는 바와 같이 "일 실시예" 또는 "실시예"의 어떠한 지칭이라도 실시예와 연관하여 설명된 특정 엘리먼트, 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 명세서에 다양한 곳에서 문구 "일 실시예에 있어서"의 나타남은 반드시 모두 동일 실시예를 가리키는 것은 아니다.
일부 실시예는 그 파생어와 함께 "결합" 및 "접속"이라는 표현을 사용하여 설명될 수 있다. 예를 들어, 일부 실시예는 2개 이상의 엘리먼트가 직접적 물리적 또는 전기적 접촉하고 있음을 나타내기 위해 용어 "결합"을 사용하여 설명될 수 있다. 그렇지만, 용어 "결합"은 또한 2개 이상의 엘리먼트가 서로 직접 접촉하고 있지는 않지만 여전히 서로 협력하거나 상호작용함을 의미할 수도 있다. 실시예는 이러한 맥락에 한정되지는 않는다.
여기서 사용되는 바와 같이, 용어 "포함하고 있다", "포함하고 있는", "포함한다", "포함하는", "갖는다", "갖는" 또는 그 어느 다른 변종은 비-배타적 포함을 커버하려는 의도이다. 예를 들어, 엘리먼트의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는 반드시 그러한 엘리먼트만으로 한정되는 것은 아니고 그러한 프로세스, 방법, 물품 또는 장치에 고유하거나 명시적으로 열거되지 않은 다른 엘리먼트를 포함할 수 있다. 더욱, 명시적으로 반대로 서술되지 않는 한, "또는"은 배타적 또는이 아니라 포함적 또는을 지칭한다. 예를 들어, 조건 A 또는 B는 다음 중 어느 하나에 의해 만족된다: A는 참(또는 존재)이고 B는 거짓(또는 존재하지 않음), A는 거짓(또는 존재하지 않음)이고 B는 참(또는 존재), 그리고 A와 B 둘 다 참(또는 존재).
부가하여, 부정관사의 사용은 여기에서의 실시예의 엘리먼트 및 컴포넌트를 설명하기 위해 채용된다. 이것은 단지 편의성을 위해 그리고 설명의 일반적 의미를 부여하기 위해 행해진다. 이러한 설명은 하나 또는 적어도 하나를 포함하는 것으로 읽혀져야 하고 단수형은 또한 그것이 달리 의미함이 명백하지 않는 한 복수형을 포함한다.
더더욱, 도면은 단지 예시의 목적으로 맵 렌더링 시스템의 바람직한 실시예를 묘사한다. 당업자는 여기에 예시된 구조 및 방법의 대안의 실시예가 여기서 설명되는 원리로부터 벗어남이 없이 채용될 수 있음을 이하의 논의로부터 쉽게 인식할 것이다.
본 개시를 읽을 때, 당업자는 여기서 개시된 원리를 사용하여 맵 또는 다른 유형의 이미지를 렌더링하기 위한 시스템 및 프로세스에 대한 또 다른 부가적 대안의 구조적 및 기능적 설계를 인식할 것이다. 그래서, 특정 실시예 및 애플리케이션이 예시 및 설명되었지만, 개시된 실시예는 여기서 개시된 바로 그 구성 및 컴포넌트로 한정되는 것은 아님을 이해해야 한다. 당업자에게 명백할 다양한 수정, 변경 및 변형은 첨부 청구범위에서 정의된 취지 및 범위로부터 벗어남이 없이 여기서 개시된 방법 및 장치의 배열, 동작 및 상세로 이루어질 수 있다.

Claims (20)

  1. 매핑 애플리케이션용 맵 데이터를 사전-인출하기 위한 컴퓨터-구현 방법으로서,
    컴퓨터를 사용하여, 제1 루트를 발생시키는 제1 라우팅 기능을 개시하는 단계, 상기 제1 루트는 출발지, 목적지, 상기 출발지를 상기 목적지에 연결하는 도로 세트, 및 주행 방향에 의해 정의되며;
    소망의 보조 루트를 발생시키는 사용자 입력을 수신하기 전에,
    1) 상기 컴퓨터를 사용하여, 상기 제1 라우팅 기능을 개시하는 단계에 응답하여 상기 제1 루트에 기반하는 잠재적 보조 루트 세트를 결정하는 단계, 상기 잠재적 보조 루트 세트의 각각은 복수의 도로들을 포함하며, 상기 잠재적 보조 루트 세트 중 적어도 하나는 상기 제1 루트와 다른 도로 세트를 포함하며,
    2) 상기 컴퓨터를 사용하여, 대역폭 임계값 및 현재 프로세서 부하 중 적어도 하나에 기초하여, 상기 보조 루트 세트의 각각에 우선순위를 할당하는 단계,
    3) 상기 컴퓨터를 사용하여, 맵 데이터베이스로부터 맵 데이터 타일 세트의 시퀀스에 액세스하는 단계, 상기 보조 루트 세트의 각각은 상기 맵 데이터 타일 세트 중 하나에 대응하며, 상기 세트 내의 상기 보조 루트들은 제1 카테고리의 루트들의 서브세트 및 제2 카테고리의 루트들의 서브세트를 포함하며, 그리고 상기 맵 데이터 타일 세트의 시퀀스에 액세스하는 단계는 상기 제1 카테고리 내의 상기 루트들에 액세스하는 것과 상기 대역폭이 임계값 미만인 경우 상기 제2 카테고리 내의 상기 루트들에는 액세스하지 않는 것을 포함하며, 및
    4) 상기 컴퓨터를 사용하여, 상기 액세스된 맵 데이터 타일 세트를 사전-인출 맵 데이터 타일로서 로컬 메모리에 저장하는 단계, 상기 로컬 메모리는 상기 맵 데이터베이스와 다르며; 및
    상기 소망의 보조 루트를 발생시키는 상기 사용자 입력을 수신한 후에, 상기 컴퓨터를 사용하여, 상기 맵 데이터베이스 내 상기 맵 데이터 타일 세트 대신에 상기 로컬 메모리 내 저장된 상기 사전-인출 맵 데이터 타일의 세트의 적어도 일부를 사용하여 상기 보조 루트 중 하나를 상기 소망의 보조 루트로서 디스플레이하는 렌더링 기능을 개시하는 단계를 포함하며,
    상기 보조 루트 세트는 상기 제1 루트의 목적지로부터 상기 제1 루트의 출발지로의 반환 루트 세트를 포함하며, 상기 반환 루트의 각각은 상기 제1 루트의 상기 주행 방향과 반대인 주행 방향에 의해 정의되는 것인 컴퓨터-구현 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 보조 루트 세트 중 적어도 하나는 현재 교통량 조건 또는 도로의 속도 순위 중 하나에 기반하여 결정되고, 상기 우선순위는 상기 보조 루트 중 하나를 디스플레이하는 기능을 개시할 가능성, 사용자 선호의 파라미터, 또는 상기 반환 루트 중 하나의 우선순위를 나타내는 파라미터 중 적어도 하나에 기반하여 할당되고, 상기 컴퓨터를 사용하여, 상기 보조 루트의 상기 우선순위에 기반하여 보조 루트 임계 수를 결정하는 단계를 더 포함하는 것인 컴퓨터-구현 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 반환 루트의 세트 중 적어도 하나는 상기 제1 루트의 외부에 있는 관심 지점을 통하는 루트이되, 상기 관심 지점은 사용자가 자주 다니는 위치이고, 상기 보조 루트 세트는 상기 제1 루트를 따른 지점, 상기 제1 루트의 외부에 있는 관심 지점, 및 상기 제1 루트를 따른 상기 지점을 상기 관심 지점에 연결하는 도로 세트에 의해 정의되는 적어도 하나의 루트를 포함하는 것인 컴퓨터-구현 방법.
  6. 제1항에 있어서, 상기 사전-인출 맵 데이터 타일의 세트는 상기 보조 루트를 따른 지점의 반경 세트 내 맵 표면 영역에 대응하고, 상기 반경 세트는 상기 보조 루트를 따른 지점의 우선순위에 기반하며, 상기 반경 세트는 적어도 2개의 상이한 반경을 포함하는 것인 컴퓨터-구현 방법.
  7. 매핑 애플리케이션용 맵 데이터를 사전-인출하기 위한 컴퓨터 디바이스로서, 상기 컴퓨터 디바이스는,
    통신 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 하나 이상의 프로세서에 결합된 하나 이상의 메모리; 및
    상기 하나 이상의 프로세서에 결합된 디스플레이 디바이스를 포함하되,
    상기 하나 이상의 메모리는 내부에 저장된 컴퓨터 실행가능한 명령어를 포함하고, 상기 명령어는, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금
    제1 루트를 발생시키는 제1 라우팅 기능을 개시하는 단계, 상기 제1 루트는 출발지, 목적지, 상기 출발지를 상기 목적지에 연결하는 도로 세트, 및 주행 방향에 의해 정의되며;
    소망의 보조 루트를 발생시키는 사용자 입력을 수신하기 전에,
    1) 상기 제1 라우팅 기능을 개시하는 단계에 응답하여 상기 제1 루트에 기반하는 잠재적 보조 루트 세트를 결정하는 단계, 상기 잠재적 보조 루트 세트의 각각은 복수의 도로들을 포함하며, 상기 잠재적 보조 루트 세트 중 적어도 하나는 상기 제1 루트와 다른 도로 세트를 포함하며,
    2) 현재 대역폭 임계값 또는 현재 프로세서 부하 중 적어도 하나에 기초하여, 상기 보조 루트 세트의 각각에 단일의 각각의 우선순위를 할당하는 단계,
    3) 낮은 우선순위 보조 루트의 맵 데이터 전에 높은 우선순위 보조 루트의 맵 데이터를 검색하기 위해 상기 할당된 우선순위에 따라, 상기 통신 네트워크 인터페이스를 통해 맵 데이터베이스로부터 맵 데이터 타일 세트의 시퀀스에 액세스하는 단계, 상기 보조 루트 세트의 각각은 상기 맵 데이터 타일 세트 중 하나에 대응하며, 상기 세트 내의 상기 보조 루트들은 제1 카테고리의 루트들의 서브세트 및 제2 카테고리의 루트들의 서브세트를 포함하며, 그리고 상기 맵 데이터 타일 세트의 시퀀스에 액세스하는 단계는 상기 제1 카테고리 내의 상기 루트들에 액세스하는 것과 상기 대역폭이 임계값 미만인 경우 상기 제2 카테고리 내의 상기 루트들에는 액세스하지 않는 것을 포함하며, 및
    4) 상기 액세스된 맵 데이터 타일 세트를 사전-인출 맵 데이터 타일로서 로컬 메모리에 저장하는 단계, 상기 로컬 메모리는 상기 맵 데이터베이스와 다르며; 및
    상기 소망의 보조 루트를 발생시키는 상기 사용자 입력을 수신한 후에, 상기 맵 데이터베이스 내 상기 맵 데이터 타일 세트 대신에 상기 로컬 메모리 내 저장된 상기 사전-인출 맵 데이터 타일의 세트의 적어도 일부를 사용하여 상기 보조 루트 중 하나를 상기 소망의 보조 루트로서 디스플레이하는 렌더링 기능을 개시하는 단계를 수행하게 하는 컴퓨터 디바이스.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020147018380A 2011-12-12 2012-08-20 렌더링 및 오프라인 라우팅을 위해 맵 데이터를 사전-인출하는 방법 KR102024837B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161569634P 2011-12-12 2011-12-12
US61/569,634 2011-12-12
US13/546,134 2012-07-11
US13/546,134 US9389088B2 (en) 2011-12-12 2012-07-11 Method of pre-fetching map data for rendering and offline routing
PCT/US2012/051574 WO2013089836A1 (en) 2011-12-12 2012-08-20 Method of pre-fetching map data for rendering and offline routing

Publications (2)

Publication Number Publication Date
KR20140102726A KR20140102726A (ko) 2014-08-22
KR102024837B1 true KR102024837B1 (ko) 2019-11-04

Family

ID=48571561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018380A KR102024837B1 (ko) 2011-12-12 2012-08-20 렌더링 및 오프라인 라우팅을 위해 맵 데이터를 사전-인출하는 방법

Country Status (8)

Country Link
US (1) US9389088B2 (ko)
EP (1) EP2791824A4 (ko)
JP (1) JP6184973B2 (ko)
KR (1) KR102024837B1 (ko)
CN (1) CN104221007B (ko)
AU (1) AU2012352984B2 (ko)
CA (1) CA2856674C (ko)
WO (1) WO2013089836A1 (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5859771B2 (ja) * 2011-08-22 2016-02-16 ソニー株式会社 情報処理装置、情報処理システム情報処理方法及びプログラム
JP6021487B2 (ja) * 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
EP2717015B1 (en) * 2012-10-08 2018-05-23 Harman Becker Automotive Systems GmbH Seamless display of objects
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US9197716B2 (en) * 2013-05-30 2015-11-24 Sap Se Pre-fetching resources by predicting user actions
US9591095B2 (en) * 2014-03-10 2017-03-07 Microsoft Technology Licensing, Llc Prefetching application data for periods of disconnectivity
US10863354B2 (en) 2014-11-24 2020-12-08 Facebook, Inc. Automated check-ins
US20160150048A1 (en) * 2014-11-24 2016-05-26 Facebook, Inc. Prefetching Location Data
US10397346B2 (en) 2014-11-24 2019-08-27 Facebook, Inc. Prefetching places
US10503377B2 (en) 2014-11-24 2019-12-10 Facebook, Inc. Dynamic status indicator
US9756375B2 (en) 2015-01-22 2017-09-05 Microsoft Technology Licensing, Llc Predictive server-side rendering of scenes
US9986060B2 (en) * 2015-03-30 2018-05-29 General Electric Company Persistent caching of map imagery and data
US10554713B2 (en) 2015-06-19 2020-02-04 Microsoft Technology Licensing, Llc Low latency application streaming using temporal frame transformation
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US9709417B1 (en) 2015-12-29 2017-07-18 Ebay Inc. Proactive re-routing of vehicles using passive monitoring of occupant frustration level
US9792814B2 (en) 2015-12-29 2017-10-17 Ebay Inc. Traffic disruption detection using passive monitoring of vehicle occupant frustration level
US9989369B2 (en) 2015-12-29 2018-06-05 Ebay Inc. Proactive re-routing of vehicles to control traffic flow
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
US10299074B2 (en) 2016-05-09 2019-05-21 Microsoft Technology Licensing, Llc Offline map download
US11861527B2 (en) 2018-11-07 2024-01-02 Circlesx Llc Financial swap payment structure method and system on transportation capacity unit assets
US11157852B2 (en) 2016-09-15 2021-10-26 Simpsx Technologies Llc Tool appliance community objects with price-time priority queues for transformed tool appliance units
US11880883B2 (en) 2016-09-15 2024-01-23 Circlesx Llc Systems and methods for geolocation portfolio exchanges
US10460520B2 (en) * 2017-01-13 2019-10-29 Simpsx Technologies Llc Computer ball device for mixed reality, virtual reality, or augmented reality
US11810023B2 (en) 2018-10-22 2023-11-07 Circlesx Llc System and method for a transportation or freight capacity exchange for one or more transportation or freight capacity units
US11215466B2 (en) 2016-09-15 2022-01-04 Circlesx Llc Route community objects with price-time priority queues for transformed transportation units
US11138661B2 (en) 2016-09-15 2021-10-05 Simpsx Technologies Llc Agriculture community objects with price-time priority queues for transformed agriculture units
US11035682B2 (en) 2016-09-15 2021-06-15 Simpsx Technologies Llc Navigation routes as community object virtual hub sequences to which users may subscribe
US11790382B2 (en) 2016-09-15 2023-10-17 Circlesx Llc Method to transmit geolocation exchange based markets
US20190228351A1 (en) 2018-01-23 2019-07-25 Erik M. Simpson Electronic forward market exchange for transportation seats and capacity in transportation spaces and vehicles
US20190272589A1 (en) 2016-09-15 2019-09-05 Erik M. Simpson Securitization of transportation units
US12001999B2 (en) 2016-09-15 2024-06-04 Circlesx Llc Price based navigation
US11138827B2 (en) 2016-09-15 2021-10-05 Simpsx Technologies Llc Implementations of a computerized business transaction exchange for various users
US11740777B2 (en) 2016-09-15 2023-08-29 Circlesx Llc Multi-dimension information service helmet method and system
US11823090B2 (en) 2016-09-15 2023-11-21 Circlesx Llc Transportation and freight and parking and tolling and curb capacity unit IPO method and system
CN110023717B (zh) * 2016-12-13 2023-05-12 宝马股份公司 数字地图的更新
US10353931B2 (en) 2016-12-30 2019-07-16 DeepMap Inc. High definition map and route storage management system for autonomous vehicles
JP6939234B2 (ja) * 2017-08-14 2021-09-22 株式会社Jvcケンウッド 誘導装置、誘導方法、及び誘導プログラム
DE102017218394A1 (de) * 2017-10-13 2019-04-18 Robert Bosch Gmbh Verfahren und System zum Laden von digitalen geographischen Kartenkacheln
CN108390902A (zh) * 2017-12-12 2018-08-10 苏州车萝卜汽车电子科技有限公司 用于离线地图下载的数据处理方法及装置
US10663313B2 (en) * 2017-12-15 2020-05-26 Google Llc Providing traffic warnings to a user based on return journey
US20190392054A1 (en) * 2018-06-20 2019-12-26 Uber Technologies, Inc. System and method for pre-fetching map data
US11003696B2 (en) * 2018-06-29 2021-05-11 Uber Technologies, Inc. Adaptive geographical data caching based on a route pattern
JP7355743B2 (ja) * 2018-08-29 2023-10-03 フォルシアクラリオン・エレクトロニクス株式会社 更新地域決定方法、情報処理装置、及びプログラム
US10924525B2 (en) 2018-10-01 2021-02-16 Microsoft Technology Licensing, Llc Inducing higher input latency in multiplayer programs
CN112639766A (zh) 2018-10-05 2021-04-09 谷歌有限责任公司 改善离线地图数据可用性
CN109754700A (zh) * 2018-12-07 2019-05-14 深圳坤辰物联网有限公司 一种室内地图制作及数据库应用系统及其方法
US20220349728A1 (en) * 2019-01-11 2022-11-03 Lg Electronics Inc. System and method
CN111750878B (zh) * 2019-03-28 2022-06-24 北京魔门塔科技有限公司 一种车辆位姿的修正方法和装置
CN110186473B (zh) * 2019-05-29 2023-05-02 腾讯科技(深圳)有限公司 一种图像处理方法、装置、电子设备以及存储介质
BR102019021266A2 (pt) * 2019-10-10 2021-04-20 Robert Bosch Limitada método de navegação e sistema
KR102255455B1 (ko) * 2019-11-11 2021-05-24 레이시오 유한책임회사 지도 데이터로부터 지도 화면을 렌더링하는 방법 및 이를 수행하는 데이터 처리 장치
US11356367B2 (en) * 2019-11-22 2022-06-07 Red Hat, Inc. Secure preloading of serverless function sequences
US11747147B2 (en) * 2019-12-30 2023-09-05 Gm Cruise Holdings Llc Dynamic map rendering
EP3896395A1 (en) * 2020-04-15 2021-10-20 Ordnance Survey Limited Vector tile navigation
US11455296B1 (en) * 2020-11-19 2022-09-27 Quickbase Inc. Offline structured data entry and data access on a mobile device
US11601209B2 (en) * 2020-11-25 2023-03-07 At&T Intellectual Property I, L.P. Modeling radio wave propagation in a fifth generation (5G) or other next generation network
CN112988950B (zh) * 2021-03-12 2023-10-13 成都数联铭品科技有限公司 知识图谱的前端渲染方法及系统、电子设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050140524A1 (en) * 2003-10-08 2005-06-30 Manabu Kato Method and apparatus for communicating map and route guidance information for vehicle navigation
US20060106534A1 (en) * 2002-10-22 2006-05-18 Yukihiro Kawamata Map data delivering method for communication-type navigation system

Family Cites Families (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345086A (en) 1962-11-28 1994-09-06 Eaton Corporation Automatic map compilation system
IE61778B1 (en) 1989-01-04 1994-11-30 Emyville Enterprises Image processing
US5793310A (en) 1994-02-04 1998-08-11 Nissan Motor Co., Ltd. Portable or vehicular navigating apparatus and method capable of displaying bird's eye view
US5848373A (en) 1994-06-24 1998-12-08 Delorme Publishing Company Computer aided map location system
US6571279B1 (en) 1997-12-05 2003-05-27 Pinpoint Incorporated Location enhanced information delivery system
EP0827340A3 (en) 1996-08-30 1999-10-06 Matsushita Electric Industrial Co., Ltd. Terminal apparatus and method for achieving interactive operations
US5831640A (en) 1996-12-20 1998-11-03 Cirrus Logic, Inc. Enhanced texture map data fetching circuit and method
US6199150B1 (en) 1997-07-15 2001-03-06 Matsushita Electric Industrial Co., Ltd. Data memory apparatus forming memory map having areas with different access speeds
US6061688A (en) 1997-11-04 2000-05-09 Marathon Oil Company Geographical system for accessing data
JPH11224047A (ja) 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 地図情報提供方法及びそれに用いられる端末装置
US6073076A (en) 1998-03-27 2000-06-06 Navigation Technologies Corporation Memory management for navigation system
US6094685A (en) 1998-04-14 2000-07-25 Ascend Communications, Inc. Use of control blocks to map multiple unidirectional connections
US6400690B1 (en) 1998-10-15 2002-06-04 International Business Machines Corporation Dual map system for navigation and wireless communication
AU3629000A (en) 1999-03-15 2000-10-04 Index Systems, Inc. System and method of channel map correction in an epg
JP2001012957A (ja) 1999-06-29 2001-01-19 Mitsubishi Electric Corp カーナビゲーション用地図更新システムおよびカーナビゲーション端末
JP2001075967A (ja) 1999-08-31 2001-03-23 Denso Corp 地図データの更新用情報作成方法及び地図データの差分更新システム
EP1102510A1 (en) 1999-10-12 2001-05-23 Taskin Sakarya Location system for mobile telephones
US6615131B1 (en) * 1999-12-21 2003-09-02 Televigation, Inc. Method and system for an efficient operating environment in a real-time navigation system
US7502876B1 (en) 2000-06-23 2009-03-10 Mips Technologies, Inc. Background memory manager that determines if data structures fits in memory with memory state transactions map
US6684250B2 (en) 2000-04-03 2004-01-27 Quova, Inc. Method and apparatus for estimating a geographic location of a networked entity
US6456234B1 (en) 2000-06-07 2002-09-24 William J. Johnson System and method for proactive content delivery by situation location
US8489669B2 (en) 2000-06-07 2013-07-16 Apple Inc. Mobile data processing system moving interest radius
US8060389B2 (en) 2000-06-07 2011-11-15 Apple Inc. System and method for anonymous location based services
US6671424B1 (en) 2000-07-25 2003-12-30 Chipworks Predictive image caching algorithm
US6703947B1 (en) 2000-09-22 2004-03-09 Tierravision, Inc. Method for organizing and compressing spatial data
ATE381191T1 (de) 2000-10-26 2007-12-15 Prismedia Networks Inc Verfahren und system zur verwaltung von verteilten inhalten und entsprechenden metadaten
US6724382B2 (en) 2000-12-04 2004-04-20 Wildtangent, Inc. Method and apparatus for distributing and displaying maps electronically
GB2370460A (en) 2000-12-21 2002-06-26 Nokia Mobile Phones Ltd Segmented route guidance
US6691128B2 (en) 2001-04-19 2004-02-10 Navigation Technologies Corp. Navigation system with distributed computing architecture
US7082365B2 (en) 2001-08-16 2006-07-25 Networks In Motion, Inc. Point of interest spatial rating search method and system
JP2003067721A (ja) 2001-08-24 2003-03-07 Pioneer Electronic Corp 地図画像表示システムおよび方法
EP1288625B1 (en) 2001-08-31 2011-07-27 Pioneer Corporation Communication-type navigation apparatus and server device
JP4860847B2 (ja) * 2001-09-03 2012-01-25 パイオニア株式会社 通信ナビゲーションシステム及び方法、並びにコンピュータプログラム
US7962565B2 (en) 2001-09-29 2011-06-14 Siebel Systems, Inc. Method, apparatus and system for a mobile web client
US7006820B1 (en) 2001-10-05 2006-02-28 At Road, Inc. Method for determining preferred conditions for wireless programming of mobile devices
WO2003054654A2 (en) 2001-12-21 2003-07-03 Nokia Corporation Location-based novelty index value and recommendation system and method
US7263368B2 (en) 2002-03-28 2007-08-28 Intel Corporation Anticipation of communication connectivity changes for mobile devices
US8516114B2 (en) 2002-03-29 2013-08-20 International Business Machines Corporation Method and apparatus for content pre-fetching and preparation
WO2003098578A1 (en) 2002-05-17 2003-11-27 Xanavi Informatics Corporation Map data product, map data processing program product, map data processing method, and map data processing device
JP2004020220A (ja) 2002-06-12 2004-01-22 Pioneer Electronic Corp 通信システム及び方法、通信端末装置、通信センタ装置、並びにコンピュータプログラム
AU2003253436A1 (en) 2002-08-29 2004-03-19 Matsushita Electric Industrial Co., Ltd. Content processing apparatus and content display apparatus based on location information
JP3803629B2 (ja) * 2002-10-01 2006-08-02 株式会社ザナヴィ・インフォマティクス 地図データ送信方法、情報配信装置、および情報端末
JP3975998B2 (ja) * 2003-10-16 2007-09-12 株式会社日立製作所 ナビゲーションサーバ装置
JP4012799B2 (ja) * 2002-10-22 2007-11-21 株式会社日立製作所 地図情報提供システム
GB2395808A (en) 2002-11-27 2004-06-02 Sony Uk Ltd Information retrieval
JP4065202B2 (ja) 2003-01-07 2008-03-19 三菱電機株式会社 地図データ処理装置およびセンターシステム
JP4307121B2 (ja) 2003-03-25 2009-08-05 三菱電機株式会社 地図データ処理装置
TW200424963A (en) 2003-05-02 2004-11-16 Sin Etke Technology Co Ltd Cross country navigation system
US9286795B2 (en) 2003-05-09 2016-03-15 Dimitri Vorona System for transmitting, processing, receiving, and displaying traffic information
US9607092B2 (en) 2003-05-20 2017-03-28 Excalibur Ip, Llc Mapping method and system
US7464109B2 (en) 2003-09-30 2008-12-09 U-Haul International, Inc. System and method of compiling real property information from a central database
JP4409904B2 (ja) * 2003-10-08 2010-02-03 株式会社日立製作所 経路情報提供システムおよび経路情報提供方法
JP4503410B2 (ja) 2004-01-20 2010-07-14 クラリオン株式会社 車載ナビゲーション装置の地図データ更新方法、地図データ更新システム、認証キー生成装置およびナビゲーション装置
US7327349B2 (en) * 2004-03-02 2008-02-05 Microsoft Corporation Advanced navigation techniques for portable devices
US7831387B2 (en) 2004-03-23 2010-11-09 Google Inc. Visually-oriented driving directions in digital mapping system
US7599790B2 (en) 2004-03-23 2009-10-06 Google Inc. Generating and serving tiles in a digital mapping system
US7158878B2 (en) * 2004-03-23 2007-01-02 Google Inc. Digital mapping system
US20050287509A1 (en) 2004-06-04 2005-12-29 Sherman Mohler Learning objects in an electronic teaching system
US20060058953A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060080032A1 (en) 2004-09-07 2006-04-13 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
JP4079137B2 (ja) 2004-09-30 2008-04-23 ブラザー工業株式会社 ネットワーク管理プログラム,デバイスおよびネットワーク管理システム
JP4476789B2 (ja) 2004-11-18 2010-06-09 クラリオン株式会社 地図更新システム、ナビゲーション装置、配信装置
JP2006171106A (ja) 2004-12-13 2006-06-29 Aisin Aw Co Ltd 地図データ更新方法、地図データ更新システム、サーバ及び中継装置
US7551182B2 (en) 2005-01-18 2009-06-23 Oculus Info Inc. System and method for processing map data
US7236882B2 (en) 2005-01-26 2007-06-26 Broadcom Corporation Downloading map segment(s) to a cell phone based upon its GPS coordinates and mobility
US7584054B2 (en) 2005-04-14 2009-09-01 Baron Services, Inc. System and method for displaying storm tracks
US8103445B2 (en) 2005-04-21 2012-01-24 Microsoft Corporation Dynamic map rendering as a function of a user parameter
DE102005020152A1 (de) 2005-04-29 2006-11-02 Volkswagen Ag Verfahren zum Steuern der Anzeige einer geografischen Karte in einem Fahrzeug und Anzeigevorrichtung hierfür
JP4284301B2 (ja) 2005-05-13 2009-06-24 ソフトバンクモバイル株式会社 情報配信装置及び情報配信システム
US20060277271A1 (en) 2005-06-07 2006-12-07 Yahoo! Inc. Prefetching content based on a mobile user profile
CN101379476A (zh) * 2005-06-07 2009-03-04 雅虎公司 基于移动用户配置文件预取内容
US7933929B1 (en) * 2005-06-27 2011-04-26 Google Inc. Network link for providing dynamic data layer in a geographic information system
US7315259B2 (en) 2005-08-11 2008-01-01 Google Inc. Techniques for displaying and caching tiled map data on constrained-resource services
US20070050128A1 (en) 2005-08-31 2007-03-01 Garmin Ltd., A Cayman Islands Corporation Method and system for off-board navigation with a portable device
US8229914B2 (en) 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US7796837B2 (en) 2005-09-22 2010-09-14 Google Inc. Processing an image map for display on computing device
JP4622822B2 (ja) 2005-11-16 2011-02-02 日産自動車株式会社 地図データ更新システム、および地図データ更新方法
US7663671B2 (en) 2005-11-22 2010-02-16 Eastman Kodak Company Location based image classification with map segmentation
JP4745045B2 (ja) 2005-12-15 2011-08-10 アルパイン株式会社 ナビゲーション装置
JP4841242B2 (ja) 2005-12-15 2011-12-21 アルパイン株式会社 地図データ更新方法および地図データ更新装置
KR20070077270A (ko) 2006-01-23 2007-07-26 엘지전자 주식회사 네비게이션 시스템의 정보 제공장치 및 방법
US8208949B2 (en) * 2006-03-16 2012-06-26 Marc Stuart Cox Navigation system for portable communication devices
US20070229538A1 (en) 2006-03-31 2007-10-04 Research In Motion Limited Methods and apparatus for dynamically labeling map objects in visually displayed maps of mobile communication devices
US7925624B2 (en) 2006-03-31 2011-04-12 Amazon Technologies, Inc. System and method for providing high availability data
ATE462956T1 (de) 2006-03-31 2010-04-15 Research In Motion Ltd Verfahren zur kontrolle von kartenversionen und vorrichtung zur aktualisierung der verwendung von über ein netzwerk gewarteten kartendatensätzen für mobile kommunikationsvorrichtungen
US7907144B2 (en) 2006-04-14 2011-03-15 Autodesk, Inc. Optimized tile-based image storage
US20070282621A1 (en) 2006-06-01 2007-12-06 Flipt, Inc Mobile dating system incorporating user location information
WO2008010699A1 (en) 2006-07-21 2008-01-24 Tele Atlas B.V. Method for generating a location reference and method for mapping information to a position within a digital map database
JP4656023B2 (ja) 2006-08-11 2011-03-23 株式会社デンソー 地図表示装置
GB2440958A (en) 2006-08-15 2008-02-20 Tomtom Bv Method of correcting map data for use in navigation systems
US20080082225A1 (en) 2006-08-15 2008-04-03 Tomtom International B.V. A method of reporting errors in map data used by navigation devices
US7925982B2 (en) 2006-09-01 2011-04-12 Cheryl Parker System and method of overlaying and integrating data with geographic mapping applications
US20080071988A1 (en) 2006-09-17 2008-03-20 Nokia Corporation Adaptable Caching Architecture and Data Transfer for Portable Devices
US7571422B2 (en) 2006-09-21 2009-08-04 Kla-Tencor Technologies Corporation Method for generating a design rule map having spatially varying overlay budget
JP5001617B2 (ja) 2006-09-29 2012-08-15 アイシン・エィ・ダブリュ株式会社 地図更新データ供給装置、バージョンテーブル、地図データ更新システム、地図更新データ供給プログラム、及び地図データ更新プログラム
JP5308621B2 (ja) 2006-10-05 2013-10-09 日立オートモティブシステムズ株式会社 地図データ配信システム
US20080086264A1 (en) 2006-10-06 2008-04-10 Microsoft Corporation Popularity based geographical navigation
US20080154655A1 (en) 2006-10-31 2008-06-26 Travelocity.Com Lp Systems, Methods, and Computer Program Products for Retrieving Predicted Weather Conditions Corresponding to Selected Travel Itineraries Stored in an Inventory System
US7734412B2 (en) 2006-11-02 2010-06-08 Yahoo! Inc. Method of client side map rendering with tiled vector data
US8010407B1 (en) 2006-11-14 2011-08-30 Google Inc. Business finder for locating local businesses to contact
US20080132249A1 (en) 2006-12-05 2008-06-05 Palm, Inc. Local caching of map data based on carrier coverage data
US20080215240A1 (en) 2006-12-18 2008-09-04 Damian Howard Integrating User Interfaces
KR20080071228A (ko) * 2007-01-24 2008-08-04 팅크웨어(주) 지도 제공방법 및 지도 서비스 제공 시스템
US8368695B2 (en) 2007-02-08 2013-02-05 Microsoft Corporation Transforming offline maps into interactive online maps
US7796056B2 (en) 2007-03-28 2010-09-14 Fein Gene S Digital windshield information system employing a recommendation engine keyed to a map database system
JP2010525302A (ja) 2007-04-06 2010-07-22 テレ アトラス ベスローテン フエンノートシャップ デジタル地図データベースにおいて場所を判定する方法、ナビゲーション装置及びサーバ
US8078641B2 (en) 2007-04-25 2011-12-13 Mitac International Corporation Adjusting spatial operations based on map density
US7996445B2 (en) 2007-04-27 2011-08-09 Network Appliance, Inc. Block reallocation planning during read-ahead processing
JP5515737B2 (ja) 2007-06-13 2014-06-11 日本電気株式会社 画像表示装置、画像表示方法、及びその表示プログラム
US7801675B2 (en) 2007-07-13 2010-09-21 Dash Navigation, Inc. System and method of identifying portions of roads
US20090030778A1 (en) 2007-07-23 2009-01-29 Motivepath, Inc. System, method and apparatus for secure multiparty location based services
US20090054103A1 (en) 2007-08-20 2009-02-26 Sony Ericsson Mobile Communications Ab Portable communication device with automated localized calendar
US8543130B2 (en) 2007-08-24 2013-09-24 Microsoft Corporation Intelligent global positioning system (GPS) information detection
EP2031352A1 (en) 2007-08-29 2009-03-04 Wayfinder Systems AB Pre-fetching navigation maps
US8374782B2 (en) * 2007-08-29 2013-02-12 Vodafone Group Services Limited Pre-fetching navigation maps
US8428867B2 (en) 2007-08-30 2013-04-23 Wirelesswerx International, Inc. Configuring and using multi-dimensional zones
US20090125228A1 (en) 2007-11-09 2009-05-14 Research In Motion Limited System and method for providing dynamic route information to users of wireless communications devices
JP2009140488A (ja) 2007-11-14 2009-06-25 Fujitsu Ten Ltd 車載装置および表示制御システム
DE102007061657A1 (de) 2007-12-18 2009-07-02 Navigon Ag Verfahren zur Erzeugung einer digitalen Landkarte
US9354068B2 (en) 2008-01-14 2016-05-31 Blackberry Limited System and method for dynamically downloading and displaying map data
US8504945B2 (en) 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
US20090210388A1 (en) 2008-02-20 2009-08-20 Microsoft Corporation Efficiently discovering and synthesizing maps from a large corpus of maps
US20090244095A1 (en) 2008-04-01 2009-10-01 Research In Motion Limited Run-time label cache for efficient map labeling
US8032297B2 (en) 2008-05-08 2011-10-04 Gabriel Jakobson Method and system for displaying navigation information on an electronic map
ATE554367T1 (de) 2008-05-09 2012-05-15 Research In Motion Ltd Vorausschauendes herunterladen von kartendaten
US9200901B2 (en) 2008-06-19 2015-12-01 Microsoft Technology Licensing, Llc Predictive services for devices supporting dynamic direction information
US8467991B2 (en) 2008-06-20 2013-06-18 Microsoft Corporation Data services based on gesture and location information of device
US8103441B2 (en) 2008-06-26 2012-01-24 Microsoft Corporation Caching navigation content for intermittently connected devices
US8280631B2 (en) 2008-10-02 2012-10-02 Certusview Technologies, Llc Methods and apparatus for generating an electronic record of a marking operation based on marking device actuations
US7975025B1 (en) 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US8214329B2 (en) 2008-08-26 2012-07-03 Zeewise, Inc. Remote data collection systems and methods
US8060406B2 (en) 2008-09-26 2011-11-15 Microsoft Corporation Predictive geo-temporal advertisement targeting
US8060582B2 (en) * 2008-10-22 2011-11-15 Google Inc. Geocoding personal information
US9062982B2 (en) 2008-12-15 2015-06-23 Blackberry Limited Pre-loading waypoint data
US8126885B2 (en) 2008-12-19 2012-02-28 Hewlett-Packard Development Company, L.P. History based search service operable with multiple applications and services
WO2010075309A2 (en) 2008-12-23 2010-07-01 Zhijing George Mou Method and system for multi-dimensional and geographic search
CN102341836B (zh) 2009-03-04 2014-04-09 三菱电机株式会社 地图发布服务器、地图信息终端、及使用它们的地图发布系统
US20100250646A1 (en) 2009-03-25 2010-09-30 Microsoft Corporation Mechanism for geo distributing application data
US8560696B2 (en) 2009-04-28 2013-10-15 Intel Corporation Transmission of advanced-MAP information elements in mobile networks
US8385591B1 (en) 2009-04-28 2013-02-26 Google Inc. System and method of using images to determine correspondence between locations
US20100321399A1 (en) 2009-06-18 2010-12-23 Patrik Ellren Maps from Sparse Geospatial Data Tiles
US8341620B2 (en) 2009-06-25 2012-12-25 Microsoft Corporation Streaming optimized virtual application images
JP5054734B2 (ja) 2009-06-26 2012-10-24 クラリオン株式会社 カーナビゲーション装置、プログラムおよび地図データ更新方法
JP5551896B2 (ja) * 2009-06-29 2014-07-16 株式会社日立製作所 ナビゲーション装置、経路探索サーバ、および経路探索システム
US20110054776A1 (en) 2009-09-03 2011-03-03 21St Century Systems, Inc. Location-based weather update system, method, and device
WO2011047299A2 (en) 2009-10-15 2011-04-21 Binja Inc. Mobile local search platform
US20110095993A1 (en) 2009-10-26 2011-04-28 Adobe Systems Incorporated Zoom adjustment process
US20110099507A1 (en) 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
US8566020B2 (en) 2009-12-01 2013-10-22 Nokia Corporation Method and apparatus for transforming three-dimensional map objects to present navigation information
US8260546B2 (en) * 2009-12-14 2012-09-04 At&T Mobility Ii Llc Systems and methods for providing geographical information to a mobile communications device
US20110161875A1 (en) 2009-12-29 2011-06-30 Nokia Corporation Method and apparatus for decluttering a mapping display
US8356049B2 (en) 2010-02-26 2013-01-15 Panasonic Corporation Landmark search apparatus, electronic apparatus and imaging apparatus having the same, and landmark search method
US20120254804A1 (en) 2010-05-21 2012-10-04 Sheha Michael A Personal wireless navigation system
US8665266B2 (en) 2010-06-23 2014-03-04 The United States Of America, As Represented By The Secretary Of The Navy Global visualization process terrain database builder
US9183221B2 (en) 2010-08-11 2015-11-10 Root Wireless, Inc. Component and method for overlying information bearing hexagons on a map display
US8478519B2 (en) 2010-08-30 2013-07-02 Google Inc. Providing results to parameterless search queries
WO2012072862A1 (en) 2010-11-30 2012-06-07 Nokia Corporation Method and apparatus for predicting and pre-fetching location information
CN102162736A (zh) * 2010-12-13 2011-08-24 深圳市凯立德科技股份有限公司 一种规划路径显示方法、导航方法及位置服务终端
US20120146809A1 (en) 2010-12-13 2012-06-14 Samsung Electronics Co. Ltd. Information providing apparatus and method for vehicles
US9291713B2 (en) 2011-03-31 2016-03-22 Strava, Inc. Providing real-time segment performance information
US8683008B1 (en) 2011-08-04 2014-03-25 Google Inc. Management of pre-fetched mapping data incorporating user-specified locations
US8204966B1 (en) 2011-09-26 2012-06-19 Google Inc. Map tile data pre-fetching based on user activity analysis
US8280414B1 (en) 2011-09-26 2012-10-02 Google Inc. Map tile data pre-fetching based on mobile device generated event analysis
US20130097197A1 (en) 2011-10-14 2013-04-18 Nokia Corporation Method and apparatus for presenting search results in an active user interface element
US8711181B1 (en) 2011-11-16 2014-04-29 Google Inc. Pre-fetching map data using variable map tile radius
US8803920B2 (en) 2011-12-12 2014-08-12 Google Inc. Pre-fetching map tile data along a route

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106534A1 (en) * 2002-10-22 2006-05-18 Yukihiro Kawamata Map data delivering method for communication-type navigation system
US20050140524A1 (en) * 2003-10-08 2005-06-30 Manabu Kato Method and apparatus for communicating map and route guidance information for vehicle navigation

Also Published As

Publication number Publication date
US20130147820A1 (en) 2013-06-13
CN104221007A (zh) 2014-12-17
WO2013089836A1 (en) 2013-06-20
CN104221007B (zh) 2018-11-30
CA2856674C (en) 2019-03-12
JP6184973B2 (ja) 2017-08-23
AU2012352984B2 (en) 2018-05-10
KR20140102726A (ko) 2014-08-22
JP2015501956A (ja) 2015-01-19
EP2791824A1 (en) 2014-10-22
US9389088B2 (en) 2016-07-12
AU2012352984A1 (en) 2014-06-12
EP2791824A4 (en) 2015-06-24
CA2856674A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
KR102024837B1 (ko) 렌더링 및 오프라인 라우팅을 위해 맵 데이터를 사전-인출하는 방법
KR102007940B1 (ko) 루트를 따른 맵 타일 데이터 사전-인출
US8243102B1 (en) Derivative-based selection of zones for banded map display
US9569463B1 (en) Pre-fetching map data using variable map tile radius
US9417777B2 (en) Enabling quick display transitions between indoor and outdoor map data
KR20210062629A (ko) 개인화된 디지털 지도에 디스플레이할 관심 지점 선택
KR102527827B1 (ko) 디지털 지도의 동적 재-스타일링

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