KR20200033705A - 내비게이션 경로 제공 - Google Patents

내비게이션 경로 제공 Download PDF

Info

Publication number
KR20200033705A
KR20200033705A KR1020187024506A KR20187024506A KR20200033705A KR 20200033705 A KR20200033705 A KR 20200033705A KR 1020187024506 A KR1020187024506 A KR 1020187024506A KR 20187024506 A KR20187024506 A KR 20187024506A KR 20200033705 A KR20200033705 A KR 20200033705A
Authority
KR
South Korea
Prior art keywords
viewport
navigation path
navigation
searching
user
Prior art date
Application number
KR1020187024506A
Other languages
English (en)
Other versions
KR102443653B1 (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 KR20200033705A publication Critical patent/KR20200033705A/ko
Application granted granted Critical
Publication of KR102443653B1 publication Critical patent/KR102443653B1/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
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/3614Destination input or retrieval through interaction with a road map, e.g. selecting a POI icon on 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/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/3626Details of the output of route guidance instructions
    • G01C21/3647Guidance involving output of stored or live camera images or video streams
    • 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/3664Details of the user input interface, e.g. buttons, knobs or sliders, including those provided on a touch screen; remote controllers; input using gestures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/367Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3691Retrieval, searching and output of information related to real-time traffic, weather, or environmental conditions
    • G01C21/3694Output thereof on 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/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/3605Destination input or retrieval
    • G01C21/3617Destination input or retrieval using user history, behaviour, conditions or preferences, e.g. predicted or inferred from previous use or current movement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Social Psychology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Atmospheric Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Ecology (AREA)
  • Environmental & Geological Engineering (AREA)
  • Environmental Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)

Abstract

지리적 지역의 대화형 디지털 지도는 사용자 장치의 사용자 인터페이스를 통해 제공되며, 대화형 디지털 지도의 현재 가시적인 부분은 뷰포트 내에 표시된다. 상기 뷰포트는 하나 이상의 사용자 명령들에 따른 궤적을 따라 디지털 지도상의 초기 위치로부터 디지털 지도상의 목표 위치로 재배치된다. 상기 뷰포트의 궤적 상의 다른 위치들에 대해, 상기 뷰포트의 중심 근처의 지리적 위치에 대한 내비게이션 경로는 지리적 위치에 대한 내비게이션 경로를 획득하기 위해 사용자 인터페이스를 통해 명령들을 수신하지 않고, 자동으로 검색된다. 제1 및 제2 수준의 상세정보를 갖는 내비게이션 경로는 상기 궤적 상의 제1 및 제2 지점들에 대해 각각 검색되고, 제1 수준의 상세정보는 제2 수준의 상세정보보다 적은 정보를 포함한다. 상기 내비게이션 경로는 사용자 인터페이스를 통해 표시된다.

Description

내비게이션 경로 제공
본 개시는 대화형 지리 애플리케이션(interactive geographic application)들에 관한 것으로, 보다 구체적으로는 사용자로부터의 내비게이션 경로(navigation directions)에 대한 명시적인 요청없이 사용자에게 내비게이션 경로를 제공하는 것에 관한 것이다.
여기에 제공된 배경 설명은 일반적으로 본 개시의 컨텍스트를 제시하기 위한 것이다. 현재 배경 기술 내에서 기술된 범위 내에서 현재 발명자들의 작업뿐만 아니라 출원시 선행 기술로서의 자격을 갖지 않는 기술의 양태들은 본 개시에 대한 선행 기술로서 명시적으로 또는 암시적으로 인정되지 않는다.
다양한 컴퓨팅 장치들은 지리적 지역들의 대화형 디지털 지도들을 표시하기 위해 지리적 소프트웨어 애플리케이션들을 지원한다. 지리 애플리케이션은 일반적으로 원하는 위치에서 "뷰포트(viewport)"라고 할 수 있는 디지털 지도의 표시 가능한 부분을 정의하는 창을 배치하기 위해 방향, 회전 및 확대/축소 컨트롤을 제공한다. 예를 들어, 이러한 컨트롤은 디지털 지도를 오버레이하는 버튼들의 형태로 제공될 수 있다. 또 다른 예로서, 터치스크린이 장착된 장치에서 작동하는 지리 애플리케이션은 사용자 제스처를 지원할 수 있으므로, 사용자는 손가락을 원하는 방향으로 스와이프하여 디지털 지도를 이동할 수 있고, 두 손가락을 함께 핀치하여 지역을 축소하고, 두 손가락을 벌려서 지역을 확대할 수 있다.
또한, 지리 애플리케이션들이 사용자 인터페이스를 통해 내비게이션 경로를 제공할 때, 이러한 애플리케이션들은 일반적으로 출발지가 컴퓨팅 장치의 현재 위치에 해당하는 것으로 가정할 때 "출발지"에서 "목적지" 위치까지 또는 적어도 목적지를 사용자가 지정하도록 요청한다. 사용자는 일반적으로 타이핑하거나 또는 말하기를 통해 거리 주소, 거리 교차로, 랜드마크의 이름 등을 제공한다. 사용자가 주소를 모르거나 일반 위치만 기억하면, 사용자는 대화형 디지털 지도의 현재 보이는 부분을 정의하는 지도 뷰포트를 일반 지역 위에 배치하고, 예를 들어 터치스크린을 클릭하거나 탭핑함으로써 지도상의 지점을 목적지로 선택하려고 시도한다.
명시적인 사용자 입력 이외의 신호들에 기초하여 목적지를 자동으로 결정함으로써 그 목적지를 지정하는 데 필요한 사용자 조작들의 수는 유리하게 감소될 수 있다. 지리 애플리케이션은 목적지로서 뷰포트의 중심을 선택하고, 이 목적지에 대한 내비게이션 경로를 자동으로 획득하고, 예를 들어 사용자 인터페이스를 통해 내비게이션 경로를 제공할 수 있다. 그러나, 이 방법은 컴퓨팅 장치에서 메모리를 관리하고, 네트워크 서버가 통신 네트워크를 통해 내비게이션 경로를 제공할 때 네트워크 링크 대역폭을 효율적으로 사용하고, 사용자가 뷰포트를 다시 배치할 때 지연시간을 줄이고, 뷰포트의 중심에서 목적지를 정확하게 식별하는 것과 관련된 여러 가지 기술적 과제를 포함한다. 하나의 예로서, 뷰포트 내의 위치의 모든 검출된 변경에 대한 내비게이션 경로에 대해 새로운 요청들을 전송하는 것은 많은 양의 요청 및 응답을 생성하여 네트워크를 통해 전송되고 및/또는 컴퓨팅 장치의 메모리 영역들 간에 전송되는 많은 양의 데이터를 초래할 수 있다. 또 다른 예로서, 사용자가 제스처를 사용하여 신속하게 뷰포트의 위치를 변경하면 내비게이션 경로 요청에 대한 응답이 네트워크 서버에서 충분히 빨리 도착하지 않아 디스플레이 지연시간이 발생할 수 있다. 이러한 문제는 내비게이션 경로에 대한 모든 새로운 요청이 휴대용 장치에서 원격 네트워크 서버로 전송되어야 하고, 모든 응답은 네트워크 서버에서 그 휴대용 장치로 전송되어야 하므로, 특히 무선 통신 네트워크를 통해 원격 네트워크 서버와 통신하는 상기 휴대용 장치의 경우에 어려울 수 있다.
본 개시의 지리 애플리케이션은 네트워크 대역폭 및/또는 처리 능력을 보존하는 방식으로 사용자에게 내비게이션 경로를 자동으로 제공하며, 지연시간, 예를 들어, 어떤 지리적 지역이 뷰포트 내에 디스플레이되는지의 결정과 그 뷰포트에서의 내비게이션 경로의 완전한 렌더링 사이의 시간 지연을 감소시킨다.
이 기술들의 일 실시예는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법이다. 상기 방법은 사용자 장치의 사용자 인터페이스를 통해 지리적 지역의 대화형 디지털 지도를 제공하는 단계, 뷰포트 내에서 대화형 디지털 지도의 현재 가시적 부분을 디스플레이하는 단계, 및 상기 뷰포트를 하나 이상의 사용자 명령들에 따른 궤적을 따라 디지털 지도상의 초기 위치로부터 디지털 지도상의 목표 위치로 재위치시키는 단계를 포함한다. 상기 뷰포트의 궤적 상의 다른 위치에 대해, 상기 방법은 사용자 인터페이스를 통해 명령을 수신하지 않고 상기 뷰포트의 중심 부근의 지리적 위치에 대한 내비게이션 경로를 자동으로 검색하여 상기 지리적 위치에 대한 상기 내비게이션 경로를 획득한다. 자동으로 내비게이션 경로를 검색하는 단계는, 상기 궤적 상의 제1 지점에 대한 제1 수준의 세부정보를 갖는 내비게이션 경로를 검색하는 단계 그리고 상기 궤적 상의 제2 지점에 대한 제2 수준의 세부정보를 갖는 내비게이션 경로를 검색하는 단계를 포함하며, 상기 제1 수준의 세부정보는 상기 제2 수준의 세부정보보다 적은 정보를 포함한다. 상기 방법은 또한 사용자 인터페이스를 통해 상기 내비게이션 경로를 디스플레이하는 단계를 포함한다.
이 기술들의 다른 실시예는 콘텐츠를 디스플레이하고 그리고 사용자 입력을 수신하도록 구성된 사용자 인터페이스, 그 사용자 인터페이스에 결합된 하나 이상의 프로세서 및 명령어들을 저장하는 비-일시적 컴퓨터 판독 가능 매체를 갖는 컴퓨팅 장치이다. 하나 이상의 프로세서상에서 실행될 때, 상기 명령어들은 컴퓨팅 장치로 하여금 사용자 인터페이스를 통해 지리적 지역의 대화형 디지털 지도를 제공하게 하고, 대화형 디지털 지도의 현재 가시적 부분(visible portion)은 뷰포트 내에 디스플레이된다. 상기 명령어들은, 컴퓨팅 장치로 하여금, 사용자 인터페이스를 통해 수신된 하나 이상의 사용자 명령들에 따른 궤적을 따라 디지털 지도상의 초기 위치로부터 디지털 지도상의 목표 위치로 뷰포트를 재배치시키고, 상기 뷰포트의 궤적 상의 다른 위치들에 대해, 사용자 인터페이스를 통해 명령들을 수신하지 않고 상기 뷰포트의 중심 근처의 지리적 위치에 대한 내비게이션 경로를 자동으로 검색하여 그 지리적 위치에 대한 내비게이션 경로를 획득한다. 상기 검색된 내비게이션 경로는 상기 궤적 상의 제1 지점에 대한 제1 수준의 세부정보에서의 제1 내비게이션 경로와, 상기 궤적 상의 제2 지점에 대한 제2 수준의 세부정보에서의 제2 내비게이션 경로를 포함한다. 상기 명령어들은 상기 컴퓨팅 장치로 하여금 상기 사용자 인터페이스를 통해 상기 내비게이션 경로를 디스플레이하게 한다.
이 기술들의 다른 실시예는 내비게이션 경로를 검색하고 디스플레이하는 방법을 구현하는 명령어들을 저장하는 비-일시적 컴퓨터 판독 가능 매체이다. 상기 명령어들은 하나 이상의 프로세서상에서 실행될 때, 그 하나 이상의 프로세서로 하여금 클라이언트 장치의 사용자 인터페이스를 통해 지리적 지역의 대화형 디지털 지도를 제공하게 하고 그리고 뷰포트 내에 대화형 디지털 지도의 현재 가시적 부분을 디스플레이하게 한다. 또한, 상기 명령어들은 상기 하나 이상의 프로세서로 하여금 상기 사용자 인터페이스를 통해 수신된 하나 이상의 사용자 명령들에 따른 궤적을 따라 상기 디지털 지도상의 초기 위치로부터 상기 디지털 지도상의 목표 위치로 상기 뷰포트를 재배치시키고, 상기 뷰포트의 궤적 상의 복수의 다른 위치들에 대해, 사용자 인터페이스를 통해 명령들을 수신하지 않고 상기 뷰포트의 중심 부근의 지리적 위치에 대한 내비게이션 경로를 자동으로 검색하여 그 지리적 위치에 대한 내비게이션 경로를 획득한다. 상기 내비게이션 경로를 자동으로 검색하는 단계는 상기 궤적 상의 제1 지점에 대한 제1 수준의 세부정보를 갖는 내비게이션 경로를 검색하는 단계, 상기 궤적 상의 제2 지점에 대한 제2 수준의 세부정보를 갖는 내비게이션 경로를 검색하는 단계 -상기 제1 수준의 세부정보는 상기 제2 수준의 세부정보보다 적은 정보를 포함함-, 그리고 상기 사용자 인터페이스를 통해 상기 내비게이션 경로를 디스플레이하는 단계를 포함한다.
도 1은 내비게이션 경로를 효율적이고 정확하게 획득하기 위한 본 개시의 기술이 구현될 수 있는 예시적인 시스템의 블록도이다.
도 2 및 도 3은 도 1의 시스템에 의해 생성될 수 있는 상이한 지리적 지역들 위에 위치된 맵 뷰포트에서의 예시적인 내비게이션 경로를 도시한다.
도 4는 도 1의 시스템에 의한 특정 궤적을 따라 지도 뷰포트의 상이한 위치들에 대해 검색된 상이한 수준들의 세부정보에서의 내비게이션 경로에 대한 도이다.
도 5는 도 1의 시스템이 지도 뷰포트의 특정 위치에 대해 생성할 수 있는 예시적인 다중 모드 내비게이션 경로를 도시한다.
도 6은 도 1의 시스템에서 생성될 수 있는 지도 뷰포트의 현재 속도에 따라 상이한 수준들의 세부정보에서 내비게이션 경로를 검색하기 위한 예시적인 방법의 흐름도이다.
도 7은 도 1의 시스템에서 생성될 수 있는 지도 뷰포트의 예상 궤적을 따라 상이한 지점들에 대한 상이한 수준들의 세부정보에서 내비게이션 경로를 검색하기 위한 예시적인 방법의 흐름도이다.
도 8은 도 1의 시스템에서 생성될 수 있는 멀티모달(multi-modal) 내비게이션 경로를 생성하기 위한 예시적인 방법의 흐름도이다.
개요
본 개시의 지리 애플리케이션은 지연시간이 거의없는 효율적이고 정확한 기술을 사용하여, 명시적인 사용자 입력 이외의 신호들에 기초하여 목적지를 자동 결정함으로써 그 목적지를 지정하는 데 요구되는 사용자 조작 수를 유리하게 감소시킨다. 이 기술들은 지리 애플리케이션이 대화형 디지털 지도를 디스플레이할 수 있는 사용자 인터페이스를 갖는 컴퓨팅 장치에서 구현될 수 있다. 상기 지리 애플리케이션은 디지털 지도의 현재 가시적 부분이 나타내는 지리적 지역 내의 위치를 자동으로 결정하고, 이 위치에 대한 내비게이션 경로(원격 서버 또는 캐싱된(cached) 데이터 사용)을 획득하고, 사용자가 상기 위치를 명시적으로 지정하지 않고 상기 사용자 인터페이스를 통해 이러한 내비게이션 경로의 시각화(visualization)를 제공한다. 일부 구현예들에서, 상기 지리 애플리케이션은 컴퓨팅 장치의 현재 위치로부터 이 위치에 대한 내비게이션 경로를 획득하므로, 사용자는 또한 출발지를 명시적으로 지정할 필요가 없다. 다양한 구현예들 또는 시나리오들에서 자동으로 결정된 목적지 위치는 상기 뷰포트의 기하학적 중심, 사용자가 선택(예를 들어, 지하철 역, 버스 정류장)할 가능성이 있는 교통 수단(mode of transport)을 고려하여 선택된 뷰포트의 기하학적 중심 또는 그 부근의 관심 지점, 사용자의 선호도들 또는 관심도(예를 들어, 커피 숍)를 고려하여 선택된 뷰포트의 기하학적 중심 또는 그 부근의 관심 지점에 해당할 수 있다. 상기 지리 애플리케이션은 컴퓨팅 장치의 현재 위치, 사용자의 집 또는 직장 주소 또는 일부 사용자별 위치를 내비게이션 경로의 출발지로 선택할 수 있다.
네트워크 대역폭을 효율적으로 이용하기 위해, 상기 지리 애플리케이션은 새로운 목적지를 결정할 수 있으며, 일부 구현예들에서, 상기 뷰포트가 임계 거리 또는 이동 시간 이상으로 변위된 경우에만 새로운 내비게이션 경로를 요청할 수 있다. 예를 들어, 사용자가 뷰포트를 천천히 이동(pan)시킬 때 상기 지리 애플리케이션은 상기 뷰포트의 중심이 그 뷰포트의 이전 위치에 있는 중심을 기준으로 거리(dmin) 이상으로 이동했음을 결정한 후 경로에 대한 새로운 요청을 전송할 수 있다. 상기 지리 애플리케이션이 다양한 시나리오들에서 계산하는 거리(dmin) 뿐만아니라 다른 거리들은 그라운드(즉, 디지털 지도상에 표시된 실제 지리) 또는 화면을 기준으로 측정될 수 있다. 거리(dmin)는 소프트웨어 애플리케이션이 현재 디지털 지도를 디스플레이하는 줌 레벨에 따라 다를 수 있다. 거리(dmin)는 뷰포트의 크기에 따라 달라질 수 있으므로 내비게이션 경로가 검색된 두 위치 간에 뷰포트가 이동하면 내비게이션 경로가 뷰포트에서 완전히 사라지는 상황을 피하기 위해 적어도 하나의 해당 위치가 뷰포트 내에 있다. 일부 실시예들에서의 지리 애플리케이션은 현재 관측되는 지연시간을 고려하여 상기 거리(dmin)(또는 내비게이션 경로를 자동으로 요청하는 빈도를 정의하는 다른 임계 값)를 자동으로 조정한다. 이러한 방식으로, 상기 지리 애플리케이션은 내비게이션 경로에 대한 요청 수를 줄여 대역폭 사용 및 처리 시간을 줄인다.
더욱이, 상기 지리 애플리케이션은 뷰포트가 이동하는 속도에 따라 다양한 수준의 세부정보의 내비게이션 경로를 요청할 수 있다. 예를 들어, 서버는 경우에 따라 "경량(lightweight)" 내비게이션 경로(예를 들어, 경로를 나타내는 폴리라인(polyline))를 제공하고 그리고 다른 경우에는 더 상세한 경로(예를 들어, 턴-바이-턴 안내, 차선 정보, 실시간 교통 정보, 길 찾기 수준의 파노라마 이미지, 차량공유(ridesharing) 정보)를 제공할 수 있다. 상기 서버는 상기 뷰포트가 상대적으로 빠르게 움직일 때 경량 경로(데이터 전송이 덜 필요함)를 제공할 수 있으며, 상기 뷰포트가 예를 들어 한 개 또는 여러 개의 임계 값을 기준으로 측정된 바와 같이, 상대적으로 천천히 이동하거나 정지할 때 상세한 경로를 제공할 수 있다.
또 다른 예로서, 상기 소프트웨어 애플리케이션은 궤적 상의 중간 지점에 대한 제1 수준의 세부정보를 갖는 내비게이션 경로(내비게이션 길안내)(navigation directions)를 요청할 수 있고, 상기 궤적의 종점 또는 종점 근처의 지점에 대한 제2 수준의 세부정보를 갖는 내비게이션 경로를 요청할 수 있으며, 상기 제1 수준의 세부정보는 상기 제2 수준의 세부정보보다 적은 정보를 포함한다. 예시적인 구현예에서, 상기 지리 애플리케이션은 사용자가 제스처 동작을 통해 뷰포트에 전달한 방향 및 모멘텀(momentum)을 분석하고, 상기 뷰포트의 궤도를 결정하고(중간에 제스처가 없다고 가정), 상기 궤적 또는 경유지들(waypoints)을 따라 하나 이상의 중간 위치들(intermediate locations)과 함께 상기 궤적의 종점을 결정한다. 상기 지리 애플리케이션은 예상된 궤적 계산시 및 상기 뷰포트가 이러한 위치들에 도달하기 전에 상기 종점 및 경유지들에 대한 내비게이션 경로를 요청하므로 이러한 내비게이션 경로의 표시가 사용자 인터페이스에서 끊김없이(seamless) 나타난다. 또한, 상기 지리 애플리케이션은 상기 궤적의 종점에 대한 상세한 경로 및 상기 궤적 상의 경유지들에 대한 경량 경로(lightweight directions)를 요청할 수 있다.
상기 구현예들에 따라, 상기 지리 애플리케이션은 상기 궤적을 따라 고르게 분포되거나 상기 궤적을 따라 고르게 분포되지 않는 랜드마크들에 해당하는 상기 경유지들을 선택할 수 있다. 예를 들어, 상기 지리 애플리케이션은 사용자 리뷰, 사용자별 선호도, 이력 데이터 등 및/또는 관심 지점들의 시각적 중요도를 고려하여 상기 궤적을 따라 관심 지점들(POIs)에 대한 가중치들을 결정할 수 있고, 다른 경유지들과의 거리뿐만 아니라 상기 가중치들을 고려하여 경유지들을 선택할 수 있다.
상기 지리 애플리케이션은 출발지에서 새로운 목적지까지의 거리, 사용자가 사용하는 마지막 교통수단(운송 모드), 사용자의 선호도, 교통, 예상 비용, 교통수단 유형별 접근성, 시간대 등과 같은 신호들의 적절한 조합을 기반으로 교통수단(운송 모드)을 결정할 수 있다. 예를 들어, 상기 지리 애플리케이션은 초기 위치에서 뷰포트의 중심까지 도보 경로를 자동으로 요청할 수 있고 그리고 사용자가 뷰포트를 N 마일 이상 이동시킨 후에 새로운 위치에서 상기 뷰포트의 중심까지의 주행 경로(driving directions)를 요청할 수 있다.
또한, 상기 지리 애플리케이션은 상이한 이동 구간이 상이한 교통 수단들에 해당하는 멀티모달(multi-modal) 내비게이션 경로를 생성할 수 있다. 예를 들어, 상기 지리 애플리케이션은 주차장에서부터 도보로 도달할 수 있는 목적지까지의 도보 경로와 주행 경로를 포함하는 내비게이션 경로를 검색할 수 있다.
적어도 상기 예들에서 알 수 있듯이, 본 개시의 시스템들 및 방법들은 내비게이션 명령어들에 대한 목적지를 수동으로 지정할 필요성을 제거하고 더욱이 다양한 시나리오들에서 내비게이션 명령어들을 검색할 때 대역폭 사용량, 지연시간 및 메모리 요구량들을 줄임으로써 기존 기술들에 비해 장점들을 제공한다.
예시적인 사용자 장치 및 통신 시스템
도 1에 설명된 바와 같이 이러한 기술들을 구현할 수 있는 예시적인 시스템(10)이 개시된다. 상기 시스템은 스마트폰, 태블릿 컴퓨터, 스마트 시계와 같은 휴대용 장치 또는 데스크톱 컴퓨터와 같은 비-휴대용 장치 또는 예를 들어 내비게이터와 같은 특수 목적 컴퓨팅 장치일 수 있는 사용자 장치(12)를 포함한다. 사용자 장치(12)는 하나 또는 복수의 중앙 처리 장치들(CPUs) 및/또는 복수의 그래픽 처리 장치들(GPUs)과 같은 하나 이상의 프로세서들(14), 영구적 컴포넌트(예를 들어, 플래시 디스크) 및/또는 비-영구적 컴포넌트(예를 들어, 랜덤 액세스 메모리(RAM))를 포함할 수 있는 컴퓨터 판독 가능 메모리(20), 예를 들어 입력 장치와 함께 터치스크린 또는 디스플레이 장치를 포함할 수 있는 사용자 인터페이스(22), 유선 및/또는 무선 통신 링크들을 통해 데이터를 송신 및 수신하기 위한 네트워크 인터페이스(24), 및 GPS(Global Positioning Service) 모듈, 가속도계, 자이로스코프 등과 같은 위치 지정 장치(positioning unit)를 포함할 수 있는 하나 이상의 센서들(26)을 포함할 수 있다.
메모리(20)는 운영 시스템(OS)(40) 및 지리 애플리케이션(42)과 같은 다양한 소프트웨어 애플리케이션을 구현하는 하나 이상의 프로세서(14)상에서 실행 가능한 명령어들을 저장할 수 있다. 지리 애플리케이션(42)은 대화형 디지털 지도, 내비게이션 경로, 지리적 쿼리의 결과 등과 같은 지리적 콘텐츠를 생성하기 위한 전용 특수 목적 소프트웨어 애플리케이션일 수 있거나, 다른 구현 예에서는 스크립트를 실행하는 범용 브라우저 애플리케이션일 수 있으며, 및/또는 지리적 콘텐츠를 생성하기 위한 API(application programming interface) 기능일 수 있다. 지리 애플리케이션(42)은 캐싱된 지도 데이터(46)와 같은 메모리(20)에 국부적으로 저장된 지도 데이터에 대해 동작하거나 온라인 지리적 서비스로부터 지리적 콘텐츠를 수신할 수 있다. 지리 애플리케이션(42)은 아래에서보다 상세히 설명되는 바와 같이 사용자 입력에 응답할 뿐만 아니라 자동으로 내비게이션 경로를 검색하도록 구성된 내비게이션 경로 모듈(44)을 포함할 수 있다.
계속해서 도 1을 참조하면, 통신 네트워크(50)는 인터넷 또는 유선 및/또는 무선 통신 링크들을 포함하는 임의의 다른 적절한 네트워크일 수 있다. 사용자 장치(12)는 일반적으로 지도 데이터, 내비게이션 경로, 지리적 쿼리에 대한 응답 등과 같은 다양한 지리적 콘텐츠를 수신하도록 임의의 수의 서버 및 데이터베이스와 통신할 수 있다. 단순화를 위해, 도 1은 지도 데이터베이스(62), 장소 페이지 데이터베이스(64) 및 실시간 교통 데이터베이스(66)에 결합된 지도 데이터/내비게이션 서버 시스템(60)(간단히 "서버(60)")만을 나타낸다.
지도 데이터베이스(62)는 인공 지형 특징들(예를 들어, 도로들, 건물들, 공원들)뿐만 아니라 다양한 자연 지형 특징들(예를 들어, 강들, 산들, 삼림들)을 기술하는 지도 데이터를 저장할 수 있다. 상기 지도 데이터는 예를 들어, 상호 연결된 버티스(vertices) 및/또는 비트맵 이미지들의 세트로서 벡터 그래픽 형식의 지도 특징들의 설명을 포함할 수 있다. 서버(60)는 특정 지리적 영역에 대한 지도 이미지를 생성하기 위한 지도 데이터를 제공하고 그리고 벡터 기반 포맷 및 래스터 포맷을 포함하는 임의의 적합한 포맷으로 클라이언트 장치(12)에 상기 지도 데이터를 제공할 수 있다. 장소 페이지 데이터베이스(64)는 지리적 위치가 지정된 비즈니스, 영업 시간, 사용자 피드백 정보, 제품 및 가격 정보 등을 포함할 수 있다. 실시간 교통 데이터베이스(66)는 예를 들어 위성 이미지 또는 운전자로부터의 업데이트를 사용하여 수집된 다양한 도로 구간에 대한 교통 정보, 도로 및 차선 폐쇄 정보 및 사고 정보 등을 저장할 수 있다. 일부 실시예들에서, 또한, 실시간 교통 데이터베이스(66)는 지연 및 취소, 특정 대중 교통 경로의 사용률 및 예상 도착 시간과 같은 대중 교통과 관련된 다양한 정보를 저장한다.
서버(60)는 하나 이상의 프로세서들 및 내비게이션 경로 엔진(68)을 구현하는 명령어들을 저장하는 컴퓨터 판독 가능 메모리를 포함할 수 있다. 예시적인 시나리오에서, 내비게이션 경로 엔진(68)은 클라이언트 장치(12)로부터 내비게이션 경로에 대한 요청을 수신하고, 지정된 또는 자동으로 결정된 교통 수단에 대해 지정된 출발지와 목적지 사이의 경로를 생성하고, 그 경로에 대한 내비게이션 경로를 생성한다. 사용자 장치(12)에서 동작하는 내비게이션 경로 모듈(44) 및 내비게이션 경로 엔진(68)의 예시적인 동작이 아래에 설명된다.
내비게이션 경로 검색 및 디스플레이
도 2는 내비게이션 경로 모듈(44)이 디스플레이할 수 있는 예시적인 대화형 디지털 지도(100)와, 사용자에게 현재 보이는 부분을 정의하는 뷰포트(102)를 나타낸다.
예시적인 구현 예에서, 사용자 장치(12)의 사용자 인터페이스(22)는 스크린을 포함하고, 뷰포트(102)는 상기 스크린의 활성 부분에 대응한다. 내비게이션 경로 모듈(44)은 사용자 인터페이스(22)를 통해 수신된 사용자 명령들에 응답하여 뷰포트(102)를 재배치하고 그리고 뷰포트(102) 내에 디지털 지도(100)의 적절한 부분을 디스플레이한다. 따라서, 디지털 지도(100)의 상이한 부분들은 뷰포트(102)의 상이한 위치들에 대해 뷰포트(102) 내에서 볼 수 있다. 사용자 명령들은 타이핑된 입력, 제스처들, 음성 명령들 등을 포함할 수 있다. 상기 제스처들은 사용자의 손가락 또는 여러 손가락과 터치스크린 사이의 접촉을 포함할 수 있으며, 예를 들어 탭, 더블 탭, 드래그, 플링(또는 플릭) 등을 포함할 수 있다. 또한, 상기 제스처들은 클라이언트 장치(12)가 다양한 센서를 사용하여 검출할 수 있는 3차원 손 제스처들을 포함할 수 있는 것으로 고려된다.
도 2에 도시된 바와 같이, 내비게이션 경로 모듈(44)은 디지털 지도(100)상에 그래픽 오버레이(106)로서 내비게이션 경로를 제공한다. 이 예시적인 시나리오에서의 내비게이션 경로 모듈(44)은 현재 위치에서 뷰포트(102)에 의해 커버된 디지털 지도(100)의 영역의 기하학적 중심을 결정하고, 지점일 수 있는 가장 가까운 라우팅 가능 부분(routable segment)을 식별하고, 상기 식별된 가장 가까운 라우팅 가능 부분을 내비게이션 경로에 대한 목적지(104)로서 선택한다. 내비게이션 경로의 출발지(108)에 관하여, 내비게이션 경로 모듈(44)은 이 목적을 위해 사용자 장치(12)의 현재 위치, 명시적으로 지정된 위치, 사용자의 집 또는 직장 주소, 주요 진입로에 해당하는 뷰포트의 가장자리의 위치 또는 다른 적합한 위치를 선택할 수 있다. 내비게이션 경로 모듈(44)은 서버(60)에 질의하거나 캐싱된 지도 데이터(46)를 사용함으로써 출발지(108)에서 목적지(104)로의 내비게이션 경로를 생성한다. 아래에서보다 상세히 설명되는 바와 같이, 내비게이션 경로 모듈(44)은 다양한 세부정보 수준에서 내비게이션 경로를 요청할 수 있다.
이 예에서 그래픽 오버레이(106)는 일련의 하이라이트된 도로 부분들이다. 도 2는 또한 출발지(108)와 뷰포트(102)의 에지 사이의 경로(110)를 나타낸다. 그러나, 도 2에 도시된 바와 같이 뷰포트(102)가 위치될 때 경로(110)가 보이지 않으며 명확성을 위해서만 경로(110)가 도시됨을 이해할 것이다.
도 3을 참조하면, 사용자는 예를 들어 특정 피켜 제스처를 사용하여 뷰포트(102)를 드래그함으로써 디지트 지도(digit map)에 대해 뷰포트(102)를 재배치할 수 있다. 내비게이션 경로 모듈(44)은 새로운 위치에서 뷰포트(102)에 의해 커버된 디지털 지도의 영역의 기하학적 중심을 자동으로 결정하고, 새로운 가장 가까운 라우팅 가능 부분을 식별하고, 그리고 그 식별된 가장 가까운 라우팅 가능 부분을 내비게이션 경로를 위한 새로운 목적지(114)로서 선택한다. 그 다음, 내비게이션 경로 모듈(44)은 목적지(114)에 대한 내비게이션 경로를 요청한다. 내비게이션 경로 모듈(44)은 사용자가 내비게이션 경로를 요청하는 명시적인 명령들을 수신하지 않고 수행한다. 도 2와 유사하게, 명확성을 위해 도 3은 출발지(108)와 뷰포트(102)의 에지 사이의 경로(120)를 나타낸다.
일 실시예에 따르면, 내비게이션 경로 모듈(44)은 뷰포트(102) 내에 새로운 목적지를 나타내고, 뷰포트(102)가 최소 거리(dmin)만큼 변위되었다고 결정한 후에만 새로운 내비게이션 경로를 획득한다. 예를 들어, 내비게이션 경로 모듈(44)은 목적지들(114 및 104) 사이의 거리가 거리(dmin)보다 큰지를 결정할 수 있고 그리고 그 거리가 그 거리(dmin)를 초과한 것으로 결정한 것에 응답해서만 새로운 내비게이션 경로를 획득할 수 있으며; 반면, 그 거리가 상기 거리(dmin)를 초과하지 않으면, 내비게이션 경로 모듈(44)은 대역폭 및 프로세싱 리소스를 보존하기 위해 새로운 내비게이션 경로를 획득하지 않는다. 다양한 구현예들에서, 디지털 지도상의 점들 사이의 거리는 이용 가능한 도로들을 따라 스크린 픽셀들 등으로 일직선(crow flies)으로 측정될 수 있다.
상기 거리(dmin)의 값은 줌 레벨에 따라 달라질 수 있다. 예를 들어, 뷰포트(102)가 대략 길이가 2마일이고 폭이 2마일인 지리적 지역을 나타낼 때, 거리(dmin)는 0.1 마일, 0.2 마일, 0.5 마일 등일 수 있으며; 뷰포트(102)가 길이가 약 20마일이고 폭이 20마일인 지리적 지역을 나타낼 때, 거리(dmin)는 1마일, 2마일, 5마일 등이 될 수 있다. 일반적으로, 일부 구현예들에서, 거리(dmin)는 사용자가 제공한 값을 포함하는 적절한 값으로 구성될 수 있다. 예시적인 시나리오에서 사용자는 뷰포트(102)를 특정 방향으로 이동시키고, 내비게이션 경로 모듈(44)은 대략 거리(dmin)만큼 이격된 내비게이션 경로 모듈(44)의 중심 근처의 위치들에 대한 내비게이션 경로를 검색함으로써 네트워크 트래픽의 양 및/또는 메모리 판독 동작의 수를 감소시킨다.
추가로 또는 대안으로, 내비게이션 경로 모듈(44)은 새로운 목적지를 결정하고 그리고 네트워크 대역폭 및/또는 로컬 프로세싱 리소스를 보존하기 위해 소정의 최소 시간 간격(tmin)(예를 들어, 10, 20, 100 msec) 후에 새로운 내비게이션 경로를 획득한다. 예를 들어, 도 3에 도시된 바와 같이 뷰포트(102)가 재배치된 후, 내비게이션 경로 모듈(44)은 내비게이션 경로의 검색을 최소 시간 간격(tmin)만큼 지연시킬 수 있다.
또한, 뷰포트(102)가 도 2의 초기 위치에서 도 3의 목표 위치로 이동함에 따라, 내비게이션 경로 모듈(44)은 뷰포트(102)가 상기 지도를 가로 질러 움직이는 속도를 결정할 수 있다. 일 예시적인 구현예에서, 상기 속도는 디지털 지도가 보여지는 줌 레벨에 상관없이, 초당 스크린 픽셀 또는 다른 시간 단위로 측정된다. 또 다른 구현예에서, 상기 속도는 디지털 지도로 표시된 지리적 지역이 초당 변위되는 마일 또는 킬로미터 단위로 측정된다. 이 경우 상기 속도는 디지털 지도의 줌 레벨에 따라 다르다. 또 다른 구현예에서, 상기 속도는 출발지와 목적지 사이의 내비게이션 루트를 따라 "이동된" 마일 또는 킬로미터로 측정되며, 이는 뷰포트(102)가 이동함에 따라 연속적으로 또는 주기적으로 재계산된다. 보다 일반적으로, 뷰포트(12)의 속도는 임의의 적절한 방식으로 측정될 수 있다.
내비게이션 경로 모듈(44)은 뷰포트(12)의 측정된 속도를 사용하여 얼마나 자주 새로운 목적지가 재계산되어야 하는지, 얼마나 자주 새로운 내비게이션 경로가 획득되어야 하는지, 어떤 수준의 세부정보로 내비게이션 경로가 검색되어야 하는지 등을 결정할 수 있다. 내비게이션 경로 모듈(44)은 상기 속도가 특정 임계 속도(vmin)를 초과하는 것으로 결정할 때 낮은 수준의 세부정보에서 내비게이션 경로를 획득할 수 있다. 반대로, 내비게이션 경로 모듈(44)은 상기 속도가 임계 속도(vmin)가 아닌 것으로 결정할 때 높은 수준의 세부정보에서 내비게이션 경로를 획득할 수 있다.
다양한 구현예들에서, 내비게이션 경로 모듈(44)은 거리 임계값(dmin), 시간 임계값(dmin) 또는 속도 임계값(vmin) 중 하나 이상을 사용하여 새로운 내비게이션 경로가 획득되어야 하는지를 결정하고, 만약 그렇다면 어느 수준의 세부정보가 적절한지를 결정한다. 내비게이션 경로를 획득하는 방법을 결정하기 위해 여러 요소를 사용하는 한 예로서, 내비게이션 경로 모듈(44)은 뷰포트(102)가 적어도 거리(dmin)만큼 변위되거나 뷰포트(102)가 거리(dmin)에 대한 새로운 위치에 남아 있도록 요구하고, 이들 두 조건 중 하나가 충족되는 경우에만 새로운 내비게이션 경로를 획득할 수 있다.
내비게이션 경로 모듈(44)이 내비게이션 경로를 획득할 수 있는 세부정보의 수준은 2가지, 3가지 또는 임의의 적절한 개수의 모드들에 대응할 수 있다. 보다 구체적으로, 일부 실시예들에서 내비게이션 경로 모듈(44)은 내비게이션 경로에 대한 높고 낮은 2가지 수준의 세부정보 중 하나를 요구할 수 있고, 다른 실시예들에서는 3가지 또는 그 이상의 수준의 세부정보(예를 들어, 낮음, 중간, 높음)를 요구할 수 있다. 예시적인 구현예에서, 낮은 수준의 세부정보는 디지털 지도에 오버레이로 적용하기 위해 경로를 설명하는 폴리라인(polyline)을 포함하는 경량 네비게이션 경로에 해당한다. 높은 수준의 세부정보는 턴-바이-턴 명령어들(예를 들어, '12번 도로 5마일 체증', '엘름 스트리트에서 좌회전', '174번 출구로 나가기'등), 차선 정보(예를 들어, 특정 경로 부분 상의 HOV 차선, 다른 경로 부분 내의 3개의 차선, 특정 교차로에서 좌측 전용 차선), 실시간 교통 정보(교통량, 사고 및 차선 폐쇄 정보 등), 경로 및/또는 목적지에 따른 관심 지점(POI)에 관한 정보, 경로에 따른 경유지들에 있는 랜드마크들 및 거리 수준의 선택적 이미지와 같은 객체들의 사진을 포함하는 세부 내비게이션 경로에 해당한다.
목적지까지의 이동에 적합한 교통수단을 선택하기 위해, 내비게이션 경로 모듈(44)은 명시적 및/또는 묵시적 선호도들, 최근에 사용된 교통수단 등과 같은 사용자 특정 신호들뿐만 아니라 출발지(source)(108)와 목적지(104 또는 114) 사이의 거리 및 그 목적지와 관련된 다른 신호들을 고려할 수 있다. 예시적인 시나리오에서, 내비게이션 경로 모듈(44)은 출발지와 목적지 사이의 거리가 특정 거리(d1)보다 짧은 경우에는 도보 경로를, 출발지(108)와 목적지(104) 사이의 거리가 거리(d1)보다 길고 일정 거리(d2) 등보다 짧은 경우 주행 경로를 자동으로 획득한다. 일부 구현예들에서, 경량 내비게이션 경로는 단일 교통수단에 대한 경로만 포함하며, 상세한 경로는 하나 이상의 대안적인 교통수단에 따른 내비게이션 경로를 포함하므로, 사용자가 디지털 지도와 상호 작용할 때 교통수단들을 전환하면 그 전환이 끊김없이 나타난다. 도 5를 참조하여 아래에서 논의되는 바와 같이, 자동으로 획득된 내비게이션 경로는 멀티-모달일 수도 있다.
상기 설명된 예들에서, 내비게이션 경로 모듈(44)은 목적지를 식별할 수 있고, 네트워크 서버에 대한 요청(또는 캐싱된 지도 데이터를 포함하는 로컬 요청) 또는 그 요청 내비게이션 경로에 대한 세부정보의 수준을 생성하기 위한 타이밍과 같은 내비게이션 경로를 획득하기 위한 다양한 파라미터들을 결정할 수 있다. 이러한 결정들 중 일부는 대안적으로 내비게이션 경로에 대한 요청이 서버(60)에 속하는 경우 서버(60)에서 구현될 수 있다. 예를 들어, 내비게이션 경로 모듈(44)은 뷰포트가 특정 시간에 움직이는 방향 및 속도를 특정할 수 있고, 서버(60)는 내비게이션 경로에 대한 적절한 파라미터들을 자동으로 결정할 수 있다. 일반적으로, 내비게이션 경로를 자동으로 검색하는 기능은 임의의 적절한 방식으로 서버(60)의 내비게이션 경로 모듈(44)과 내비게이션 경로 엔진(68) 사이에 분배될 수있다.
도 4를 참조하면, 사용자는 플라이 제스처(fling gesture)로 뷰포트(102)에 모션을 전달할 수 있고, 예를 들어, 사용자가 스크린과의 접촉을 중단한 후에 뷰포트(102)가 예상된 궤적(200)을 따라 현재 위치(202A)에서 최종 위치(202D)를 향해 계속 이동한다. 예를 들어, 지리 애플리케이션(42)은 디지털 지도가 디스플레이되는 터치스크린과의 접촉을 검출할 수 있고, 사용자가 제스처의 가속뿐만 아니라 뷰포트(102)를 플링(fling)하는 방향을 측정할 수 있다. 이러한 측정을 사용하여, 지리 애플리케이션(42)은 초기의 현재 위치와 목표 위치 사이의 뷰포트(102)의 예상 궤적을 결정할 수 있다. 예를 들어, 뷰포트(102)가 그 목표 위치에 도달하기 전에 사용자가 새로운 제스처를 인가하여 이전 사용자 명령을 무시하면 뷰포트(102)는 결국 예상된 궤적을 따르지 않을 수 있다. 임의의 경우에, 상기 예상된 궤적을 계산할 때 및 뷰포트를 위치들(202A-D)로 전진시키기 전에, 지리 애플리케이션(42)은 이들 위치들과 연관된 경유지들에 대한 내비게이션 경로를 자동으로 획득할 수 있다.
도 4는 최종 위치(202D)뿐만 아니라 몇몇 중간 위치들(202A-C)에서의 뷰포트(102)를 도시한다. 일 실시예에서, 중간 위치들(202A-C)은 일정한 고정 이격 거리(d)로 궤적(200)을 따라 이격된다. 상술한 예들과 유사하게, 거리(d)는 뷰포트(102)에 보이는 디지털 지도의 줌 레벨에 특정될 수 있다. 거리(d)는 구현예에 따라 교통수단을 고려하여 일직선으로 또는 도로를 따라 측정될 수 있다. 일반적으로, 내비게이션 경로 모듈(44)은 뷰포트(102)가 임의의 적절한 방식으로 계산된 거리, 뷰포트의 해당 중심들 사이의 이동 시간 또는 플링 제스처와 연관된 중간 위치들의 고정된 개수를 고려하여 뷰포트(102)가 위치들(202A-C)에 센터링하는 지점들 사이의 간격을 결정할 수 있다(내비게이션 경로 모듈(44)이 뷰포트에 전달된 가속도 또는 디지털 도의 줌 레벨과 상관없이 모든 플링 제스처에 대한 뷰포트의 N 개의 중간 위치들을 계산하는 경우).
또한, 내비게이션 경로 모듈(44)은 뷰포트(102)가 기본 디지털 지도에 대해 상대적으로 움직이는 속도를 고려하여 뷰포트(102)의 중간 위치들을 선택할 수 있다. 상기 속도는 일반적으로 플링 제스처에 따라 변경되며, 즉, 뷰포트가 먼저 가속하고 최대 속도에 도달하며 그 궤적의 끝에 도달하면 감속하여 정지한다. 따라서, 상기 뷰포트가 지도에 표시된 지리에 대해 10km/sec의 속도로 움직이는 경우, 내비게이션 경로 모듈(44)은 1km 떨어져 있는 중심들을 갖는 뷰포트의 중간 위치들을 선택할 수 있고; 상기 뷰포트가 지도에 표시된 지리에 비해 5km/sec의 속도로 움직이는 경우, 내비게이션 경로 모듈(44)은 500m 떨어져 있는 중심들을 갖는 뷰포트의 중간 위치들을 선택할 수 있다.
다른 접근방식을 사용하여, 중간 위치들(202A-C)은 궤적(200)을 따라 뷰포트(102)에서 이용 가능한 관심 지점들을 고려하여 선택된다. 이들 관심 지점들 중 일부는 내비게이션 경로에 대한 경유지들로 사용할 수 있으며, 일부 실시예들에서 뷰포트(102)는 궤적(200) 상의 직접적인 지점들이 아닌 경유지들을 중심으로 하며 -내비게이션 경로는 대략 뷰포트의 기하학적 중심까지 연장함-; 또는 뷰포트(102)는 궤적(200) 상의 직접적인 지점들을 중심으로 하며 -상기 경유지들이 뷰포트의 중심에 가까운지에 관계없이, 상기 내비게이션 경로는 상기 뷰포트에서 보이는 경유지들까지 연장함-. 내비게이션 경로 모듈(44)은 사용자 선호도들, 최근 방문 장소들, 사용자의 소셜 그래프(예를 들어, 사용자의 친구들이 좋아하는 장소들) 등을 고려하여 관심 지점들을 선택할 수 있다. 일부 구현예들에서, 사용자는 내비게이션 경로 모듈(44)이 예를 들어, 특정 컨트롤을 조작하거나 소프트웨어를 설치함으로써 관심지점(POI)들을 식별하는데 이들 신호들을 사용할 수 있다는 표시를 제공한다. 도 4의 예에서, 경유지들(WP1, WP2 및 WP3) 각각은 사용자가 특히 관심을 가질 수 있는 지리적 위치에 대응할 수 있다.
내비게이션 경로 모듈(44)은 중간 뷰포트 위치들(202A-C)에 대한 제1 수준의 세부정보 및 최종 위치(202D)에 대한 제2 수준의 세부정보에서 내비게이션 경로를 획득할 수 있다. 특히, 내비게이션 경로 모듈(44)은 뷰포트(102)가 이들 위치들을 빠르게 이동할 것으로 예상되기 때문에 위치들(202A-C)에 대한 경량 내비게이션 경로를 획득할 수 있고, 사용자가 일정 시간 동안 상기 지도를 볼 가능성이 있는 위치(202D)에 대한 상세 내비게이션 경로를 획득할 수 있다. 도 3을 참조하여 상술한 바와 같이 상이한 수준의 세부정보가 선택될 수 있다. 도 4는 위치(202D)에서의 뷰포트가 목적지까지 연장되는 폴리라인에 추가하여, 목적지 위치의 거리 수준(street-level) 이미지, 뷰포트에서 볼 수 있는 폴리라인을 따른 관심 지점들 및 그 관심 지점들에 포함된 영업 시간, 가격 등을 포함하는 예시적인 구현예를 나타낸다. 또한, 위치(202D)의 뷰포트에 있는 폴리라인은 교통 체증(heavy traffic)을 나타내기 위해 다른 색상, 선 두께 또는 다른 렌더링 파라미터를 사용하여 렌더링된 섹션들을 포함한다. 상기 폴리라인과 마찬가지로, 상기 관심 지점들은 디지털 지도 상에 오버레이로 표시될 수 있다. 영업 데이터와 관련하여, 이러한 세부정보는 예를 들어 디지털 지도 옆 또는 아래에 표시되는 창의 형태로 제공될 수 있다.
다른 실시예에서, 상기 궤적을 따라 각각의 두 개의 연속적인 위치들(202A-D) 사이의 거리(d)는 내비게이션 경로를 검색하는 것과 연관된 결정된 지연시간을 고려하여 선택될 수 있다. 예를 들어, 거리(d)는 상기 결정된 지연시간을 고려하여 선택될 수 있어서, 뷰포트가 그 위치에 도달하는 시간까지 상기 궤적 상의 위치에 대한 내비게이션 경로를 상기 뷰포트에 디스플레이할 수 있다. 일 구현예에서, 내비게이션 경로 모듈(44)은 더 높은 결정된 지연시간에 대해 더 커질 그리고 더 낮은 결정된 지연시간에 대해 더 작아질 거리(d)를 선택할 수 있다. 무선 통신 네트워크(예를 들어, 서버(60)와 통신하는 클라이언트 장치(12))를 통해 원격 네트워크 서버와 통신하는 휴대용 장치의 경우, 상기 지연시간은 예를 들어 휴대용 장치가 위치에 대한 내비게이션 경로에 대한 요청을 전송하는 시간과 모바일 장치에서 원격 서버로부터의 응답을 수신하는 시간 사이의 간격에 기초하여 결정될 수 있거나, 또는 휴대용 장치가 위치에 대한 내비게이션 경로에 대한 요청을 전송하는 시간과 휴대용 장치의 뷰포트에서 내비게이션 경로를 렌더링하는 완료 시간 사이의 간격에 기초하여 결정될 수 있다. 해당 방법들은 장치가 그 장치의 메모리 영역에 저장된 내비게이션 경로를 검색하는 경우 지연시간을 결정하는 데 사용될 수 있다.
상기 설명된 바와 같이, 내비게이션 경로 모듈(44)은 사용자로부터 이러한 내비게이션 경로에 대한 명시적인 요청을 수신하지 않고서 상기 뷰포트에 나타낸 특정 위치에 대한 내비게이션 경로를 디스플레이한다. 상기 뷰포트의 소정의 위치에 대해 이 위치를 선택하기 위해, 일부 구현예들에서 내비게이션 경로 모듈(44)은 특정 단일 교통수단을 위해 뷰포트의 기하학적 중심에 가장 가까운 라우팅 가능 부분을 결정한다. 더 구체적으로, 내비게이션 경로 모듈(44)은 교통수단에 의해 도달할 수 있는 거리 주소, 랜드마크, 좌표 세트, 특정 지역을 포함하는 지리적 장소 등과 같은 지리적 엔티티를 식별하고, 그 위치가 상기 뷰포트의 기하학적 중심과 정확하게 정렬되지 않더라도 이 엔티티에 대한 내비게이션 경로를 나타낸다.
일 예로서, 내비게이션 경로 모듈(44)은 사용자가 (운전, 자전거 타기 등보다는) 대중교통 경로에 가장 관심이 있을 것으로 결정하고, 대중교통 시스템에 의해 서비스되는 스테이션(station) 또는 정류장이 상기 뷰포트의 기하학적 중심 근처에 있는지를 결정한다. 상기 기하학적 중심을 중심으로 하고 그리고 디지털 지도의 줌 레벨에 의존할 수 있는 소정의 초기 반경을 갖는 원형 탐색 지역으로 시작하여, 내비게이션 경로 모듈(44)은 대중교통 시스템의 적절한 스테이션 또는 정류장이 상기 탐색 지역 내에 있을 때까지 상기 반경을 반복적으로 증가시킬 수 있다.
일부 경우에, 내비게이션 경로 모듈(44)은 상이한 유형들의 교통수단에 대응하는 부분들로 이루어진 멀티-모달 네비게이션 경로를 생성할 수 있다. 예를 들어, 내비게이션 경로는 주행 경로와 도보 경로를 포함할 수 있다. 내비게이션 경로 모듈(44)은 자동차로 접근 가능한 가장 가까운 라우팅 가능 부분에 대한 주행 경로를 검색하고, 그 다음 이 부분으로부터 뷰포트의 기하학적 중심으로의 도보 경로 또는 뷰포트의 기하학적 중심에 근접한 도보로 접근 가능한 위치를 검색할 수 있다. 보다 구체적인 예로서, 뷰포트는 인접한 주차장이 있는 공원 위에 배치될 수 있다. 내비게이션 경로(길안내) 모듈(44)은 주차장으로 향하는 주행 경로를 검색하고, 그 다음 주차장에서 공원의 중심까지 걷는 도보 경로를 검색할 수 있다.
도 5는 도보 경로(254)가 이어지는 경량의 주행 경로(252)를 갖는 예시적인 뷰포트(250)의 예를 도시한다. 상기 내비게이션 경로 모듈(44)은 상기 도보 경로(254)에 대응하는 폴리라인과는 다르게 상기 주행 경로(252)에 대응하는 폴리라인을 나타낼 수 있다. 예를 들어, 내비게이션 주행 모듈(44)은 상이한 색상들, 패턴들, 두께들 등을 사용할 수 있다.
비록 내비게이션 경로를 검색하여 획득하기 위한 다양한 것들이 일차적으로 내비게이션 경로 모듈(44)을 참조하여 설명되었지만, 대안적으로 또는 추가적으로, 적어도 일부 기술들은 서버 시스템(60)에서 동작하는 내비게이션 경로 엔진(68)에서 구현될 수 있음을 알아야 한다. 예를 들어, 일부 구현예들에 따른 내비게이션 경로 모듈(44)은 뷰포트의 현재 위치 및 제스처와 같은 사용자 명령들을 내비게이션 경로 엔진(68)에 보고하고, 이에 응답하여, 사용자로부터의 명시적인 요청없이 내비게이션 경로가 자동으로 검색되어야 하는 뷰포트의 위치들을 결정하고, 뷰포트 내비게이션 경로 내의 위치들이 검색되어야 하는지, 어떤 수준의 세부정보에서 내비게이션 경로가 검색되어야 하는지 등을 결정한다. 다른 구현예에서, 내비게이션 경로 모듈(44)은 사용자 인터페이스를 통해 내비게이션 경로가 제공되어야 하는 (디지털지도에 대한) 뷰포트의 하나 이상의 위치들을 결정할 수 있고, 내비게이션 경로 엔진(68)은 내비게이션 경로에 대한 적절한 수준의 세부정보뿐만 아니라 뷰포트의 이들 위치들에서 뷰포트 내의 특정 위치들을 결정한다. 이러한 구현예들에서, 내비게이션 경로 엔진(68)은 서버 시스템(60)에서 사용할 수 있는 보다 강건한 데이터를 사용하여 뷰포트 내의 위치들을 선택할 수 있다. 예를 들어, 뷰포트의 특정 위치에 대해, 내비게이션 경로 엔진(68)은 뷰포트의 기하학적 중심에 가장 가까운 위치들이 사용자에 의해 또는 클라이언트 장치(12)를 조작하는 사용자의 소셜 그래프의 일부인 사용자들에 의해 자주 방문되는지를 결정할 수 있다.
더 명확하게 하기 위해, 내비게이션 경로 모듈(44) 및/또는 내비게이션 경로 엔진(68)에서 구현될 수 있는 몇 가지 예시적인 방법들이 도 6 내지 8을 참조하여 다음에 설명된다. 이들 방법들 각각은 컴퓨터 판독 가능 매체에 저장되고 하나 이상의 프로세서상에서 실행 가능한 명령어들의 세트로 구현될 수 있다.
도 6은 지도 뷰포트의 현재 속도에 따라 상이한 수준의 세부정보에서 내비게이션 경로를 검색하기 위한 예시적인 방법(300)의 흐름도이다. 방법(300)은 블록(302)에서 시작하고, 여기서 디지털 지도는 초기 위치에서 뷰포트 내에 디스플레이된다. 지리 애플리케이션은 지리적 검색 쿼리(예를 들어, '샌프란시스코, 캘리포니아(CA)' 또는 '내 근처의 약국'), 명시적인 제스처 기반, 타이핑 또는 발화된 사용자 명령, 디지털 지도가 삽입된 웹 사이트에서 수신한 명령 등에 응답하여 초기 위치에 뷰포트를 배치할 수 있다.
블록(304)에서, 지리 애플리케이션은 사용자 명령 또는 일련의 명령들에 따라 뷰포트의 위치를 변경하기 시작한다. 예를 들어, 사용자는 터치스크린에 손가락을 대고 그 터치스크린과의 접촉을 유지하면서 특정 방향으로 손가락을 움직임으로써 뷰포트를 드래그하기 시작할 수 있거나, 또는 사용자가 특정 방향 및 특정 가속도로 뷰포트를 플링(fling)할 수 있다.
다음으로, 블록(306)에서, 뷰포트의 중심 또는 그 부근의 지리적 위치가 결정된다. 상기 지리 애플리케이션은 예를 들어 뷰포트의 기하학적 중심 및 주변 라우팅 가능 부분을 결정할 수 있다. 블록(308)에서, 상기 뷰포트의 현재 속도는 임계 값과 비교된다. 상기 속도가 임계값보다 높으면, 흐름은 블록(310)으로 진행하며, 여기서 내비게이션 경로는 네트워크 서버로부터 낮은 수준의 상세정보에서 또는 캐싱된 데이터를 국부적으로 사용하여 검색된다. 상기 속도가 상기 임계값을 초과하지 않으면, 흐름은 블록(312)으로 진행하며, 여기에서 내비게이션 경로는 높은 수준의 세부정보에서 네트워크 서버로부터 검색된다. 일부 경우에, 상기 지리 애플리케이션은 클라이언트 장치의 메모리에 캐싱된 데이터를 사용하여 높은 수준의 상세정보의 일부를 검색할 수 있지만, 일반적으로 실시간 트래픽 데이터와 같은 정보는 네트워크 서버에서 사용할 수 있지만 로컬에서는 사용할 수 없다.
블록(310 또는 312)이 실행된 후, 흐름은 블록(314)으로 진행하며, 여기에서 사용자 인터페이스를 통해 상기 내비게이션 경로가 디스플레이된다. 상기 내비게이션 경로의 디스플레이는 상세정보의 수준에 따라 디지털 지도에 오버레이된 폴리라인, 텍스트, 스피치, 이미지들 등의 형태의 턴-바이-턴 명령어들을 포함할 수 있다. 위에서 설명한 것처럼, 상세한 내비게이션 경로는 다양한 위치들에 대한 거리 수준 이미지(street-level imagery)도 포함할 수 있다.
블록(316)에서 상기 뷰포트의 위치 변경(재배치)이 완료되었다고 결정되면, 본 방법은 종료한다. 그렇지 않으면, 상기 뷰포트는 추가로 재배치되고 흐름은 블록(306)으로 돌아간다.
도 7을 참조하면, 예시적인 방법(350)은 지도 뷰포트의 예상 궤적을 따라 상이한 지점들에 대한 상이한 수준의 세부정보에서 내비게이션 경로를 검색하는 것이다. 이 방법은 블록(352)에서 시작하며, 여기서 디지털 지도는 초기 위치의 뷰포트에 디스플레이된다. 블록(354)에서, 뷰포트에 대한 플링 제스처의 적용이 검출된다. 플링 제스처는 특정 방향의 특정 가속도를 뷰포트에 전달한다. 상기 가속도 및 방향은 상기 제스처가 완료된 직후에, 예를 들어 사용자가 손가락을 터치스크린의 표면으로부터 들어올린 후 즉시 확인될 수 있다.
블록(356)에서 뷰포트의 예상 궤적이 결정된다. 예상 궤적은 뷰포트가 정지할 것으로 예상되는 목표 위치와 그리고 상기 뷰포트와의 추가 사용자 상호 작용이 없이 뷰포트가 상기 목표 위치로 가는 도중에 지나갈 것으로 예상되는 중간 위치들의 세트를 포함한다. 상기 지리 애플리케이션은 뷰포트를 재배치하기 전에 또는 재배치를 시작될 때 어떤 경우에는 뷰포트가 목적지에 도달하기 전에 상기 예상 궤적을 결정할 수 있다. 블록 358 및 360에서, 뷰포트의 위치들 중 일부에 대한 내비게이션 경로는 높고 낮은 수준의 세부정보에서 각각 검색될 수 있다. 이러한 예시적인 구현예에서, 블록(358)에서 뷰포트의 종점(endpoint)에 대한 상세한 내비게이션 경로가 검색되고, 블록(360)에서 뷰포트의 중간 위치들에 대한 경량 내비게이션 경로가 검색된다. 그 다음, 상기 뷰포트는 블록(362)에서 플링 제스처에 따라 재배치된다.
예를 들어, 방법(350)에 따라, 상기 지리 애플리케이션은 상기 터치스크린과의 사용자 중단된 접촉을 결정하고, 상기 예상 궤적을 결정하고, 상기 종점에 대한 내비게이션 경로 및 해당 수준들의 세부정보에서의 중간 위치들을 검색하고(또는 후술되는 이러한 내비게이션 경로에 대한 요청을 적어도 전송), 그 다음 상기 뷰포트를 재배치하기 시작한다. 이런 방법으로, 상기 지리 애플리케이션은 상기 뷰포트가 상기 위치에 도달하는 시간까지 특정 위치에 대한 내비게이션 경로를 표시하는 데 필요한 데이터를 가지거나, 상기 뷰포트가 상기 위치에 도달하는 시간까지 이미 제출된 요청에 대한 응답으로 상기 데이터를 수신한다.
일부 구현예들 및/또는 시나리오들에서, 뷰포트가 이동하기 시작할 때까지 모든 내비게이션 경로가 완전히 검색되지는 않는다. 예를 들어, 도 1로 되돌아가서, 내비게이션 경로를 검색하기 위해, 지리 애플리케이션(42)은 해당 요청들을 서버 시스템(60)에 전송할 수 있다. 지리 애플리케이션(42)은 지리 애플리케이션(42)이 뷰포트를 재배치하기 시작할 때까지 모든 응답을 수신하지 않을 수 있지만, 상기 중간 위치들에 대해 서버 시스템(60)으로부터 데이터가 도착하면, 뷰포트는 그 뷰포트에 대한 지도 데이터를 렌더링하기 전에 먼저 도달하고, 지리 애플리케이션(42)은 내비게이션 경로를 끊김없이 제공한다. 추가적인 특정 예로서, 지리 애플리케이션(42)은 뷰포트가 위치들(L1, L2, L3, ... LN)에 도달할 것으로 예상되는 순서로, 위치들(L1, L2, L3, ... LN)에 대한 내비게이션 경로에 대한 요청들(R1, R2, R3, ... RN)을 서버 시스템(60)에 각각 전송할 수 있다. 뷰포트가 위치(L1)에 도달할 때까지, 지리 애플리케이션(42)은 요청들 R1 및 R2에 대응하지만 R3 내지 RN에 대응하는 응답들을 수신할 수 있으며; 그 다음 뷰포트가 위치(L2)에 도달할 때까지, 지리 애플리케이션(42)은 요청들(R3 내지 R5)에 대응하는 몇 가지 추가 응답들을 수신할 수 있다. 따라서, 지리 애플리케이션(42)은 뷰포트의 새로운 위치에 대항 이미 이용가능한 내비게이션 경로를 디스플레이함으로써 사용자에게 끊김없는 경험을 제공할 수 있다. 보다 일반적으로, 상기 요청들(R1, R2, R3, ... RN)에 대한 응답들은 네트워크 상태들 및 구현 세부사항에 따라 언제든지 도착할 수 있지만, 어떤 경우에 뷰포트가 해당 위치들에 도달하기 전에 상기 요청들(R1, R2, R3, ... RN)이 전송되므로, 지리 애플리케이션(42)은 상기 지연을 감소시킨다.
다음으로, 도 8은 멀티-모달 내비게이션 경로를 생성하기 위한 예시적인 방법(400)의 흐름도를 도시한다. 블록(402)에서, 뷰포트의 기하학적 중심이 결정된다. 다음으로, 뷰포트의 기하학적 중심에 가장 가까운 라우팅 가능 부분에서 제안된 목적지가 식별된다. 블록(406)에서, 멀티-모달 내비게이션 경로는 캐싱된 지도 데이터를 저장하는 네트워크 서버 또는 로컬 메모리로부터 검색된다. 상기 멀티-모달 내비게이션 경로는 여러 부분들을 포함할 수 있으며, 각 부분에 대한 내비게이션 경로는 상이한 교통수단에 해당한다. 각각의 부분에 대한 교통수단은 거리(예를 들어, 제1 임계값을 초과하는 거리에서 비행하고, 제1 임계값 미만이고 제2 임계값을 초과하는 거리에서 주행), 사용자 선호도, 사용자가 선택한 마지막 교통수단 등과 같은 요소들을 고려하여 선택될 수 있다. 블록(408)에서, 멀티-모달 내비게이션 경로는 디지털 지도 상에 디스플레이된다.
추가 고려 사항들
다음과 같은 추가 고려 사항들이 이전 설명에 적용된다. 본 명세서에서, 복수의 인스턴스는 단일 인스턴스로 기술된 컴포넌트들, 오퍼레이션들 또는 구조들을 구현할 수 있다. 하나 이상의 방법의 개별 동작이 개별적인 동작으로 도시되고 설명되지만, 하나 이상의 개별적인 동작이 동시에 수행될 수 있고, 동작이 도시된 순서로 수행될 것을 요구하는 것은 아니다. 예시적인 구성들에서 개별 컴포넌트들로 제시된 구조들 및 기능은 결합된 구조 또는 컴포넌트로 구현될 수 있다. 유사하게, 단일 컴포넌트로서 제공된 구조들 및 기능은 개별 컴포넌트로 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 본 명세서의 요지의 범위 내에 있다.
특정 실시예들은 본 명세서에서 로직 또는 다수의 컴포넌트, 모듈들 또는 메커니즘을 포함하는 것으로 설명된다. 모듈들은 소프트웨어 모듈들(예를 들어, 기계 판독 가능 매체 또는 전송 신호 상에 구현된 코드) 또는 하드웨어 모듈들 중 어느 하나를 구성할 수 있다. 하드웨어 모듈은 특정 동작들을 수행할 수 있는 유형 장치이며 특정 방식으로 구성 또는 정렬될 수 있다. 예시적인 실시예들에서, 하나 이상의 컴퓨터 시스템(예를 들면, 독립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템(예를 들어, 프로세서 또는 프로세서 그룹)의 하나 이상의 하드웨어 모듈은 여기서 설명된 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 부분)에 의해 구성될 수 있다.
특별한 언급이 없는 한, "처리", "컴퓨팅", "계산", "결정", "제시", "디스플레이" 등과 같은 단어를 사용하여 본 명세서에서의 설명은 하나 이상의 메모리(예를 들어, 휘발성 메모리, 비휘발성 메모리, 또는 이들의 조합), 레지스터 또는 정보를 수신, 저장, 전송 또는 표시하는 기타 기계 컴포넌트들 내의 물리량(예를 들어, 전자, 자기 또는 광학)으로 표현된 데이터를 조작하거나 변환하는 기계(예를 들어, 컴퓨터)의 액션들 또는 프로세스들을 의미할 수 있다.
본 명세서에 사용된 바와 같이, "일 실시예" 또는 "실시예"에 대한 임의의 참조는 실시예와 관련하여 설명된 특정 구성요소, 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 명세서의 다양한 곳에서 "일 실시예에서"라는 문구가 반드시 동일한 실시예를 지칭하는 것은 아니다.
일부 실시예들은 그 파생어와 함께 "결합된" 및 "연결된"이라는 표현을 사용하여 기술될 수 있다. 예를 들어, 몇몇 실시예는 2개 이상의 구성요소가 직접 물리적 또는 전기적 접촉에 있음을 나타내기 위해 "결합된"이라는 용어를 사용하여 설명될 수 있다. 그러나 "결합된"이라는 용어는 둘 이상의 구성요소가 서로 직접 접촉하지는 않지만 여전히 상호 작용하거나 서로 상호 작용한다는 것을 의미할 수도 있다. 실시예들은 이 컨텍스트에 제한되지 않는다.
본 명세서에 사용된 바와 같이, 용어들 "포함하고 있다", "포함하고 있는", "포함한다", "포함하는", "갖는", "가지는" 또는 임의의 다른 변형은 비독점적 포함을 다루기 위한 것이다. 예를 들어, 구성요소들의 리스트를 포함하는 프로세스, 방법, 아티클 또는 장치는 반드시 그 구성요소들에만 한정되는 것이 아니라 명시적으로 열거되지 않거나 그러한 프로세스, 방법, 아티클 또는 장치에 내재된 다른 구성요소들을 포함할 수 있다. 또한, 반대로 명시적으로 언급되지 않는 한, "또는"은 포괄적이거나 배타적이지 않은 것을 의미한다. 예를 들어, 조건 A 또는 B는 다음 중 어느 하나에 의해 만족된다: A는 참(또는 존재)이고 B는 거짓(또는 존재하지 않음), A는 거짓(또는 존재하지 않음)이고 B는 참(또는 존재), 그리고 A와 B 둘 다 참(또는 존재).
또한, "단수"의 사용은 본 명세서의 실시예들의 구성요소들 및 컴포넌트들을 설명하기 위해 사용된다. 이는 단지 편의상 및 다양한 실시예에 대한 일반적인 의미를 부여하기 위해 수행된다. 이러한 설명은 하나 또는 적어도 하나를 포함하는 것으로 읽혀져야 하고 단수형은 또한 그것이 달리 의미함이 명백하지 않는 한 복수형을 포함한다.
본 개시를 읽을 때, 당업자는 여기에서 개시된 원리를 통해 내비게이션 경로를 검색하기 위한 또 다른 대체 구조 및 기능 설계를 이해할 것이다. 따라서, 특정 실시예들 및 애플리케이션들이 도시되고 설명되었지만, 개시된 실시예들은 여기에 개시된 정확한 구성 및 컴포넌트들로 제한되지 않는다는 것을 이해해야 한다. 당업자에게 명백할 다양한 수정, 변경 및 변형은 첨부 청구범위에서 정의된 취지 및 범위로부터 벗어남이 없이 여기서 개시된 방법 및 장치의 배열, 동작 및 상세설명으로 이루어질 수 있다.

Claims (15)

  1. 내비게이션 경로(navigation directions)를 제공하기 위한 컴퓨터로 구현되는 방법으로서,
    사용자 장치의 사용자 인터페이스를 통해 지리적 지역의 대화형 디지털 지도를 제공하는 단계 -뷰포트 내에 상기 대화형 디지털 지도의 현재 가시적인 부분을 디스플레이하는 단계를 포함함-;
    하나 이상의 사용자 명령들에 따른 궤적을 따라 상기 디지털 지도상의 초기 위치로부터 상기 디지털 지도상의 목표 위치로 상기 뷰포트를 재배치하는 단계;
    상기 뷰포트의 상기 궤적 상의 복수의 상이한 위치들에 대해, 지리적 위치에 대한 내비게이션 경로를 획득하기 위해 상기 사용자 인터페이스를 통해 명령들을 수신하지 않고 상기 뷰포트의 중심 부근의 지리적 위치에 대한 내비게이션 경로를 자동으로 검색하는 단계 -상기 자동으로 검색하는 단계는, 상기 궤적 상의 제1 지점에 대한 제1 수준의 세부정보를 갖는 내비게이션 경로를 검색하는 단계와, 상기 궤적 상의 제2 지점에 대한 제2 수준의 세부정보를 갖는 내비게이션 경로를 검색하는 단계를 포함하며, 상기 제1 수준의 세부정보는 상기 제2 수준의 세부정보보다 적은 정보를 포함함; 그리고
    상기 사용자 인터페이스를 통해 상기 내비게이션 경로를 디스플레이하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 제1 수준의 세부정보를 갖는 상기 내비게이션 경로를 검색하는 단계는 상기 뷰포트가 상기 제1 지점에서 이동하는 속도가 임계값을 초과하는지를 결정하는 단계를 포함하며; 그리고
    상기 제2 수준의 세부정보를 갖는 내비게이션 경로를 검색하는 단계는 상기 뷰포트가 상기 제2 지점에서 이동하는 속도가 상기 임계값을 초과하지 않는지를 결정하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 뷰포트에 적용된 사용자 명령을 검출하는 단계를 포함하며,
    상기 내비게이션 경로를 자동으로 검색하는 단계는,
    상기 사용자 명령에 따라 상기 뷰포트를 재배치하기 전에, 상기 뷰포트의 예상 궤적(probable trajectory)을 결정하는 단계 -상기 예상 궤적은 상기 초기 위치와 상기 목표 위치 사이의 복수의 중간 위치들을 포함함-; 그리고
    상기 예상 궤적 상의 상기 복수의 중간 위치들 중 하나에 대한 상기 제1 수준의 상세정보를 갖는 내비게이션 경로를 검색하고, 상기 목표 위치에 대한 상기 제2 수준의 상세정보를 갖는 내비게이션 경로를 검색하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  4. 제3항에 있어서,
    상기 뷰포트에 적용된 상기 사용자 명령을 검출하는 단계는 특정 방향으로 특정 가속도를 전달하는 플링 제스처(fling gesture)를 검출하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  5. 선행하는 청구항들 중 어느 항에 있어서,
    상기 뷰포트가 제1 위치로 재배치되기 전에 상기 제1 지점에 대한 내비게이션 경로를 검색하는 단계와,
    상기 뷰포트가 제2 위치로 재배치되기 전에 제2 지점에 대한 내비게이션 경로를 검색하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  6. 선행하는 청구항들 중 어느 항에 있어서,
    상기 내비게이션 경로가 검색되는 상기 궤적 상의 상기 복수의 상이한 위치들은 소정의 고정된 거리(d)만큼 이격되는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  7. 제6항에 있어서,
    상기 내비게이션 경로를 검색하는 것과 연관된 지연시간을 결정하는 단계; 그리고
    상기 결정된 지연시간을 고려하여 상기 고정된 거리(d)를 조정하는 단계를 더 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  8. 선행하는 청구항들 중 어느 항에 있어서,
    상기 제1 수준의 세부정보를 갖는 상기 내비게이션 경로를 검색하는 단계는 상기 내비게이션 경로에 의해 정의된 경로(path)에 대응하는 폴리라인을 획득하는 단계를 포함하며, 그리고
    상기 제2 수준의 세부정보를 갖는 상기 내비게이션 경로를 검색하는 단계는 (i) 턴-바이-턴 명령어들, (ii) 실시간 트래픽 데이터, (iii) 상기 경로(path)를 따라서 하나 이상의 지점들에 대한 거리 수준 이미지 또는 (iv) 상기 경로(path)를 따라서 하나 이상의 위치들에 대한 장소 페이지 정보, 중에서 적어도 하나에 따라서 상기 폴리라인을 획득하는 단계를 포함하며, 낮은 상세정보(low-detail) 내비게이션 경로를 검색하는 단계는 데이터 (i) 내지 (iv) 중 어느 것도 수신하지 않는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  9. 선행하는 청구항들 중 어느 항에 있어서,
    상기 뷰포트의 중심 부근의 지리적 위치에 대한 상기 내비게이션 경로를 자동으로 검색하는 단계는,
    상기 뷰포트의 중심을 결정하는 단계,
    상기 뷰포트의 상기 결정된 중심에 근접한 대중교통 시스템의 스테이션을 식별하는 단계,
    상기 식별된 스테이션에 대한 대중교통 경로를 자동으로 검색하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  10. 제9항에 있어서,
    상기 결정된 지리적 위치에 근접한 상기 스테이션을 식별하는 단계는
    상기 뷰포트의 중심에서 검색 반경을 반복적으로 증가시키는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  11. 선행하는 청구항들 중 어느 항에 있어서,
    상기 내비게이션 경로를 검색하는 단계는,
    통신 네트워크를 통해 원격 네트워크 서버에 요청을 전송하는 단계, 그리고
    상기 통신 네트워크를 통해 상기 원격 네트워크 서버로부터 상기 내비게이션 경로를 수신하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  12. 제1항 내지 제10항 중 어느 항에 있어서,
    상기 내비게이션 경로를 검색하는 단계는 로컬 메모리에 저장된 캐싱된 지도 데이터를 사용하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  13. 선행하는 청구항들 중 어느 항에 있어서,
    상기 내비게이션 경로를 자동으로 검색하는 단계는 상기 사용자 인터페이스를 조작하는 사용자와 상기 디지털 지도 간의 이전 상호작용에 기초하여 교통수단(mode of transport)을 자동으로 선택하는 단계를 포함하는 것을 특징으로 하는 내비게이션 경로를 제공하기 위한 컴퓨터로 구현되는 방법.
  14. 컴퓨터 판독 가능 매체로서,
    실행될 때, 하나 이상의 프로세서들로 하여금 제1항 내지 제13항 중 어느 항에 정의된 방법을 수행하게 하는 명령어들을 저장하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
  15. 컴퓨팅 장치로서,
    실행될 때, 하나 이상의 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항에 정의된 방법을 포함하는 동작들을 수행하게 하는 명령어들을 저장하는 컴퓨터 판독 가능 저장 매체 및 상기 하나 이상의 프로세서를 포함하는 것을 특징으로 하는 컴퓨팅 장치.
KR1020187024506A 2017-08-04 2017-08-04 내비게이션 경로 제공 KR102443653B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/045467 WO2019027469A1 (en) 2017-08-04 2017-08-04 AUTOMATIC PROVISION OF NAVIGATION DIRECTIONS ON AN INTERACTIVE DIGITAL CARD

Publications (2)

Publication Number Publication Date
KR20200033705A true KR20200033705A (ko) 2020-03-30
KR102443653B1 KR102443653B1 (ko) 2022-09-15

Family

ID=59702825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187024506A KR102443653B1 (ko) 2017-08-04 2017-08-04 내비게이션 경로 제공

Country Status (7)

Country Link
US (1) US11054269B2 (ko)
EP (1) EP3566023A1 (ko)
JP (1) JP6785871B2 (ko)
KR (1) KR102443653B1 (ko)
CN (1) CN111051818B (ko)
AU (1) AU2017397651B2 (ko)
WO (1) WO2019027469A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3160652A1 (en) * 2019-11-15 2021-05-20 Waymo Llc Agent trajectory prediction using vectorized inputs
CN113539050B (zh) * 2020-04-20 2022-09-23 华为技术有限公司 数据处理方法、装置及设备
CN111624636B (zh) * 2020-05-25 2023-06-20 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及计算机可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004053304A (ja) * 2002-07-17 2004-02-19 Alpine Electronics Inc ナビゲーション装置
US20140340304A1 (en) * 2013-05-15 2014-11-20 Google Inc. Efficient fetching of a map data during animation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5494337B2 (ja) * 2010-07-30 2014-05-14 ソニー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US9080890B2 (en) * 2010-11-05 2015-07-14 Modena Enterprises, Llc Method and system for obtaining destination information from proximate devices based on time and heading information
US8669884B2 (en) * 2011-02-02 2014-03-11 Mapquest, Inc. Systems and methods for generating electronic map displays with points of-interest information
JP2012207930A (ja) * 2011-03-29 2012-10-25 Aisin Aw Co Ltd 表示装置、表示方法、及び表示プログラム
US9163952B2 (en) * 2011-04-15 2015-10-20 Microsoft Technology Licensing, Llc Suggestive mapping
US8239266B1 (en) * 2011-11-29 2012-08-07 Google Inc. Targeting based on intent or presence
US20130257742A1 (en) * 2012-03-28 2013-10-03 Google Inc. Method and System for Controlling Imagery Panning Based on Displayed Content
US9213422B2 (en) * 2012-08-13 2015-12-15 Google Inc. Method of automatically moving a cursor within a map viewport and a device incorporating the method
US10359294B2 (en) * 2012-10-29 2019-07-23 Google Llc Interactive digital map on a portable device
US8589818B1 (en) * 2013-01-03 2013-11-19 Google Inc. Moveable viewport for indicating off-screen content
EP3101392B1 (en) * 2013-03-15 2021-12-15 Apple Inc. Mapping application with turn-by-turn navigation mode for output to vehicle display
US10655979B2 (en) * 2013-06-08 2020-05-19 Apple Inc. User interface for displaying predicted destinations
US9146118B2 (en) * 2014-02-27 2015-09-29 Telenav Inc. Navigation system with point of interest detour mechanism and method of operation thereof
US9151627B2 (en) * 2014-03-04 2015-10-06 Google Inc. Navigation directions between automatically determined starting points and selected destinations
US9684425B2 (en) * 2014-08-18 2017-06-20 Google Inc. Suggesting a target location upon viewport movement
US10151600B2 (en) * 2014-11-25 2018-12-11 Google Llc Systems and methods for controlling viewport movement in view of user context
US20170068413A1 (en) * 2015-09-09 2017-03-09 Microsoft Technology Licensing, Llc Providing an information set relating to a graphical user interface element on a graphical user interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004053304A (ja) * 2002-07-17 2004-02-19 Alpine Electronics Inc ナビゲーション装置
US20140340304A1 (en) * 2013-05-15 2014-11-20 Google Inc. Efficient fetching of a map data during animation

Also Published As

Publication number Publication date
EP3566023A1 (en) 2019-11-13
KR102443653B1 (ko) 2022-09-15
AU2017397651B2 (en) 2022-05-12
CN111051818A (zh) 2020-04-21
WO2019027469A1 (en) 2019-02-07
JP6785871B2 (ja) 2020-11-18
US20210048305A1 (en) 2021-02-18
AU2017397651A1 (en) 2019-02-21
JP2019527336A (ja) 2019-09-26
CN111051818B (zh) 2023-08-11
US11054269B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
EP3516339B1 (en) Linear visualization of driving route
KR101725886B1 (ko) 자동으로 결정된 스타팅 포인트들과 선택된 목적지들 사이의 네비게이션 경로들
US11441918B2 (en) Machine learning model for predicting speed based on vehicle type
JP7366104B2 (ja) ランドマーク援用ナビゲーション
US10883848B2 (en) Methods and systems for providing an improved maneuver countdown bar
US9689705B2 (en) Systems and methods for electronic display of various conditions along a navigation route
CN112384757A (zh) 鉴于另一设备而向一个设备提供导航指令
KR102542491B1 (ko) 친숙한 위치를 중간 목적지로 사용하는 내비게이션 방향
KR102443653B1 (ko) 내비게이션 경로 제공
KR20200042443A (ko) 내비게이션 조종과 연계할 관심지점(poi)을 선택하기 위한 시스템 및 방법
US20210364312A1 (en) Routes on Digital Maps with Interactive Turn Graphics
JP2016161339A (ja) 提示装置、提示方法及び提示プログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right