KR102040787B1 - 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법 - Google Patents

차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102040787B1
KR102040787B1 KR1020187026915A KR20187026915A KR102040787B1 KR 102040787 B1 KR102040787 B1 KR 102040787B1 KR 1020187026915 A KR1020187026915 A KR 1020187026915A KR 20187026915 A KR20187026915 A KR 20187026915A KR 102040787 B1 KR102040787 B1 KR 102040787B1
Authority
KR
South Korea
Prior art keywords
navigation
head unit
api
portable device
vehicle
Prior art date
Application number
KR1020187026915A
Other languages
English (en)
Other versions
KR20180105746A (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
Priority claimed from US14/038,464 external-priority patent/US9109917B2/en
Priority claimed from US14/038,382 external-priority patent/US20150088411A1/en
Priority claimed from US14/038,437 external-priority patent/US10054463B2/en
Priority claimed from US14/038,478 external-priority patent/US9958289B2/en
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20180105746A publication Critical patent/KR20180105746A/ko
Application granted granted Critical
Publication of KR102040787B1 publication Critical patent/KR102040787B1/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/3885Transmission of map data to client devices; Reception of map data by client devices
    • G01C21/3896Transmission of map data from central databases
    • 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
    • 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/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • 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/3688Systems comprising multiple parts or multiple output devices (not client-server), e.g. detachable faceplates, key fobs or multiple output screens
    • 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/362Destination input or retrieval received from an external device or application, e.g. PDA, mobile phone or calendar application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

명령어들의 세트는 휴대용 장치로부터 차량의 헤드 유닛에 네비게이션 데이터를 제공하기 위한 어플리케이션 프로그래밍 인터페이스(API)를 구현한다. 상기 휴대용 장치에서 실행되는 컴패니언 어플리케이션에 의해 호출될 때, 상기 API는 출발지와 목적지 사이에 사용자를 네비게이션하는 네비게이션 데이터를 획득하도록 구성되며, 상기 휴대용 장치는 장거리 통신 링크를 통해 네비게이션 서버로부터 네비게이션 데이터를 수신한다. API는 또한, 단거리 통신 링크를 통해 상기 헤드 유닛에 전송을 위해 상기 컴패니언 어플리케이션에 네비게이션 데이터를 제공하도록 구성된다.

Description

차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR PROVIDING NAVIGATION DATA TO A VEHICLE}
본 발명은 일반적으로 차량의 헤드 유닛에 네비게이션 데이터를 제공하는 것으로서, 특히, 사용자 인터페이스를 통해 디지털 네비게이션 데이터를 제공하는 것에 관한 것이다.
본 명세서에서 제공되는 배경 기술 설명은 일반적으로 발명의 콘텍스트를 제시하기 위한 것이다. 본 배경 기술 설명란에서 설명하는 정도로의 현재 지명된 발명자들의 발명 내용뿐만 아니라 출원 당시 선행기술로서 적격하지 않은 본 발명의 설명의 양상들은 명시적으로든 묵시적으로든 본 발명에 대한 선행기술로서 인정되지 않는다.
오늘날 많은 차량 제조자들은 차량의 헤드 유닛 (즉, 데크)에 임베디드형 네비게이션 시스템을 제공한다. 이러한 임베디드형 차량 네비게이션 시스템은 일반적으로 정적 맵들의 컬렉션을 저장하고, 헤드 유닛으로부터 국부적으로 라우팅 및 네비게이션 동작들을 수행한다. 네비게이션 시스템에서 구현된 맵들 및 알고리즘들이 구식이 됨에 따라, 비록 지원된다 하더라도 업데이트의 실행은 일반적으로 곤란하다. 일부 임베디드형 차량 네비게이션 시스템은 현재 네트워크 서버에 액세스하기 위한 전용 셀룰러 링크를 포함하지만,이 링크는 일반적으로 고가의 가입을 요구한다.
스마트폰 및 다른 휴대용 장치에서 실행되는 어플리케이션들을 활용하기 위해, 몇몇 차량 제조자들은 이제, 차량의 헤드 유닛의 오디오 및 비주얼 컴포넌트들을 액세스하기 위한 어플리케이션 프로그래밍 인터페이스(API)들을 제공한다. 이들 API는 헤드 유닛에 액세스하기 위한 제조사-특정 방식들(schemes)을 제공한다. 따라서, 일반적으로 이들 API를 사용하여 어플리케이션들은 차량의 단지 하나의 메이크 혹은 브랜드용으로 개발된다.
일반적으로 말해서, API는 휴대용 장치들에서 실행되는 어플리케이션들이 무선 통신 네트워크를 통해 네비게이션 서버로부터 턴-바이-턴 방향, 경로 개요, 오디오 명령, 맵 이미지를 포함할 수 있는 네비게이션 데이터를 수신할 수 있게 해준다. API("컴패니언 어플리케이션")를 호출(invoke)한 어플리케이션은 헤드 유닛의 제조자에 의해 정의되는 통신 방식과 같은 그러한 임의의 원하는 통신 방식을 이용하여 차량의 헤드 유닛에 네비게이션 데이터를 제공할 수 있다. 예시적인 구현에서, API는 휴대용 장치의 운영 체제에 고유한 네비게이션 서비스를 통해 네비게이션 서버와 통신한다. 휴대용 장치 및 헤드 유닛은 유선 또는 무선 단거리 통신 링크를 통해 통신할 수 있다. 컴패니언 어플리케이션은 API에 노출된 소정의 포맷에 따라 상기 네비게이션 데이터를 수신하고, 상기 헤드 유닛에 의해 지원되는 포맷으로 네비게이션 데이터를 변환할 수 있다. 따라서, 헤드 유닛의 제조자 또는 차량의 제조자는 네비게이션 데이터를 획득하고 이를 원하는 포맷으로 변환하는 컴패니언 어플리케이션을 개발하기 위해 API를 사용할 수 있다. 보다 일반적으로, 컴패니언 어플리케이션은 통신 처리 방식들의 큰 다양성을 지원하기 위해 API를 호출 할 수 있다.
본 발명의 기술을 사용하여, API는 스마트 폰과 같은 휴대용 장치에서 실행되는 네비게이션 서비스 어플리케이션으로 하여금 이 API("컴패니언 어플리케이션")을 호출하여 상기 휴대용 장치에서 실행되는 제 2 어플리케이션에 디지털 맵 이미지를 효율적으로 제공하도록 한다. 그러면, 컴패니언 어플리케이션은 이러한 헤드 유닛 제조자에 의해 규정된 통신 방식과 같은 그러한 임의의 원하는 통신 방식을 이용하여 차량의 헤드 유닛에 디지털 맵 이미지를 제공할 수 있다. 네비게이션 서비스 어플리케이션은 출발지부터 목적지까지의 경로를 형성하는 단계들의 시퀀스로서 네비게이션 데이터를 수신할 뿐만 아니라, 출발지와 목적지 사이의 지리적 영역의 디지털 맵을 렌더링하기 위한 맵 데이터를 수신할 수 있다. 맵 데이터는 예를 들어, 벡터 그래픽 형태로 제공될 수 있고, 네비게이션 서비스 어플리케이션은 이 맵 데이터를 해석하여 비트맵들을 생성하도록 렌더링할 수 있다.
대역폭과 배터리 전원을 보존하기 위해, 네비게이션 서비스 어플리케이션은 네비게이션 방향의 단계를 단지 일러스트레이션 하기 위해 맵 이미지를 렌더링할 수 있는바, 상기 네비게이션 방향들의 단계들은 전형적으로, 상기 헤드 유닛에 업데이트된 디지털 맵 이미지를 제공함이 없이 경로 세그먼트들 간을 전환(예컨대, "메인에서 우회전 "2.4 마일 직진")하기 위한 기동들(maneuvers)이다. 보다 구체적으로, 실시간으로 경로를 따라 차량의 진행을 반영하도록 디지털 맵을 재-렌더링(re-rendering)하는 것보다는, 네비게이션 서비스 어플리케이션은 차량이 경로에 머물도록 기동해야만 하는 도로 분기점(road junctions)과 같은 그러한 경로의 "관심"부분들에 대한 디지털 맵 이미지를 생성할 수 있다. 네비게이션 서비스 어플리케이션은 차량이 디지털 맵 상에서 이동 방향을 항상 향하도록 표시될 수 있도록 각 단계에서 차량의 방향에 따라 이들 디지털 맵 이미지를 생성할 수 있다. 컴패니언 어플리케이션은 API에 노출된 소정의 포맷에 따라 네비게이션 서비스 어플리케이션의 디지털 맵 이미지를 수신하고, 상기 헤드 유닛에 의해 지원되는 포맷으로 디지털 맵 이미지를 변환할 수 있다.
또한, 스마트 폰과 같은 그러한 휴대용 장치상에서 실행되는 API ("컴패니언 어플리케이션")를 호출하는 어플리케이션이 차량의 헤드 유닛으로부터 주소 또는 비즈니스의 명칭의 처음 몇 개의 문자와 같은 그러한 부분적인 사용자 입력을 수신한다.
컴패니언 어플리케이션은 헤드 유닛 제조자에 의해 정의되는 통신 방식과 같은 그러한 임의의 원하는 통신 방식을 이용하여 헤드 유닛으로부터 상기 부분적인 입력을 수신한다. 상기 휴대용 장치는, 예컨대 USB와 같은 그러한 단거리 통신 링크를 통해 부분적인 사용자 입력을 수신할 수 있다. 이후, 컴패니언 어플리케이션은 컴패니언 어플리케이션으로 하여금 헤드 유닛을 통해 수신된 사용자 입력 부분을 네비게이션 서비스에 전송할 수 있게 하는 API를 호출한다. 따라서, 네비게이션 서비스는 로컬로 또는 셀룰러 링크와 같은 그러한 장거리 통신 링크를 통해 제안 서버로부터 제안들을 요청함으로써 제안된 입력을 생성할 수 있다. 상기 제안들은 상기 제안된 입력과 일치하는 지리적 위치들 중 하나 또는 여러 개의 이름이나 주소를 포함할 수 있다. 원하는 경우, 상기 제안들은 휴대용 장치의 사용자를 위해 퍼스널라이징될 수 있다. 네비게이션 서비스는 영숫자, 오디오 안내 등의 문자열의 형태로 헤드 유닛에 제안들을 제공할 수 있다. 일부 경우들에서, 네비게이션 서비스는 헤드 유닛에 의해 인식되는 포맷으로 상기 제안들을 변환한다. 하나의 그러한 구현 예에서, 네비게이션 서비스는 (ⅰ) 상기 휴대용 장치의 운영 체제에 고유한 네비게이션 서비스 어플리케이션과, 그리고 (ii) 컴패니언이 상기 제안들을 수신하기 위해 호출하고, 상기 제안들을 헤드 유닛에 의해 인식되는 포맷으로 변환하고, 그리고 상기 제안들을 상기 헤드 유닛에 제공하는 API를 포함한다.
차량의 운전자가 휴대용 장치(예컨대, 스마트 폰)상에서 네비게이션 기능들을 안전하게 호출할 수 있도록 하기 위해, 본 발명의 API("컴패니언 어플리케이션)을 호출하는 어플리케이션은 운전자가 작동시키는 차량 제어들의 표시(indication)들을 수신하고 이 표시들 및 휴대용 장치의 개별 사용자에 대해 설정될 수 있는 소정의 맵핑에 따라 네비게이션 기능들을 실행한다. 컴패니언 어플리케이션은 헤드 유닛 제조자에 의해 정의되는 통신 방식과 같은 그러한 임의의 원하는 통신 방식을 이용하여 헤드 유닛으로부터 상기 표시들을 수신한다. 컴패니언 어플리케이션은, 헤드 유닛을 통해 수신된 표시들을 네비게이션 서비스에 전달할 수 있게 해주는 API를 호출한다. 운전자는 차량의 헤드 유닛에 배치되거나 혹은 연결된 하드웨어, 터치 스크린 또는 다른 버튼들을 누를 수 있고, 상기 헤드 유닛은 상기 휴대용 장치에 이러한 이벤트를 전달할 수 있다. 예시적인 시나리오에서, 사용자는 우선, 휴대용 장치상에서 인터렉티브 대화를 호출하고, 헤드 유닛이 상기 휴대용 장치로 이들 작동 이벤트들을 보고 할 수 있도록 다양한 차량 제어들을 작동시키고, 그리고 각각의 작동 이벤트를 위한 원하는 네비게이션 기능들을 선택함으로써 차량 제어들과 네비게이션 기능들 간의 매핑을 설정할 수 있다. 네비게이션 동안, 사용자는 예컨대, 핸들에 있는 '볼륨 업'키를 누를 수 있으며, 헤드 유닛이 이러한 키 누름 이벤트를 휴대용 장치에 보고한 후, 상기 휴대용 장치는 헤드 유닛의 다음 네비게이션 명령을 제공할 수 있다. 버튼들은 소프트웨어를 사용하여 휴대용 장치에 구성될 수 있기 때문에, 거의 모든 차량이 상기 휴대용 장치상에서 실행되는 네비게이션 소프트웨어와 함께 사용하도록 쉽게 구성 및 개조 될 수 있다.
보다 구체적으로, 본 발명의 기술들의 한 구현 예는 하나 이상의 프로세서들에서 실행 가능한 명령어들을 저장하는 컴퓨터 판독 가능 매체이다. 이 명령어들은 휴대용 장치에서의 네비게이션 데이터를 차량에 설치된 헤드 유닛에 제공하기 위한 API를 구현한다. API는, 상기 휴대용 장치상에서 실행되는 컴패니언 어플리케이션에 의해 호출되면, 출발지와 목적지 사이에서 사용자를 네비게이션하기위한 네비게이션 데이터를 획득하도록 구성되며, 상기 휴대용 장치는 제 1 통신 링크를 통해 네비게이션 서버로부터 네비게이션 데이터를 수신한다. API는 또한, 제 2 통신 링크를 통해 상기 헤드 유닛에 전송하기 위해 상기 네비게이션 데이터를 컴패니언 어플리케이션 제공하도록 구성된다.
이들 기술의 다른 구현 예는 하나 이상의 프로세서들에서 실행 가능한 명령어들의 다른 세트를 저장하는 컴퓨터 판독 가능 매체이다. 이 명령어들은 휴대용 장치로부터의 네비게이션 데이터를 차량에 설치된 헤드 유닛에 제공하기 위한 또 다른 API를 구현한다. API는, 상기 휴대용 장치상에서 실행되는 컴패니언 어플리케이션에 의해 호출되면, 어플리케이션 컴패니언에 독립적으로 상기 휴대용 장치상에서 실행되는 네비게이션 어플리케이션으로부터 네비게이션 데이터를 수신하도록 구성된다. 네비게이션 서비스 어플리케이션은 제 1 통신 링크를 통해 네비게이션 서버로부터 네비게이션 데이터를 수신하고, 컴패니언 어플리케이션은 제 2 통신 링크를 통해 헤드 유닛과 통신한다. API는 또한, 상기 헤드 유닛에 전송을 위해 상기 네비게이션 데이터를 컴패니언 어플리케이션에 제공하도록 구성된다.
본 발명의 기술들의 또 다른 구현 예는 휴대용 장치에서의 네비게이션 데이터를 차량의 헤드 유닛에 제공하기 위한 컴퓨터로 구현되는 방법이다. 이 방법은, 장거리 통신 링크를 통해 네비게이션 서버로부터 네비게이션 데이터를 수신하도록 휴대용 장치에서 실행되는 네비게이션 서비스를 구현하는 명령어를 제공하는 단계를 포함한다. 네비게이션 데이터는 출발지와 목적지 사이에서 네이게이션을 위한 복수의 단계들을 설명한다. 상기 방법은 또한 네비게이션 API를 구현하는 명령어들을 제공하는 것을 포함하며, 컴패니언 어플리케이션이 (i) 헤드 유닛을 통해 선택된 목적지를 네비게이션 서비스에 제공하고, (ⅱ) 네비게이션 서버로부터 네비게이션 데이터를 수신하며, 상기 컴패니언 어플리케이션은 단거리 통신 링크를 통해 헤드 유닛에 네비게이션 데이터를 제공한다.
이들 기술의 또 다른 구현은 네비게이션 서비스 어플리케이션을 구현하는 명령어들을 저장하는 비-일시적 컴퓨터 판독 가능 매체이다. 하나 이상의 프로세서에 의해 실행될 때, 상기 명령어들은 상기 하나 이상의 프로세서로 하여금 장거리 통신 링크를 통해 출발지와 목적지 사이에서 사용자를 네비게이션하기 위한 네비게이션 데이터를 수신하도록 한다. 상기 수신된 네비게이션 데이터는 제 1 포맷에 따른다. 이 명령어들은 또한, 상기 하나 이상의 프로세서로 하여금 상기 네비게이션 데이터를 상기 네비게이션 서비스 어플리케이션과 차량들의 헤드 유닛들 사이에서만의 통신을 위해 정의된 제 2 포맷으로 변화하도록 함과 아울러, 상기 제2 포맷의 네비게이션 데이터를 단거리 통신 링크를 통해 차량의 헤드 유닛에 전송하도록 한다. 상기 네비게이션 서비스를 구현하는 명령어들은 상기 헤드 유닛에 특정적인 명령어들이 상기 네비게이션 데이터를 변환하도록 호출되게 하지 않거나 혹은 상기 네비게이션 데이터가 전송되지 않게 한다.
이 기술들의 다른 실시 예는 차량에 설치된 헤드 유닛에 네비게이션 데이터를 제공하기 위한 컴퓨터에 의해 구현되는 방법이다. 이 방법은 하나 이상의 프로세서에 의해, 차량의 현재 위치 및 현재 방향의 표시를 수신하고, 제 1 통신 링크를 통해 네트워크 장치로부터 현재 위치를 포함하는 지리적 영역의 디지털 맵을 생성하는 맵 데이터를 수신하는 것을 포함한다. 이 방법은 또한, 하나 이상의 프로세서에 의해, 현재 배향(orientation)에 따라 디지털 맵을 배향하는 것을 포함하여 상기 맵 데이터를 이용하여 디지털 맵 이미지를 생성하고, 상기 하나 이상의 프로세서에 의해, 상기 디지털 맵 이미지를 제 2 통신 링크를 통해 상기 헤드 유닛에 제공하는 것을 포함한다.
이 기술들의 다른 실시 예는 하나 이상의 프로세서와, 장거리 통신 링크를 통하여 네트워크 장치와 통신하는 제 1 네트워크 인터페이스와, 단거리 통신 링크를 통해 차량의 헤드 유닛과 통신하는 제 2 네트워크 인터페이스와, 명령어들을 저장하는 비-일시적 컴퓨터 판독 가능 메모리를 포함한다. 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 명령어들은 상기 휴대용 장치로 하여금 차량의 현재 위치 및 현재 배향을 결정하고; 상기 맵 데이터를 이용하여 상기 현재 위치를 포함하는 지리적 영역의 디지털 맵을 생성하기 위한 맵 데이터를 장거리 통신 링크를 통해 수신하고; 상기 결정된 차량의 배향에 따라 디지털 맵 이미지를 생성하고; 그리고 상기 단거리 통신 링크를 통해 상기 헤드 유닛에 상기 디지털 맵 이미지를 제공하도록 한다.
이 기술들의 또 다른 실시 예는 컴퓨팅 장치에서, 디스플레이 장치를 포함하는 차량의 헤드 유닛에 네비게이션 데이터를 제공하는 방법이다. 상기 방법은 하나 이상의 프로세서에 의해, 출발지와 목적지 사이를 이동하는 단계들의 시퀀스를 특정하는 네비게이션 데이터를 수신하는 단계를 포함하며, 상기 단계들 각각은 대응하는 지리적 위치에서의 각각의 기동을 특정한다. 상기 방법은 또한, 상기 단계들 각각에 대해, 상기 하나 이상의 프로세서를 사용하여, 디지털 맵 이미지들의 시퀀스를 생성하기 위해 상기 단계에 대응하는 지리적 위치를 포함하는 지리적 영역의 디지털 맵 이미지를 렌더링하는 것을 포함한다. 또한, 상기 방법은 상기 하나 이상의 프로세서에 의해, 차량의 헤드 유닛에 상기 디지털 맵들의 시퀀스를 제공하는 단계를 포함한다.
또 다른 실시 예는 디스플레이 장치를 포함하는 차량의 헤드 유닛에 네비게이션 데이터를 제공하기 위한 수단이다. 상기 네비게이션 데이터를 제공하기 위한 수단은 (ⅰ) 출발지와 목적지 사이를 이동하는 단계들의 시퀀스를 특정하는 네비게이션 데이터를 수신하는 수단 - 상기 단계들 각각은 대응하는 지리적 위치에서 각각의 기동을 특정한다 - 과; (ⅱ) 상기 단계들 각각에 대해, 디지털 맵 이미지들의 시퀀스를 생성하기 위해 상기 단계에 대응하는 지리적 위치를 포함하는 지리적 영역의 디지털 맵 이미지들을 렌더링하는 단계와; 그리고 (iii) 상기 디지털 맵들의 시퀀스를 상기 차량의 헤드 유닛에 제공하는 단계를 포함한다.
본 발명의 상기 기술들의 또 다른 실시 예는 휴대용 장치에서, 차량의 헤드 유닛을 통해 네비게이션 데이터를 요청하기 위한 입력 제안들을 제공하는 방법이다. 이 방법은 단거리 통신 링크를 통해, 상기 헤드 유닛에 제공된 부분적인 사용자 입력을 수신하는 단계를 포함하며, 상기 부분적인 사용자 입력은 일련의 영숫자 문자들을 포함한다. 이 방법은 또한, 하나 이상의 프로세서에 의해, 상기 부분적인 사용자 입력에 대응하는 제안된 입력을 생성하는 단계를 포함하며, 상기 제안된 입력은 상기 일련의 영숫자 문자 및 하나 이상의 추가적인 문자를 포함하며, 상기 제안된 입력은 하기 하나 이상의 그래픽 위치들의 세트에 대응한다. 이 방법은 또한, 상기 하나 이상의 프로세서에 의해, 상기 제안된 입력을 단거리 통신 링크를 통해 상기 헤드 유닛에 제공하는 단계를 포함한다.
본 발명의 기술들의 또 다른 실시 예는 하나 이상의 프로세서와, 제 1 통신 링크를 통하여 차량의 헤드 유닛과 통신하는 제 1 네트워크 인터페이스와; 제 2 통신 링크를 통해 제안 서버와 통신하는 제 2 네트워크 인터페이스와; 그리고 명령어들을 저장하는 비-일시적 컴퓨터 판독 가능 매체를 포함한다. 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 명령어들은 상기 휴대용 장치로 하여금 (i)상기 제 1 통신 링크를 통해, 헤드 유닛에 제공된 부분적인 사용자 입력을 수신하도록 하고; (ii) 상기 부분적인 사용자 입력이 상기 제안 서버에 전송되도록 하고; (iii) 상기 제안들의 세트에 근거하여 제안된 입력을 생성하게 하고; 그리고 (iv) 상기 제안된 입력이 상기 헤드 유닛에 전송되게 한다.
본 발명의 기술들의 또 다른 실시 예는 휴대용 장치에서 실행되는 소프트웨어 어플리케이션에 의한 사용을 위한 어플리케이션 프로그래밍 인터페이스 (API)를 구현하는 명령어들을 저장하는 비-일시적인 컴퓨터 판독 가능 매체이다. 소프트웨어 어플리케이션에 의해 호출될 때, API는 (i) 제 1 통신 링크를 통해, 상기 휴대용 장치와 독립적으로 동작하는 외부 장치로부터 부분적인 사용자 입력을 수신하고; (ii) 제 2 통신 링크를 통해, 제안 서버에 상기 부분적인 사용자 입력을 제공하고; (ⅲ) 상기 제안 서버로부터, 하나 이상의 지리적 위치들의 세트에 대응하는 제안된 입력을 수신하고; 그리고 (ⅳ) 상기 제안된 입력을 외부 장치에 제공하도록 되어있다.
더욱 상세하게는, 본 발명의 기술들의 일 실시 예는 휴대용 장치에서, 차량의 헤드 유닛을 통해 수신된 사용자 입력에 따라 상기 휴대용 장치상에서 실행되는 네비게이션 서비스 어플리케이션을 제어하는 방법이다. 상기 방법은 하나 또는 그 이상의 프로세서에 의해 실행되고, (i) 상기 헤드 유닛의 제어들과 상기 네비게이션 소프트웨어 어플리케이션의 기능들 사이의 매핑을 수신하는 단계와; (ii) 상기 휴대용 장치와 상기 헤드 유닛 사이의 통신 링크를 통해 상기 제어들중 하나가 작동되었다는 표시를 수신하는 단계와; (ⅲ) 상기 수신된 매핑 및 상기 수신된 표시에 따라 상기 네비게이션 소프트웨어 어플리케이션의 기능들 중 한 기능을 선택하는 단계와; 그리고 (ⅳ) 상기 네비게이션 소프트웨어 어플리케이션의 선택된 기능을 실행하는 단계를 포함한다.
본 발명의 방법의 다른 실시 예는 하나 이상의 프로세서와; 단거리 통신 링크를 통해 복수의 제어들을 포함하는 차량의 헤드 유닛과 통신하는 단거리 네트워크 인터페이스와; 그리고 상기 하나 이상의 프로세서에 의해 실행 가능한 명령어들을 저장하는 비-일시적인 컴퓨터 판독 가능 매체를 포함하는 휴대형 장치이다. 상기 명령어들은 복수의 사용자-선택가능 기능들을 지원하는 네비게이션 서비스 어플리케이션을 구현한다. 이 명령들은 또한, (i) 단거리 네트워크 인터페이스를 통해 상기 헤드 유닛의 제어들 중 하나가 작동되었다는 표시를 수신하고; (ii) 상기 수신된 표시에 근거하여 상기 복수의 사용자-선택 가능 기능들 중에서 한 기능을 선택하고; 그리고 (iii) 상기 선택된 기능을 실행하도록 되어있다.
본 발명의 기술들의 또 다른 실시 예는 명령어를 저장하는 비-일시적 컴퓨터 판독 가능 매체이다. 휴대용 장치의 하나 이상의 프로세서에 의해 실행될 때, 상기 명령들은 (i) 차량의 헤드 유닛 상의 복수의 제어들과 상기 휴대용 장치에 의해 지원되는 복수의 네비게이션 기능들 사이의 매핑을 수신하고; (ii) 상기 제어들중 하나가 헤드 유닛상에서 작동된다는 표시를 수신하고; (iii) 상기 수신된 매핑과 상기 수신된 표시에 따라 상기 복수의 네비게이션 기능들로부터 하나의 네비게이션 기능을 선택하고; 그리고 (iv) 상기 네이게이션 기능의 실행 결과를 상기 헤드 유닛에 제공하도록 되어있다.

도 1은 본 발명의 기술들이 휴대용 장치로부터의 네비게이션 데이터를 차량의 헤드 유닛에 전송하기 위해 사용될 수 있는 예시적인 환경을 도시한다.
도 2는 도 1의 시스템에서 동작할 수 있는 예시적인 휴대용 장치 및 예시적인 헤드 유닛의 블록도이다.
도 3은 도 1의 휴대용 장치가 동작하는 통신 시스템의 블록도이다. 1 동작;
도 4는 헤드 유닛을 통해 제공되는 사용자 입력에 응답하여 상기 헤드 유닛에 네비게이션 데이터를 제공하기 위한 도 2에 도시된 컴포넌트들 사이의 정보의 예시적인 교환을 도시한 메시지 시퀀스도이다.
도 5는 도 2의 API에서 구현될 수 있는, 네비게이션 서버로부터 네비게이션 데이터를 수신하여 차량의 헤드 유닛에 제공하는 예시적인 방법의 흐름도이다.
도 6은 기동에 대응하는 디지털 맵 이미지를 헤드 유닛에 제공하기 위해 도 2에 도시된 컴포넌트들 사이의 정보의 예시적인 교환을 도시한 메시지 시퀀스도이다.
도 7은 본 발명의 기술들을 이용하여, 헤드 유닛에 디스플레이될 수 있는 예시적인 이미지를 보인 도면이다.
도 8은 도 2의 API에서 구현될 수 있는, 기동을 위한 디지털 맵 이미지를 생성하여 차량의 차량 헤드 유닛에 제공하기 위한 예시적인 방법의 흐름도이다.
도 9는 헤드 유닛 상의 하드웨어 제어들을 휴대용 장치상의 네비게이션 기능에 매핑하기 위해 도 2에 도시된 컴포넌트들간의 정보의 예시적인 교환을 도시하는 메시지 시퀀스도이다.
도 10은 헤드 유닛을 통해 수신된 사용자 입력을 휴대용 장치상의 네비게이션 어플리케이션에 제공하기 위해 도 2에 도시된 컴포넌트들 간의 정보의 예시적인 교환을 도시하는 메시지 시퀀스도이다.
도 11은 도 2의 API에서 구현될 수 있는, 차량의 헤드 유닛을 통해 수신된 사용자 입력을 휴대용 장치상의 네비게이션 어플리케이션에서 처리하는 예시적인 방법의 흐름도이다.
도 12는 헤드 유닛에 입력 제안들을 제공하기 위해, 도 2에 도시된 컴포넌트들 사이의 정보의 예시적인 교환을 도시한 메시지 시퀀스도이다.
도 13은 도 2의 API에서 구현될 수 있는, 차량의 헤드 유닛을 통해 네비게이션 데이터를 요청하기 위한 제안들을 입력 제안들을 제공하는 예시적인 방법의 흐름도이다.
휴대용 장치상에서, 네비게이션 서비스는 어플리케이션이 네비게이션 서비스로부터 네비게이션 데이터를 수신할 수 있도록 네비게이션 API를 노출시킨다. 이 어플리케이션은 헤드 유닛 제조자에 의해 정의되는 통신 방식과 같은 그러한 임의의 원하는 통신 방식을 이용하여 상기 네비게이션 데이터를 차량의 헤드 유닛 또는 다른 외부 출력 장치에 제공한다. 네비게이션 API는 또한, 상기 어플리케이션이 헤드 유닛을 통해 수신된 사용자 입력을 네비게이션 서비스에 전송하게 할 수 있다. 따라서, 어떤 의미에서, API는 상기 어플리케이션과 상기 네비게이션 서비스 간의 양방향 인터페이스를 제공한다. 차량에 따라서, 상기 헤드 유닛은 영숫자 문자를 디스플레이하고 오디오를 플레이백 하기 위한 비교적 단순한 컴포넌트들 혹은, 디지털 이미지 및 심지어 애니메이션을 디스플레이하고, 터치스크린 입력을 수신하고, 음성 명령들 등을 처리하기 위한 비교적 강건한 컴포넌트들을 포함할 수 있다. 스마트폰일 수 있는 휴대용 장치는, 예컨대 블루투스 프로토콜을 지원하는 것과 같은 단거리 통신 링크를 통해 상기 헤드 유닛과 통신할 수 있다.
이하에서 보다 상세히 논의되는 바와 같이, 예시적인 구현에서 상기 휴대용 장치는 셀룰러 네트워크 또는 다른 무선 통신 네트워크를 통해 네비게이션 서버와 통신하는 네비게이션 서비스 어플리케이션(또는 간단히 말해서, "네비게이션 어플리케이션")을 지원한다. 네비게이션 서비스 어플리케이션은 휴대용 장치의 운영 체제에 고유한 것일 수 있다. API를 사용하여, 프로그래머는 휴대용 장치에서 실행되고, 한편으로 네비게이션 서비스와 통신하고 그리고 다른 한편으로 상기 헤드 유닛이 지원하는 통신 방식을 이용하여 헤드 유닛과 통신하는 "컴패니언" 어플리케이션을 개발할 수 있다. 하나의 대안으로서, API는 상기 네비게이션 서버와 직접 통신하는 기능을 구현할 수 있다. 다른 대안으로서, API는 네비게이션 서버에 요청을 전송함이 없이, 휴대용 장치에 로컬로 네비게이션 데이터를 생성하는 네비게이션 서비스 어플리케이션과 통신할 수 있다.
어떤 경우에서, 한 차량 제조자는 다른 차량 제조자들과 공유되지 않는 고유의 통신 방식을 포함한 임의의 원하는 통신 방식을 이용하여 차량의 헤드 유닛과 통신하는 컴패니언 어플리케이션을 개발할 수 있다. 일반적으로, 본 발명의 네비게이션 API는 개발자들이 쉽게 효율적으로, 뷰 차량들의 휴대용 장치로부터 네비게이션 데이터를 내보낼 뿐만 아니라 기존 차량들을 개조할 수 있게 해준다.
구현에 따라, 네비게이션 API는 하나 이상의 기능, 클래스들 등을 포함할 수 있다. 또한, 네비게이션 API는 다양한 데이터 구조, 메시지 포맷, 상수, 열거된 목록들을 사용할 수 있고, 따라서 개발자에게는 적절한 정의들이 제공될 수 있다. 또한, 네비게이션 API는 콜백 기능을 특정하거나 그렇지않은 경우 상기 네비게이션 서비스 어플리케이션으로부터 컴패니언 어플리케이션으로의 이벤트 보고, 메시징 등을 구성하는 메커니즘을 제공할 수 있다.
한 예시적인 시나리오에서, 컴패니언 어플리케이션은 상기 헤드 유닛으로부터 사용자 입력을 수신하여 이를 네비게이션 서비스에 제공하기 위해 네비게이션 API를 호출한다. 사용자 입력은, 예컨대 목적지의 이름 또는 어드레스를 포함할 수 있다. 네비게이션 서비스는 운전자를 현재 위치로부터 목적지로 안내하는 경로를 생성하거나 아니면 이를 네비게이션 서버로부터 수신한다. 한 예로서, 상기 경로는 단계들의 시퀀스를 포함하며, 상기 단계들 각각은 경로 세그먼트(예를 들어, 도로의 이름 또는 번호, 거리, 이동 시간, 제한 속도) 및 다음 경로 세그먼트에 접근하기 위한 기동(예컨대, 좌회전, 오른쪽으로 병합, 직진)을 기술한다. 컴패니언 어플리케이션은 네비게이션 API를 통해 네비게이션 서비스 어플리케이션으로부터 경로를 검색하고, 상기 네비게이션 데이터를 헤드 유닛에 의해 지원되는 포맷으로 변환하고, 이를 예컨대단일 메시지 또는 메시지들의 시퀀스를 통해 헤드 유닛에 제공한다 .
또한, 일부 구현 예들에서, 네비게이션 API는 차량의 경로 및/또는 진행의 단계들을 설명하기 위해 헤드 유닛에 디지털 맵 이미지들의 시퀀스를 제공한다. 전술 한 바와 같이, 네비게이션 서비스 어플리케이션은 휴대용 장치의 현재 위치로부터 지정된 목적지까지의 상기 경로에 대한 설명을 수신할 수 있다. 상기 휴대용 장치는 상기 경로를 따라 목적지를 향해 이동할 때, 네비게이션 서비스 어플리케이션은 휴대용 장치가 현재 위치하고 있는 지리적 영역에 대한 맵 데이터를 요청할 수 있다. 이 맵 데이터를 사용하여, 상기 휴대용 장치는 디지털 맵 이미지를 렌더링할 수 있고, 그리고 각 단계에 대해, 예컨대상기 단계에 대응하는 지리적 영역, 상기 단계로의 천이를 위한 기동 등을 설명한다. 또한, 휴대용 장치 및/또는 차량의 관성 측정 유닛(IMU)이 차량의 현재 배향을 결정하고, 각 디지털 맵 이미지를 상기 차량의 현재의 배향과 매칭되도록 배향할 수 있다. 더욱이, 네비게이션 API는 또한, (네비게이션 서비스 어플리케이션이 퍼스널라이제이션 서버로부터 수신하는 정보를 사용하여) 퍼스널라이징된 디지털 맵 이미지를 제공할 수 있다. 상기 디지털 맵 이미지들을 더욱 퍼스널라이징하기 위해, 상기 헤드 유닛은 또한, 상세한 디지털 맵이 헤드 유닛의 성능 및 만일 원하는 경우 차량의 디자인과 매칭되도록 화면 크기, 스타일링 옵션 등을 특정할 수 있다.
일부 구현들에 따르면, 컴패니언 어플리케이션은 또한, 헤드 유닛 또는 핸들 상의 하드웨어 버튼들과 같은 그러한 차량 제어들을 상기 네비게이션 서비스 어플리케이션의 네비게이션 기능들에 매칭시킨다. 보다 상세하게, 사용자는 헤드 유닛이 네비게이션 서비스 어플리케이션에 키 누름을 간단히 보고할 수 있도록 휴대용 장치에서의 상기 매핑을 특정할 수 있다. 예컨대, 컴패니언 어플리케이션은 핸들 상의 볼륨 줄임 버튼을 상기 경로에서의 다음 단계의 상세를 요청하기 위한 다음 단계 네비게이션 기능에 맵핑할 수 있다. 컴패니언 어플리케이션은 또한, 불륨 줄임 버튼이 상기 다음 단계 기능에 맵핑되었음을 결정하고, 상기 기능을 호출하여 상기 다음 단계의 상세를 수신하도록 상기 네비게이션 API를 호출하고, 상기 다음 단계의 상세를 헤드 유닛에 제공하도록 한다. 하드웨어 버튼들은 소프트웨어를 이용하여 휴대용 장치상에 구성될 수 있기 때문에, 많은 서로 다른 타입의 차량들 및 헤드 유닛들에서 대부분의 버튼들(및 어떤 경우들에서, 노부들 또는 슬라이더 제어들)은 본 발명의 네비게이션 API와 함께 동작하도록 쉽게 구성될 수 있다.
또한, 일부 구현 예에서, 네비게이션 API는 헤드 유닛을 통한 부분적인 사용자 입력에 기초하여 지리적 제안을 생성함으로써 차량 제어와의 인터렉션 시간을 감소시키는 자동 완성 기능을 지원한다. 예컨대, 운전자가 차량의 헤드 유닛 상의 터치 스크린을 사용하여 한 위치에서 키를 누르기 시작할 때, 휴대용 장치는 위치 제안을 생성하고 이 제안을 디스플레이를 위해 상기 헤드 유닛에 전송한다. 보다 구체적으로, 상기 헤드 유닛은 상기 컴패니언 어플리케이션에 상기 부분적인 사용자 입력(예를 들어, 하나 이상의 키 누름 이벤트)을 보고하는바, 상기 컴패니언 어플리케이션은 상기 부분적인 사용자 입력을 네비게이션 서비스 어플리케이션에 제공하도록 네비게이션 API를 호출하고 상기 네비게이션 서비스 어플리케이션은 제안 서버와 접촉한다.
하나 이상의 제안들이 도착하면, 네비게이션 서비스 어플리케이션은 헤드 유닛에 전달을 위해 컴패니언 어플리케이션에 상기 제안들을 제공한다. 상기 제안들은 또한, 제안들을 할 때 만일 사용자의 프로파일에 액세스하도록 네비게이션 서비스 어플리케이션을 구성하는 경우 상기 제안들은 또한 퍼스널라이제이션될 수 있다. 따라서, 예컨대, 운전자가 목적지 지점(예컨대, M)의 첫 글자를 타이핑할 때, 상기 헤드 유닛은 상기 글자로 시작하는, 사용자에 의해 최근 방문된 제안된 위치를 디스플레이한다.
예시적인 환경 및 시스템 아키텍처
도 1을 참조하면, 위에서 설명한 기술들이 구현될 수 있는 예시적인 환경(1)은 휴대용 장치(10)와, 그리고 헤드 유닛(14)을 갖는 차량(12)을 포함한다. 상기 휴대용 장치(10)는 스마트 폰, 태블릿, 웨어러블 컴퓨터 등으로 될 수 있다. 상기 휴대용 장치(10)는 유선(예컨대, 범용 직렬 버스 (USB)) 또는 무선 (예컨대, 블루투스, 와이파이 다이렉트) 일 수 있는 통신 링크(16)를 통해 차량(12)의 헤드 유닛 (14)과 통신한다. 상기 휴대용 장치(10)는 또한, 이러한 4세대 또는 3 세대 셀룰러 네트워크(각각 4G 또는 3G) 같은 그러한 무선 통신 네트워크를 통해 다양한 컨텐츠 제공자, 서버 등과 통신할 수 있다.
동작시, 상기 휴대용 장치(10)는 헤드 유닛(14)에 디지털 맵 이미지, 텍스트, 오디오를 포함할 수 있는 네비게이션에 관한 정보를 제공한다. 헤드 유닛(14)은 디스플레이(18)를 통해 이 정보를 디스플레이 한다. 일부 실시 예들에서, 디스플레이(18)는 터치 스크린이며, 목적지의 이름 또는 어드레스, 출발지의 지점 등을 포함 할 수 있는 텍스트 입력을 입력하기 위한 소프트웨어 키보드를 포함한다. 디스플레이(18)의 또 다른 형태는 예컨대 회전 제어기와 같은 그러한 비 터치 입력 장치 또는 별도의 터치 패드와 함께 제공되는 비교적 정교한 스크린으로서 제공될 수 있다. 일반적으로, 디스플레이(18)는 텍스트 및 이미지 둘 다를 디스플레이 할 필요는 없다. 다른 차량의 헤드 유닛은 예컨대, 하나 이상의 라인 상에 영숫자 문자를 표시만 할 수 있는 간단한 디스플레이를 포함할 수 있다.
헤드 유닛(14)은 버튼, 노브 등과 같은 그러한 하드웨어 입력 제어들을 포함 할 수 있다. 이들 제어들은 차량(12)의 헤드 유닛(14) 또는 다른 장소에 배치될 수 있다. 예를 들어, 도 1의 차량(12)은 헤드 유닛(14)은 물론 이 헤드 유닛(14)에 통신가능하게 연결된 핸들(22)에 네비게이션 제어들(20)을 포함한다. 제어들(20, 22)은 이하에서 상세히 설명하는 바와 같이 휴대용 장치(10)상의 다양한 네비게이션 제어 기능들에 매핑될 수 있다. 일부 구현들에서, 제어들(20, 22)은 또한 영숫자 문자들을 입력하는데 사용될 수 있다.
차량(12)은 또한, 예컨대, 마이크로폰(24) 및 스피커(26)와 같은 오디오 입력 및 출력 컴포넌트를 포함할 수 있다. 하드웨어 제어부(20, 22)와 마찬가지로, 마이크로폰(24) 및 스피커(26)는 차량(12)의 헤드 유닛(14)이나 다른 곳에 직접 배치될 수 있다.
휴대용 장치(10)와 헤드 유닛(14)의 구현 예는 도 2를 참조하여 설명한다. 전술한 바와 같이, 헤드 유닛(14)은 디스플레이 유닛(18), 하드웨어 제어들(20, 22), 오디오 입력 유닛(24), 오디오 출력 유닛(26)을 포함한다. 헤드 유닛 (14)은 또한, 프로세서(25), 하나 이상의 센서(28) 세트 및 하나 이상의 단거리 통신 유닛(30B)을 포함할 수 있다.
센서(28) 세트는 예컨대, 헤드 유닛(14)이 설치된 차량의 현재 위치를 결정하기 위한 GPS 모듈과; 차량의 속도, 가속도 및 현재 배향을 측정하기 위한 관성 측정 유닛(IMU)과, 차량의 고도를 결정하기 위한 바로미터 등을 포함할 수 있다. 비록 도 2는 센서 세트(28)가 헤드 유닛(14) 내부에 있는 것으로 도시하지만, 이 센서(28) 세트는 헤드 유닛(14)의 필수 컴포넌트들일 필요는 없음이 주목되어야 한다. 오히려, 차량은 다양한 위치에서 그 어떤 수의 센서를 포함할 수 있으며, 헤드 유닛(14)은 동작시 이들 센서로부터의 데이터를 수신할 수 있다.
단거리 통신 유닛(30B)은 헤드 유닛(14)이 상기 휴대용 장치(10)와 통신할 수 있게 한다. 단거리 통신 유닛(30B)은 USB, 블루투스, Wi-Fi Direct, NFC 등의 유선 또는 무선 통신을 지원할 수 있다.
구현에 따라서, 프로세서(25)는 헤드 유닛(14)의 기능을 구현하는 컴퓨터-판독 메모리(미도시) 또는 주문형 반도체(ASIC)에 저장된 명령어들을 실행하는 범용 프로세서 일 수 있다. 어떤 경우에, 상기 프로세서(25)는 헤드 유닛(14)으로부터 휴대용 장치(10)로의 메시지들을 포맷하고, 휴대용 장치(10)로부터의 메시지들을 수신 및 처리하고, 디스플레이(18)를 통해 맵 이미지들을 디스플레이하고, 오디오 출력(26)을 통해 오디오 메시지들을 플레이백 하는 등을 동작을 행할 수 있다.
마찬가지로, 휴대용 장치(10)는 헤드 유닛(14)과 통신하기 위한 단거리 통신유닛(30A)을 포함할 수 있다. 유닛(3B)과 마찬가지로, 단거리 통신 유닛(30A)은 USB, 블루투스, Wi-Fi Direct 등과 같은 하나 이상의 통신 방식을 지원할 수 있다. 휴대용 장치(10)는 또한, 하나 이상의 프로세서 혹은 CPU(34)와, GPS 모듈(36)과, 메모리(38)와, 그리고, 3G 셀룰러 네트워크, 4G 셀룰러 네트워크, 또는 임의의 다른 적절한 네트워크를 통해 데이터를 송 수신하는 셀룰러 통신 유닛(50)을 포함한다. 휴대용 장치(10)는 예컨대 그래픽 프로세싱 유닛(GPU)과 같은 추가적인 컴포넌트들을 포함할 수 있다. 일반적으로, 휴대용 장치(10)는 추가적인 센서(예컨대, 가속도계, 자이로미터)를 포함할 수 있으며, 역으로 휴대용 장치(10)는 헤드 유닛 (14)에 의해 공급되는 센서 데이터에 의존할 수 있다. 하나의 구현에서, 실시간 네비게이션 동안 정확도를 향상시키기 위해, 휴대용 장치(10)는 GPS 모듈(36)의 출력보다는 헤드 유닛(14)에 의해 공급되는 위치 데이터에 의존한다.
메모리(38)는 예컨대 콘택트(40)와, 사용자의 다른 개인 데이터를 저장할 수 있다. 도 2에 도시된 바와 같이. 이 메모리는 또한, 운영 체제(42), 동작시 네비게이션 API(46)를 호출하는 컴패니언 어플리케이션(44), 및 네비게이션 서비스 어플리케이션(48)의 명령들을 저장할 수 있다. 소프트웨어 컴포넌트들(42, 44 및 48)은 컴파일링된 언어들 및/또는 실시간으로 해석될 수 있는 임의의 적합한 프로그래밍 언어의 명령어들을 포함할 수 있다. 어떤 경우에, 소프트웨어 컴포넌트 (42, 44 및 48)는 하나 이상의 프로세서(34)에서 실행된다.
휴대용 장치(10)의 일부 실시 예들에서, 컴패니언 어플리케이션(44) 및 네비게이션 서비스 어플리케이션(48)은 별도의 프로세스 또는 태스크로서 실행된다. 어플리케이션(44, 48)은 운영체제(42)에 의해 제공되는 프로세스 간 통신(IPC) 방식을 사용하여 통신할 수 있다. 일 구현에서, 네비게이션 서비스 어플리케이션(48)은 운영 체제(42)에서의 서비스로서 혹은 이와는 달리 고유한 컴포넌트(native component)로서 제공된다. 다른 구현에서, 네비게이션 서비스 어플리케이션(48)은 운영체제(42)와 호환 가능하지만, 가능하게는 다른 소프트웨어 제공자에 의해 운영 체제(42)로부터 개별적으로 제공되는 어플리케이션이다.
또한, 휴대용 장치(10)의 다른 실시 예들에서, 네비게이션 서비스 어플리케이션(48)의 기능은 네비게이션 API(46)를 통해 액세스 가능한 정적 라이브러리로서 제공될 수 있다. 즉, 네비게이션 서비스 어플리케이션(48)의 일부 또는 모든 기능은 컴패니언 어플리케이션(44)의 일부로서 수행될 수 있다. 보다 일반적으로, 네비게이션 API(46)는 현재 당 업계에 공지된 것들을 포함하는 임의의 적절한 소프트웨어 아키텍처 및 통신 방식을 이용하여 휴대용 장치(10)의 네비게이션 서비스에의 액세스를 컴패니언 어플리케이션(44)에 제공한다.
네비게이션 API(46)는 일반적으로 서로 다른 각각의 운영체제의 서로 다른 버전으로 제공될 수 있다. 예컨대, 휴대용 장치(10)의 메이커는 Androdi™ 플랫폼용 네비게이션 API(46)을 포함하는 SDK (Software Development Kit) 및 iOS™ 플랫폼용의 또 하나의 SDK 등일 수 있다.
전술한 바와 같이, 헤드 유닛(14)이 지원하거나 혹은 그의 기능을 확장하기 위해 헤드 유닛(14)에 충분한 액세스를 갖는 메시징 방식에 대한 지식을 갖는 개발자는 컴패니언 어플리케이션(44)을 개발하고 네비게이션 API(46)를 통해 휴대용 장치(10)의 네비게이션 서비스에 액세스할 수 있다. 즉, 네비게이션 서비스 어플리케이션(48)은, 외부 장치의 요건에 매칭하도록 네비게이션 서비스 어플리케이션(48)의 기능에 대해 어떤 수정을 행함이 없이도, 외부 장치(이 경우에서는 헤드 유닛(14))에 네비게이션 데이터를 제공할 수 있다.
명확성을 위해, 도 3은 상기 휴대용 장치(10)가 헤드 유닛(14)을 통해 제시된 사용자 요청에 응답하여 네비게이션 데이터를 획득하도록 동작할 수 있는 예시적인 통신 시스템을 도시한다. 설명의 편의를 위해, 도 3에서는 상기 휴대용 장치(10)와 헤드 유닛(14)이 간략하게 도시되어있다.
상기 휴대용 장치(10)는 장거리 무선 통신 링크 (예컨대, 셀룰러 링크)를 통해 인터넷과 같은 광역 통신망(52)에 대한 액세스를 갖는다. 다시 도 2를 참조하면, 휴대용 장치(10)는 셀룰러 통신 유닛(50)을 통해 통신 네트워크(52)에 액세스 할 수 있다. 도 3의 예시적인 구성에서, 휴대용 장치(10)는 네비게이션 데이터 및 맵 데이터를 제공하는 네비게이션 서버(54)와, 부분적인 사용자 입력에 기초하여 제안들을 생성하는 제안 서버(56)와, 그리고 네비게이션 서버(54)와의 사용자 인터액션들 및 다른 팩터들에 따라 퍼스널라이제이션 데이터를 제공하는 퍼스널라이제이션 서버에 액세스할 수 있다.
일부 구현 예들에서, 컴패니언 서버(60)는 헤드 유닛(14)에 의한 사용을 위해 네비게이션 데이터를 직접 포맷한다. 특히, 휴대용 장치(10)는 헤드 유닛(14) 과 컴패니언 서버(60) 사이에 네비게이션 데이터에 대한 통신 경로를 확립하여, 컴패니언 서버(60) 및/또는 네비게이션 서버(54)가 헤드 유닛(14)에 직접 네비게이션 데이터를 제공할 수 있다.
보다 일반적으로, 휴대용 장치(10)는 어떤 개수의 적합한 서버들과 통신할 수 있다. 예를 들어, 도 3에 묘사된 통신 네트워크의 다른 실시예에 있어서, 별개의 맵 서버가 (예를 들어, 벡터 그래픽 포맷으로) 맵 데이터를 제공하는 동안 네비게이션 서버(54)는 안내들 및 기타 네비게이션 데이터를 제공하고, 트래픽 데이터 서버는 상기 경로를 따르는 트래픽 업데이트들을 제공하며, 날씨 데이터 서버는 날씨 데이터 및/또는 알림들을 제공한다.
차량의 헤드 유닛에 네비게이션 데이터를 제공하는 것
예시적인 시나리오에 따르면, 운전자는 상기 사용자의 차량의 헤드 유닛에 적절한 버튼들을 누르고 상기 목적지를 입력함으로써 네비게이션 정보를 요청한다. 상기 헤드 유닛은 상기 휴대용 장치에 상기 요청을 제공하며, 상기 휴대용 장치는 또한 네비게이션 서버로부터 네비게이션 데이터를 요청 및 수신한다. 상기 휴대용 장치는 이후에 디스플레이 및/또는 오디오 재생을 위해 상기 헤드 유닛에 네비게이션 데이터를 제공한다.
추가적인 명료성을 위해, 이러한 시나리오의 메시지 시퀀스 도면(400)이 도 4에 묘사된다. 각각의 수직 라인은 대응하는 컴포넌트의 타임라인을 개략적으로 나타내며, 상기 페이지의 보다 아래에 묘사된 이벤트들은 상기 페이지의 보다 위에 묘사된 이벤트들 후에 발생한다. 상기 컴포넌트들 간의 정보의 흐름은 화살표들에 의해 나타내진다. 서로 다른 상황들에서의 화살표들은 서로 다른 물리적 장치들 간에 전파되는 메시지, 동일한 장치 상에서 실행되는 태스크들 간에 전파되는 메시지, 하나의 소프트웨어 레이어로부터 다른 소프트웨어 레이어로의 기능 호출(, 트리거 이벤트에 응답하여 호출되는 콜-백 기능 등을 나타낸다. 더욱이, 일부 경우들에 있어서 단일 화살표는 기능 호출들 및/또는 메시지들의 시퀀스를 나타낸다.
사용자는 "233 남쪽 웨커 드라이브"와 같은 목적지(D)를 포함하는 입력(402)을 상기 헤드 유닛(14)에 제출한다. 상기 사용자는 또한 출발지점(origin, O)을 명시하거나, 상기 헤드 유닛(14)이 자동적으로 상기 현재 위치와 상기 출발지점을 관련지을 수 있다. 상기 헤드 유닛(14)에서 이용가능한 하드웨어 및 소프트웨어에 따라, 상기 사용자는 버튼들, 손잡이들(knobs), 음성, 터치스크린 등을 이용하여 상기 입력(402)을 제출한다. 상기 헤드 유닛(14)은 상기 사용자 입력을 프로세싱하고 상기 휴대용 장치(10) 상에서 실행되는 컴패니언 어플리케이션(44)에 네비게이션 요청 이벤트(404)를 전송한다. 만약 바람직하다면, 상기 네비게이션 요청 이벤트(404)는 상기 헤드 유닛(14)과 상기 헤드 유닛(14)의 외부에 있는 장치들 간의 통신들을 위해 명시된 전용 통신 프로토콜에 따르는 메시지일 수 있다. 도 1 및 도 2를 다시 참조하면, 상기 헤드 유닛(14)은 단거리 통신 링크(16)를 통해 상기 네비게이션 요청 이벤트(404)를 전송할 수 있다.
상기 컴패니언 어플리케이션(44)은 네비게이션 요청 이벤트(404)를 수신하고 상기 네비게이션 API(46)를 호출한다. 보다 구체적으로, 상기 네비게이션 요청 이벤트(404)는 상기 API(46)의 포맷에 따른 네비게이션 요청(405)을 생성한다. 네비게이션 요청(405)을 생성하는 것의 일부로서, 상기 컴패니언 어플리케이션(44)은 상기 목적지를 명시하기 위한 기능과, 네비게이션 이벤트들을 보고하는 선호되는 방식을 명시하기 위한 기능 (예를 들어, 임박한 턴(upcoming turn), 경로 상 진행 확인), 센서들의 이용을 구성하기 위한 기능 (예를 들어, 상기 헤드 유닛(14) 또는 상기 휴대용 장치(10)의 GPS 기록들을 이용, 상기 차량(12)의 IMU 기록들을 이용하는 등) 등을 호출한다. 이러한 기능들 각각은 네비게이션 API(46)에 대한 구문(syntax) 및 파라미터들(parameters)의 리스트를 가질 수 있다. API별 프로토타입들(API-specific prototypes)을 이용하여 기능들을 호출하는 것에 추가적으로 또는 대안적으로, 상기 컴패니언 어플리케이션(44)은 상기 네비게이션(46)에 의해 노출된 데이터 구조들을 채울(populate) 수 있다.
어떤 의미에서는, 상기 컴패니언 어플리케이션(44)은 상기 사용자를 특정한 목적지로 안내하기 위한 상기 요청을 상기 헤드 유닛(14)의 포맷으로부터 상기 네비게이션 API의 포맷으로 변환(translate)하며, 보다 일반적으로는, 상기 휴대용 장치(10) 상에서 이용가능한 네비게이션 서비스의 포맷으로 전환한다. 상기 네비게이션 서비스는 그러므로 다양한 차량 제조자들의 헤드 유닛들과 통신하기 위한 다수의 프로토콜들을 지원할 필요가 없다.
상기 컴패니언 어플리케이션(44)으로부터 상기 네비게이션 서비스 어플리케이션(48)으로 상기 요청을 전송하기 전에, 상기 네비게이션 API(46)은 일부 구현들에서 상기 컴패니언 어플리케이션(44)의 인증을 수행한다. 보다 구체적으로는, 상기 네비게이션 API(46)는 상기 휴대용 장치(10)의 네비게이션 서비스로부터 네비게이션 데이터를 요청하기 위해 상기 컴패니언 어플리케이션(44)이 인증되는지 여부를 결정한다. 상기 네비게이션 API(46)는 인증 키를 수신하고, 예를 들어, 상기 인증 키가 인증 서버(도 1 내지 도 3에 도시되지 않음)에 의해 검증(verify)되도록 요청한다.
다음으로, 상기 네비게이션 API(46)는 상기 네비게이션 서비스 어플리케이션(48)에 네비게이션 요청 메시지(406)를 통한 상기 요청을 통지한다. 이를 위하여, 어떤 적합한 IPC 방식이 이용될 수 있다 (또는, 만약 상기 컴포넌트들(46 및 48)이 동일한 태스크 내에서 동작한다면, 프로세스 내 통신 방식(intra-process communication scheme) 또는 어떤 다른 적합한 통지 메커니즘이 이용될 수 있다).
네비게이션 서비스 어플리케이션(48)은 이후에 장거리 무선 통신 링크 및 궁극적으로는 도 3에 관해 논의된 네트워크(52)와 같은 무선 통신 네트워크를 통해 네비게이션 서버(54)에 네비게이션 요청(408)을 포맷화 및 전송한다. 일반적으로 말해서, 상기 네비게이션 요청(408)은 상기 사용자가 상기 휴대용 장치(10)를 통해 직접 네비게이션 기능들을 호출할 때 상기 네비게이션 서비스 어플리케이션(48)이 상기 네비게이션 서버(54)에 전송하는 네비게이션 요청과 유사할 수 있다. 다시 말해서, 상기 휴대용 장치(10) 및 상기 헤드 유닛(14)은 일부 구현들에서 단일 노드로서 상기 네비게이션 서버(54)에 제시된다. 일부 구현들에서, 상기 네비게이션 요청(408)은 (상기 네비게이션 서버(54)와 클라이언트 장치들 간의 통신들을 보다 효율적으로 만들고 비인가된 액세스의 확률을 감소시키도록) 상기 네비게이션 서버(54)의 오퍼레이터에 의해 정의되는 전용 프로토콜에 따른다.
상기 네비게이션 요청(408)에 응답하여, 상기 네비게이션 서버(54)는 안내들(410)을 제공한다. 도 4의 예시에서, 상기 안내들(410)은 N개의 단계들의 시퀀스인 S1, S2, ... , SN를 설명하는 데이터를 포함한다. 각각의 단계의 설명은 경로세그먼트 및 다음 경로 세그먼트로 천이하기 위한 기동을 표시할 수 있다. 상기 안내들(410)은 또한 추정된 도착시간, 상기 목적지에 대한 시간 및/또는 거리, (단계 각각에 대한) 상기 다음 경로 세그먼트에 대한 시간 및/또는 거리, 현재 트래픽 상황들의 설명 등을 포함한다. 상기 네비게이션 서버(54)는 상기 장거리 통신 링크를 통해 메시지 또는 메시지들의 시퀀스의 형태로 상기 네비게이션 서비스 어플리케이션(48)에 상기 안내들(410)을 전송한다. 설명의 편의를 위해서, 도 4는 상기 안내들(410)을 네비게이션 세션의 시작에서만 상기 네비게이션 어플리케이션(48)에 전송되는 단일의 메시지로서 묘사한다. 하지만, 다른 구현들에 따른 상기 네비게이션 어플리케이션(48) 및 상기 네비게이션 서버(54)는 상기 휴대용 장치(10)가 상기 목적지를 향해 진행함에 따라 상기 네비게이션 세션의 나중 동안에 경로 업데이트들 및 경로 수정들과 같은 추가 정보를 교환할 수 있다.
도 4를 계속 참조하면, 상기 네비게이션 서비스 어플리케이션(48)은 상기 안내(410)를 수신하고 , 예를 들어, 상기 컴패니언 어플리케이션(44)에 의해 이전에 설정된 콜-백 기능일 수 있는, 메시지(412)의 형태로 상기 컴패니언 어플리케이션(44)에 제1 단계 S1를 제공한다. 상기 네비게이션 서비스 어플리케이션(48)은 일반적으로 상기 네비게이션 API(46)를 통해 상기 컴패니언 어플리케이션(44)에 데이터를 전송할 수 있다.
통상적인 시나리오에서, 상기 메시지(412)는 영숫자 문자들로 구성된 텍스트를 포함한다. 하지만, 상기 네비게이션 서비스 어플리케이션(48)은 일부 경우들에 있어서 상기 단계의 설명에 기초하여 오디오 알림을 생성하고 상기 컴패니언 어플리케이션(44)에 상기 오디오 알림을 디지털 포맷(예를 들어, WAV, MP3)으로 제공한다. 대안적으로, 텍스트로부터 오디오로의 변환은 상기 컴패니언 어플리케이션(44)에 구현될 수 있다. 더욱이, 네비게이션 안내들의 단계의 설명은 도 6 내지 도 8을 참조로 하여 아래에 보다 상세히 설명되는 바와 같이, 디지털 맵 이미지를 포함할 수 있다.
어떤 경우에 있어서든지, 상기 컴패니언 어플리케이션(44)은 상기 제1 단계 S1의 수신된 설명을 상기 헤드 유닛(14)에 의해 지원되는 포맷으로 변환하고 상기 단거리 통신 링크를 통해 상기 헤드 유닛(14)에 네비게이션 데이터 메시지(415a)를 전송한다. 상기 헤드 유닛(14)은 어떤 적합한 방식(예를 들어, 디스플레이, 오디오 재생)으로든지 상기 운전자에게 상기 제1 정보를 제공한다.
도 4의 예시 시나리오의 운전자는 상기 안내들의 다음의 설명을 요청하기 위해 핸들 상의 특정한 키를 누른다 (또는 다른 제어를 작동시킨다). 상기 헤드 유닛이 입력 이벤트(416)를 검출한 후에, 상기 헤드 유닛(14)은 상기 컴패니언 어플리케이션(44)에 다음 단계 트리거 통지(418)를 전송하고, 상기 컴패니언 어플리케이션(44)은 또한 상기 다음 단계(419)에 대한 요청을 제출하기 위해 상기 네비게이션 API(46)를 호출한다. 상기 네비게이션 API(46)는 상기 네비게이션 서비스 어플리케이션(48)에 다음 단계 요청 메시지(410)를 전송한다. 위에 논의된 상기 설명(412)과 유사하게, 상기 네비게이션 어플리케이션(48)은 포맷 변환 및 네비게이션 데이터 메시지(415b)의 형태로 상기 헤드 유닛(14)에 전송하기 위해서 상기 컴패니언 어플리케이션(44)에 상기 다음 단계(422)의 설명을 제공한다. 예를 들어, 상기 사용자가 상기 목적지에 도달하거나 상기 네비게이션 세션을 취소할 때까지 상기 시나리오는 이러한 방식으로 계속될 수 있다.
다른 구현에서, 상기 헤드 유닛(14)은 상기 차량(12)의 현재 위치를 분석하면 자동적으로 상기 다음 단계 트리거 메시지(418)를 생성한다. 다른 구현에 있어서, 상기 네비게이션 어플리케이션(48)은 상기 휴대용 장치(10)가 상기 운전자가 경로 상에 머무르기 위해서 기동을 해야 하는 지점에 접근함을 검출함에 응답하여 상기 다음 단계(422)의 설명을 자동적으로 생성한다. 또 다른 구현에 있어서, 상기 헤드 유닛(14)이 단계들의 전체 시퀀스를 저장할 능력이 있다면, 상기 네비게이션 어플리케이션(48)은 상기 네비게이션 서버(54)로부터 상기 안내들(410)을 수신하면 상기 헤드 유닛(14)에 한번에 상기 안내들의 모든 단계들을 제공한다.
이제 도 5를 참조하면, 예시 방법(500)은 네비게이션 API (예를 들어, 상기 네비게이션 API(46))의 기능 중 일부를 구현한다. 상기 방법(500)은, 예를 들어, 컴퓨터 판독가능 메모리 상에 저장되고 상기 휴대용 장치(10)의 하나 이상의 프로세서들 상에서 실행가능한 명령어들의 세트일 수 있다.
상기 방법은 블럭(502)에서 시작되며, 상기 블럭(502)에서 상기 목적지의 식별자는 상기 컴패니언 어플리케이션으로부터 수신된다. 상기 식별자는, 예를 들어, 완전한 주소(예를 들어, "미국 일리노이주 시카고 남쪽 웨커 드라이브 233") 또는 지리공간 검색 용어(geospatial search term)(예를 들어, "시카고 내의 시어스 타워(Sears tower)")를 포함한다. 다음으로, 블럭(504)에서, 상기 목적지의 식별자는 소프트웨어 컴포넌트- 상기 소프트웨어 컴포넌트를 통해 상기 휴대용 장치들의 네비게이션 서비스들이 액세스 가능함-에 제공된다. 예를 들어, 상기 식별자는 위에 논의된 상기 네비게이션 서비스 어플리케이션(48)에 제공된다.
블럭(506)에서, 상기 네비게이션 데이터는 상기 네비게이션 서비스 어플리케이션(48) 또는 그렇지 않으면 상기 휴대용 장치의 네비게이션 서비스로부터 수신된다. 블럭(508)에서, 상기 네비게이션 데이터는 단거리 통신 링크를 통해 상기 헤드 유닛(14)에 전송하기 위해 상기 컴패니언 어플리케이션에 제공된다. 상기 방법은 블럭(508) 후에 완료된다.
일부 구현들에서, 상기 네비게이션 서비스 어플리케이션은 컴패니언 어플리케이션을 이용하지 않고 상기 헤드 유닛과 직접 통신한다. 보다 구체적으로는, 상기 네비게이션 서비스 어플리케이션 및 상기 헤드 유닛은 구체적으로 상기 네비게이션 서비스 어플리케이션과 차량들의 헤드 유닛 간에 네비게이션 데이터 및 관련된 정보를 통신하기 위해 정의된 데이터 포맷에 따르는 메시지들을 교환한다. 이러한 데이터 포맷은 다수의 차량 제조자들과 공유되는 오픈 포맷(open format)일 수 있다. 상기 헤드 유닛 또는 상기 차량에 대한 포맷으로 상기 헤드 유닛에 네비게이션 데이터를 전송할 필요가 없기 때문에, 상기 네비게이션 서비스 어플리케이션은 네비게이션 데이터를 상기 오픈 포맷에 따르는 메시지들로 쉽게(simply) 변환하고 이러한 메시지들을 상기 단거리 통신 링크를 통해 전송한다. 상기 네비게이션 서비스 어플리케이션은 이러한 경우에 있어서 상기 헤드 유닛에 대한 명령어들을 실행 (예를 들어, 상기 차량 및/또는 상기 헤드 유닛의 제조자가 제공하는 API를 호출)할 필요가 없다. 더욱이, 선택적 개인화 외에도, 상기 네비게이션 서비스 어플리케이션은 상기 헤드 유닛에 네비게이션 데이터를 전송할 수 있기 위해서 상기 헤드 유닛의 어떤 특정한 파라미터들을 알 필요가 없다. 상기 네비게이션 서비스 어플리케이션은 상기 휴대용 장치의 운영 체제에 고유한 것일 수 있다.
차량의 헤드 유닛에 디지털 맵 이미지들의 제공
위에 논의된 바와 같이, 상기 네비게이션 서비스 어플리케이션(48)은 경로를 설명하는 단계들의 시퀀스로서 상기 요청된 안내들을 수신한다. 각각의 단계는 하나 이상의 기동들 (예를 들어, "메인 스트리트에서 왼쪽으로 턴," "상기 교차로를 통해 진행," "경로66으로 합병(merge)")을 포함한다. 일부 구현들에 있어서, 상기 헤드 유닛(14)은 또한 기동을 위한 디지털 맵 이미지를 수신한다. 상기 디지털 맵 이미지는 상기 차량의 현재 배향(orientation)과 매칭되도록 배향되어서, 상기 맵의 상부가 진북(true north)이 아닌 상기 차량이 현재 마주하고 있는 방향에 대응되도록 한다. 더욱이, 상기 디지털 맵 이미지는 상기 사용자가 이전에 방문했던 비즈니스 또는 다른 관심 지점(PO, point of interest)과 같은 상기 사용자의 계정에 관한 하나 이상의 위치들을 포함하도록 개인화될 수 있다. 또한 더욱이, 상기 디지털 맵 이미지는 상기 헤드 유닛의 스타일과 매칭되도록 개인화될 수 있다.
이러한 기법들에 대한 하나의 대안으로서, 상기 휴대용 장치(10)는 상기 휴대용 장치(10)의 새로운 위치에 따라 상기 디지털 맵이 재-렌더링됨에 따라 상기 헤드 유닛(14)에 이미지들을 계속적으로 내보낸다(export). 다시 말해서, 상기 휴대용 장치(10) 상에 렌더링되는 그래픽 콘텐츠는 상기 휴대용 장치(10)에 미러링된다. 하지만, 상기 미러링 방식은 대량의 대역폭을 요구하고, 상기 휴대용 장치(10)상의 배터리를 빠르게 고갈시키며, 상기 헤드 유닛(14)이 빠른 연속의 이미지들을 디스플레이할 능력이 있을 것을 요구한다.
도 6의 예시적 시나리오(600)에 따르면, 상기 사용자가 상기 경로의 다음 단계에 대한 명령어들을 보고 그리고/또는 듣기를 원함을 표시하는 제어을 작동시킬 때, 입력 이벤트(602)가 생성된다. 예를 들어, 상기 입력(602)은 상기 입력 이벤트(416)에 대응하며, 이에 따라 도 6에 설명된 기법들은 도 4의 시나리오에서 구현될 수 있다.
상기 입력 이벤트(602)에 응답하여, 상기 헤드 유닛(14)은 상기 단거리 통신 링크를 통해 상기 컴패니언 어플리케이션(44)에 다음 단계 트리거 이벤트(604)를 전송한다. 상기 컴패니언 어플리케이션(44)은 이후에 상기 네비게이션 API(46)를 호출하고, 상기 네비게이션 API(46)는 상기 다음 단계 트리거 이벤트(604)를 상기 네비게이션 API(46)에 의해 인식되는 데이터 구조 및/또는 기능 호출(function call)로 변환하는 것을 포함한다. 상기 네비게이션 API(46)는 다음 단계 요청 메시지(606)를 통해 상기 네비게이션 어플리케이션(48)에 통지한다.
이러한 예시적 시나리오에 있어서, 상기 컴패니언 어플리케이션(44)에 다음 단계의 설명을 제공하기 전에 (도 4의 메시지(422) 참조), 상기 네비게이션 서비스 어플리케이션(48)은 상기 사용자의 선호들(개인화 요청(608))에 관해 상기 개인화 서버(58)에 질의하고, 이에 응답하여 개인화 데이터(610)를 수신하며, 상기 헤드 유닛(14)을 통해 디스플레이하기 위한 상기 기동에 대한 디지털 맵 이미지를 생성한다. 일반적으로, 상기 네비게이션 서비스 어플리케이션(48)은 개인화 서버에 접촉할 필요가 없으며, 상기 네비게이션 서비스 어플리케이션(48)은 일부 구현들에서 개인화 없이 상기 디지털 맵 이미지를 생성한다.
디지털 맵 이미지들을 생성할 때, 상기 네비게이션 서비스 어플리케이션(48)은, 예를 들어, 벡터 그래픽 포맷으로 정의된 맵 요소들의 세트 상에서 동작한다. 일반적으로 말해서, 벡터 그래픽 포맷은 기하적 모양들의 수학적 설명들에 기초한다. 상기 네비게이션 서비스 어플리케이션(48)은 다양한 지리적 영역들에 대해서 도로들, 빌딩들, 많은 양의 물(bodies of water), 공원들 등과 같은 다양한 맵 요소들을 명시하는 맵 데이터를 수신한다. 상기 맵 데이터는 또한 영숫자 라벨들을 포함하고, 일부 경우들에 있어서, 이미 래스터화된 이미지들(예를 들어, 비트맵 포맷으로 정의된 이미지들)을 포함한다. 상기 네비게이션 서비스 어플리케이션(48)은 상기 바람직한 배향으로 표준 포맷(예를 들어, JPEG)의 래스터 이미지들(raster images)을 생성하기 위해 맵 요소들의 벡터 기반 정의들을 해석한다.
상기 개인화 데이터(610)는, 예를 들어, (예를 들어, 상기 경로의 빈번히 방문되는 부분에 대해 보다 적은 안내들이 제공되고, 상기 사용자가 매우 친숙하지 않은 상기 경로의 부분에 대해 보다 많은 안내들이 제공되도록) 상기 사용자에 대해 보다 두드러지게 디스플레이되어야 하는 상기 경로를 따르는 장소들 (예를 들어, 커피샵들)의 표시, 상기 사용자가 이전에 방문했던 장소들의 표시, 상기 사용자가 상기 경로의 특정한 부분과 얼마나 친숙한 지의 표시 등과 같은 정보를 포함한다. 상기 네비게이션 서비스 어플리케이션(48)은 상기 개인화 데이터(610)를 고려하여 디지털 맵 이미지를 생성한다.
더욱이, 상기 네비게이션 서비스 어플리케이션(48)은 상기 헤드 유닛(14)의 파라미터들을 고려하여, 색상 방식, 선 굵기, 라벨들에서 이용되는 폰트들 등과 같은 맵 이미지의 시각적 속성들을 조정한다. 그러므로, 상기 컴패니언 어플리케이션(44)은 상기 헤드 유닛(14)에서 이용가능한 스크린의 사이즈, 해상도, 선호되는 색상 방식 등을 명시하기 위해 상기 네비게이션 API(46)의 기능을 호출한다. 이러한 방식으로, 상기 컴패니언 어플리케이션(44)은 상기 네비게이션 어플리케이션(48)으로 하여금 상기 차량의 내부의 전체적인 스타일과 매칭되는 맵 이미지들을 생성하도록 구성한다.
위에서도 표시된 바와 같이, 상기 네비게이션 서비스 어플리케이션(48)은 상기 차량이 현재 마주하고 있는 방향과 매칭되는 배향으로 각각의 맵 이미지를 생성한다. 하나의 예시적 구현에 있어서, 상기 컴패니언 어플리케이션(44)은 상기 헤드 유닛(14)으로부터 현재 배향의 표시를 수신하고 이러한 표시를 상기 네비게이션 API(46)를 통해 상기 네비게이션 서비스 어플리케이션(48)에 제공한다. 대안적으로, 상기 네비게이션 서비스 어플리케이션(48) 및/또는 상기 네비게이션 API(46)는 상기 휴대용 장치(10)의 센서들을 이용할 수 있다. 상기 헤드 유닛(14)을 통한 디스플레이를 위해 상기 네비게이션 서비스 어플리케이션(48)이 생성하는 맵 이미지는 BMP, JPEG 등과 같은 어떤 적합한 포맷으로 될 수 있다.
상기 네비게이션 서비스 어플리케이션(48)은 상기 컴패니언 어플리케이션(55)에 상기 맵 이미지에 따르는 다음 단계 데이터 (맵 이미지 메시지(612)를 갖는 다음 단계)를 제공하며, 상기 컴패니언 어플리케이션(55)은 또한 상기 헤드 유닛(14)에 이러한 데이터 (맵 데이터 메시지(614)를 갖는 네비게이션 데이터)를 제공한다.
도 7을 간략히 참조하면, 상기 헤드 유닛(14)의 디스플레이 상의 예시적인 뷰포트(700)가 설명된다. 상기 뷰포트(700)는 디지털 맵(702), 단계 설명 영역(704) 및 상세한 디지털 맵 영역(706)을 디스플레이한다. 상기 헤드 유닛(14)은 도 6을 참조로 하여 논의되는 바와 같이 요청 및 수신된 상기 데이터를 이용하여 상기 뷰포트(700)를 생성한다.
도 7에 설명된 바와 같이, 상기 디지털 맵(702)에는, 예를 들어, 사용자가 빈번히 다니는 레스토랑과 같은, 사용자 계정과 관련된 하나 이상의 위치들이 증대(augment)될 수 있다. 디지털 맵에 친숙한 랜드마크들(landmarks)을 포함시키는 것은 통상적으로 상기 사용자로 하여금 상기 상세한 디지털 맵에 제시되는 기동을 보다 잘 시각화 및 이해할 수 있도록 한다.
추가적인 명료성을 위해서, 디지털 맵 이미지들을 갖는 네비게이션 데이터를 차량의 상기 헤드 유닛에 제공하는 예시적인 방법(800)이 도 8을 참조로 하여 논의된다. 상기 방법(800)은 컴퓨터 판독가능 메모리에 저장되고 하나 또는 몇몇의 프로세서들에서 실행되는 컴퓨터에 의해 실행 가능한 명령어들의 세트로서 구현된다. 일 예시로서, 상기 방법(800)은 상기 네비게이션 API(46)에 구현될 수 있지만, 일반적으로 상기 방법(800)은 휴대용 장치 또는 어떤 적합한 컴퓨팅 장치에 구현될 수 있다.
상기 방법은 블럭(802)에서 시작되며, 상기 블럭(802)에서는 기동을 명시하는 네비게이션 데이터가 상기 네비게이션 서버로부터 수신된다. 다음으로, 블럭(804)에서, 차량(12)의 현재 위치의 표시가 수신된다. 일부 실시예들에 있어서, 상기 차량(12)의 배향은 또한 블럭(804)에서 수신된다. 블럭(806)에서, 디지털 맵은 상기 기동이 일어나는 상기 위치를 포함하는 지리적 영역에 대해 생성된다. 상기 디지털 맵은 상기 차량(12)의 현재 배향에 따라 배향될 수 있으며, 일부 경우들에 있어서, 상기 디지털 맵은 위에 논의된 바와 같이 개인화된다. 블럭(808)에서, 상기 디지털 맵은 통신 링크를 통해 상기 차량(12)의 헤드 유닛(14)에 제공된다. 상기 방법은 블럭(810) 후에 완료된다.
차량 제어들의 구성 및 매핑
일부 경우들에 있어서, 상기 휴대용 장치(10) 상의 네비게이션 서비스는, 네비게이션 버튼들 및 핸들 버튼들과 같은 상기 차량(12)의 기존 차량 제어들을 상기 네비게이션 서비스 어플리케이션(48)의 네비게이션 기능들에 매핑하기 위해 이용된다. 상기 사용자는 상기 휴대용 장치(10) 상에서 상기 매핑을 구성하여서, 상기 헤드 유닛(14)은 키 누름 이벤트들을 상기 네비게이션 서비스 어플리케이션(48)에 쉽게 보고할 수 있다. 예를 들어, 많은 차량들은 핸들, 라디오, 헤드 유닛(14) 상에 예를 들어, 볼륨 업, 볼륨 다운, 다음 트랙, 이전 트랙 등을 위한 버튼들을 구비한다. 상기 컴패니언 어플리케이션(44)은 사용자들로 하여금 차량 제어들을 다양한 네비게이션 기능들에 대해 매핑하는 것을 인에이블하기 위한 설정 기능을 지원한다. 일단 상기 매핑이 완료되면, 상기 사용자가 차량 제어들을 작동시킴에 응답하여, 상기 네비게이션 서비스 어플리케이션(48)은 상기 경로의 다음 단계를 제공, 상기 경로의 이전 단계로 복귀 등과 같은 다양한 액션들을 실행한다. 상기 버튼들이 소프트웨어를 이용하여 상기 휴대용 장치(10) 상에서 설정될 수 있기 때문에, 상기 헤드 유닛(14)은 쉽게 설정될 수 있고 심지어 쉽게 새로 장착될(retrofitted) 수 있다.
도 9는 상기 헤드 유닛(14) 상의 하드웨어 제어들을 상기 휴대용 장치(10) 상에서 네비게이션 기능들에 매핑하기 위한 도 2에 설명된 컴포넌트들 간의 정보의 예시적인 교환(900)을 설명하는 메시지 시퀀스 도면이다.
상기 사용자가 상기 네비게이션 버튼들(20) 및/또는 핸들 버튼(22)(도 1 참조)과 같은 차량 제어을 활성화한 후에, 상기 컴패니언 어플리케이션(46)은 제어 작동 이벤트(902)를 수신한다. 예를 들어, 상기 제어 작동 이벤트(902)는 상기 사용자가 상기 핸들 상의 "다음 트랙" 버튼을 누름을 표시할 수 있다. 동시에, 상기 컴패니언 어플리케이션(46)은 상기 휴대용 장치(10) 상에 사용자 인터페이스 스크린을 제시하고, 상기 사용자 인터페이스 스크린을 통해 상기 사용자는 다양한 네비게이션 기능들을 선택하고 상기 매핑을 명시할 수 있다. 상기 사용자는 상기 컴패니언 어플리케이션(46)을 통해 네비게이션 기능(예를 들어, 다음 단계)을 선택한다. 선택에 따라서는, 상기 컴패니언 어플리케이션(46)은 상기 네비게이션 API(48)(도 9의 메시지(904))를 통해 상기 네비게이션 기능에 관한 파라미터들 및 기타 정보를 획득한다.
일단 상기 컴패니언 어플리케이션(46)이 차량 제어이 작동되었음의 표시와 네비게이션이 선택되었음의 표시 둘 모두를 수신하면, 상기 컴패니언 어플리케이션(46)은 상기 차량 제어과 상기 네비게이션 기능 간의 매핑을 생성하고(액션 906), 상기 매핑을 상기 휴대용 장치(10)의 지속 메모리(persistent memory)에 저장한다(액션 908). 유사한 방식으로, 상기 컴패니언 어플리케이션(46)은 다수의 네비게이션 기능들과 다수의 차량 제어들의 매핑을 수신할 수 있다. 만약 바람직하다면, 2개 이상의 차량 제어이 동일한 네비게이션 기능에 매핑될 수 있다.
다음으로, 도 10의 메시지 시퀀스 도면(1000)은 상기 헤드 유닛(14)을 통해 수신된 사용자 입력을 상기 네비게이션 서비스 어플리케이션(48)에 제공하기 위한 도 2에 설명된 컴포넌트들 간의 정보의 예시적인 교환을 설명한다.
도 10에 설명된 바와 같이, 사용자는 상기 "다음 단계" 네비게이션 기능에 매핑된 상기 핸들 상의 "다음 트랙" 버튼과 같은 차량 제어(1002)을 작동시킨다. 상기 헤드 유닛(20)은 상기 단거리 통신 링크를 통해 제어 작동 이벤트(1004)에 키 누름 이벤트를 보고한다. 상기 컴패니언 어플리케이션(44)은 상기 제어 작동 이벤트(1004)를 수신하고, 상기 네비게이션 기능을 식별하기 위해 이전에 저장된 설정 정보를 이용하며, 상기 식별된 네비게이션 기능을 상기 네비게이션 API(46)를 통해 호출한다 (네비게이션 기능 선택(1005)). 위의 예시에 이어서, 상기 컴패니언 어플리케이션(44)은 상기 "다음 단계" 네비게이션 기능을 식별 및 호출한다.
도 10을 계속 참조하면, 상기 네비게이션 API(46)는 상기 선택을 상기 네비게이션 서비스 어플리케이션(48)에 전송하고(이벤트 1006), 상기 네비게이션 서비스 어플리케이션(48)은 상기 기능을 실행하고(이벤트 1008), 상기 네비게이션 서비스 어플리케이션(48)은 상기 선택된 네비게이션 기능을 실행한 결과들을 상기 컴패니언 어플리케이션(44)에 제공하며(이벤트 1010), 상기 결과들은 상기 헤드 유닛(20)에 전송될 것이다(이벤트 1012).
그러므로, 상기 차량 제어은 상기 컴패니언 어플리케이션의 설정 기능을 이용하여 네비게이션 기능들에 매핑된다. 일부 구현들에 있어서, 상기 컴패니언 어플리케이션(44)은 미리 결정된 규칙들(predetermined rules)의 세트에 따라 하나 이상의 차량 제어들을 상기 휴대용 장치(10)의 네비게이션 기능들에 자동적으로 매핑한다. 예를 들어, 상기 컴패니언 어플리케이션(44)은 상기 "볼륨 업" 또는 상기 "다음 트랙" 핸들 버튼을 상기 경로의 다음 단계를 제시하는 네비게이션 기능에 자동적으로 매핑하거나, "이전 트랙" 핸들 버튼을 이전의 단계를 제시하는 네비게이션 함수에 자동적으로 매핑한다.
다른 대안으로서, 상기 헤드 유닛(14)의 루틴(routine)은 차량 제어들과 네비게이션 기능들 간의 매핑을 수행 및 저장할 수 있다. 이를 위하여, 상기 헤드 유닛(14)은, 상기 컴패니언 어플리케이션(44)을 통해서 (상기 컴패니언 어플리케이션(44)은 또한 상기 네비게이션 API(46)를 호출함) 상기 네비게이션 서비스 어플리케이션(48)에 상기 이용가능한 네비게이션 기능들의 리스트를 요청할 수 있다. 대안적으로, 상기 헤드 유닛(14)은 상기 휴대용 장치(10) 상의 특정한 기능들의 이용가능성을 쉽게 가정할 수 있다. 이러한 실시예에 따르면, 상기 헤드 유닛(14)은 "미가공의(raw)" 키 누름 이벤트들보다는 네비게이션 기능들의 선택들을 상기 컴패니언 어플리케이션(44)에 보고한다.
추가적인 명료성을 위해서, 차량(12)에 설치된 외부 입력 장치로부터의 사용자 입력의 표시를 프로세싱하는 예시적인 방법이 도 11을 참조로 하여 논의된다. 이러한 방법은, 예를 들어, 상기 휴대용 장치(10)의 하나 이상의 프로세서들 상에서 실행가능한 컴퓨터에 의해 실행가능하고 컴퓨터 판독가능 메모리에 저장되는 명령어들의 세트로서 구현된다.
상기 방법은 블럭(1102)에서 시작되고, 상기 블럭(1102)에서는 상기 외부 입력 장치 상의 제어들의 세트와 네비게이션 서비스의 복수 개의 네비게이션 기능들 간의 매핑이 수신된다. 다음으로, 블럭(1104)에서, 이러한 제어들 중 하나의 제어가 작동되었다는 표시가 수신된다. 블럭(1106)에서, 상기 수신된 매핑 및 수신된 표시에 기초하여 적절한 네비게이션 기능이 상기 네비게이션 기능들의 세트 중에서 선택된다. 블럭(1108)에서, 상기 선택된 네비게이션 기능이 호출된다. 상기 실시예들 중 적어도 일부에 있어서, 상기 네비게이션 기능의 출력이 상기 외부 입력 장치에 제공된다. 상기 방법은 블럭(1108) 후에 완료된다.
부분적인 사용자 입력을 프로세싱하기 위한 상기 제안 서버의 이용
일부 실시 예들에서, 휴대용 장치(10)의 네비게이션 서비스는 또한, 단지 부분적으로 완성된 사용자 입력에 기초하여 제안들을 제공하는 "자동 완성" 기능을 지원한다. 이 기능은 사용자가 운전 동안 차량 제어들과 인터렉션해야만 하는 시간을 감소시킨다. 따라서, 예컨대, 사용자가 목적지 지점의 첫 글자 (예컨대, "M")에 대응하는 입력을 작동시킬 때, 헤드 유닛(14)은 상기 글자로 시작하는 제안된 위치를 디스플레이하거나 알린다. 자동 완성 기능은 또한, 휴대용 장치(10)로 하여금 휴대용 장치의 장거리 통신 성능뿐만 아니라 휴대용 장치(10)와 관련된 사용자 계정을 사용할 수 있도록 한다. 이러한 방식으로, 상기 제안들은 헤드 유닛(14)이 장거리 무선 서비스에 가입해야 할 필요없이 혹은 헤드 유닛(14)이 다양한 사용자 계정을 유지해야할 필요없이 사용자에 대해 퍼스널라이징될 수 있다. 따라서, 사용자는 차를 임대 및 친구로부터 차를 빌리는 등을 할 수 있으며, 퍼스널라이징된 네비게이션 데이터, 퍼스널라이징된 개인 맵 이미지 및 퍼스널라이징된 제안들에 여전히 액세스할 수 있다.
도 12는 헤드 유닛(14)에 입력 제안들을 제공하기 위한, 도 2에 도시된 컴포넌트 간의 일례의 정보 교환(1200) 도시하는 메시지 시퀀스도이다. 이 시나리오에 따르면, 헤드 유닛(14)은 시나리오에 따라 하나의 글자 또는 여러 개의 글자를 포함할 수 있는 부분적인 입력 (이벤트 1201)를 수신한다. 헤드 유닛(14)의 일부 실시 예들에서, 헤드 유닛(14)에서 실행되는 소프트웨어는 디스플레이를 통해 목적지를 요청하는 대화를 디스플레이하거나 혹은 오디오 컴포넌트를 통해 사용자 입력을 요청한다.
헤드 유닛(14)은 단거리 통신 링크를 통해 컴패니언 어플리케이션(44)에 부분적인 입력 이벤트(1202)에 전송한다. 컴패니언 어플리케이션(44)은 네비게이션 서비스 어플리케이션(48)에 의해 지원되는 포맷에 부합되도록 입력 부분을 구성하도록 네비게이션 API(46)를 호출한다. 네비게이션 API(46)는 상기 부분적인 입력 메시지를 네비게이션 어플리케이션(48)에 전송하고, 네비게이션 어플리케이션(46)은 장거리 통신 링크를 통해 상기 추천 서버(56)에 제안 요청(1206)을 전송한다. 제안 서버(56)가 하나 또는 여러 개의 제안들로 응답하면, 네비게이션 어플리케이션(48)은 컴패니언 어플리케이션(44)에 상기 제안들을 제공(제안 이벤트 1209)하고, 컴패니언 어플리케이션은 헤드 유닛(14)에 상기 제안들을 전송(제안된 문자 메시지 1210)한다. 특히, 컴패니언 어플리케이션(44)은 수신된 제안들을 헤드 유닛(14)에 의해 지원되는 포맷으로 변환할 수 있다. 이 포맷은 텍스트, 오디오 등을 특정할 수 있다.
일부 실시 예들에서, 네비게이션 프로그램 (48) 및/또는 제안 서버(56)는 휴대용 장치 (10)의 사용자 계정 및/또는 위치 히스토리에 기초하여 제안을 퍼스널라이징한다.
헤드 유닛(14)이 입력을 계속 수신할 때, 상기 프로세스는 계속 및/또는 반복된다. 예를 들어, 헤드 유닛(14)은 제 1의 부분 입력 (목적지의 첫 글자)를 컴패니언 어플리케이션(44)에 전송하고, 목적지가 사용자에 의해 확인 및 완전히 입력 될때까지 제 2의 부분 입력을 컴패니언 어플리케이션(44) 등에 전송한다.
일부 실시 예들에서, 휴대용 장치(10)는 메모리(38)에 저장된 제안들의 충분한 캐쉬를 갖고, 휴대용 장치(10)가 제안 서버(56)와 통신할 수 없을 때 자동 제안 기능이 사용된다. 이 경우에 네비게이션 서비스 어플리케이션(48)은 상기 부분적인 입력을 수신하고, 캐쉬에 저장된 제안들에 기초하여 제안 출력을 생성한다.
또한, 어떤 실시예들에서, 네비게이션 어플리케이션(48)은 헤드 유닛(14)이 임의의 입력을 수신하기 전에 제안들을 생성한다. 예를 들어, 휴대용 장치(10)와 관련된 계정은 차량(12)이 시드니에 있는 공항에 있을 때, 사용자는 일반적으로 홈 으로 운전함을 표시하는 위치 이력을 포함할 수 있다. 따라서, 네비게이션 어플리케이션(48)은 헤드 유닛(14)을 통한 사용자 작동 네비게이션 기능에 응답하여 사용자의 홈 위치를 제안할 수 있다.
추가적인 명료성을 위해, 헤드 유닛(14)을 통해 입력 제안들을 제공하는 예시적인 방법이 도 3을 참조하여 설명된다. 이 방법은 컴퓨터 실행 가능 명령들의 세트로서 구현되고, 컴퓨터 판독 가능 메모리에 저장될 수 있다. 예시적인 구현에서, 도 13의 방법은 네비게이션 API(46)에서 구현된다. 보다 일반적으로, 도 13의 방법은 휴대용 장치 또는 임의의 적절한 컴퓨팅 장치로 구현될 수 있다.
이 방법은 블록 (1302)에서 시작하며, 여기에서 부분적인 방법 사용자 입력이 제 1 통신 링크를 통해 헤드 유닛(14)으로부터 수신된다. 다음으로, 블록(1304)에서, 부분적인 사용자 입력은 제 2 통신 링크를 통해 제안 서버에 제공된다. 블록 (1306)에서, 제안 서버로부터 상기 부분적인 사용자 입력에 대응하는 제안된 입력이 제 2 통신 링크를 통해 수신된다. 블록(1308)에서, 상기 제안된 입력이 제 1 통신 링크를 통해 헤드 유닛(14)에 제공된다. 이 방법은 블록(1308) 이후에 완료된다.
추가적인 고려 사항들
다음과 같은 추가 고려 사항은 전술한 내용에 적용된다. 본 명세서 전반을 통하여, 복수의 인스턴스들이 하나의 인스턴스로 전술한 컴포넌트들, 동작들 또는 구조들을 구현할 수 있다. 비록 하나 이상의 방법들의 개별 동작들이 도시되고 개별 동작으로서 설명되었지만, 개별 동작들 중 하나 이상이 동시에 수행될 수 있고, 어떤 동작도 도시된 순서로 수행되어야 함을 요하지 않는다. 예에서 개별 컴포넌트로서 제시된 구조와 기능들은 결합된 구조 또는 컴포넌트로서 구현될 수 있다. 마찬가지로, 단일 컴포넌트로서 제시된 구조와 기능은 별개의 컴포넌트로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 본 발명의 요지의 범위 내에 속한다.
부가적으로, 특정 실시예가 로직 또는 소정 수의 컴포넌트, 모듈 또는 메커니즘을 포함하는 것으로 여기서 설명되어 있다. 모듈은 소프트웨어 모듈(예를 들어, 전송 신호로 또는 머신-가독 매체 상에 구체화된 코드) 또는 하드웨어 모듈을 구성할 수 있다. 하드웨어 모듈은 특정 동작을 수행할 수 있는 유형적 유닛이고 특정 방식으로 구성 또는 배열될 수 있다. 예시의 실시예에 있어서, 하나 이상의 컴퓨터 시스템(예를 들어, 스탠드얼론, 클라이언트 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들어, 프로세서 또는 프로세서 그룹)은 여기서 설명되는 바와 같은 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예를 들어, 어플리케이션 또는 어플리케이션 부분)에 의해 구성될 수 있다.
다양한 실시예에 있어서, 하드웨어 모듈은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 (예를 들어, 필드 프로그래밍 가능한 게이트 어레이(FPGA) 또는 어플리케이션-특정 집적 회로(ASIC)와 같은 특수-목적 프로세서로서) 영구적으로 구성되는 전용 회로 또는 로직을 포함할 수 있다. 또한 하드웨어 모듈은 특정 동작을 수행하도록 소프트웨어에 의해 일시적으로 구성되는 (예를 들어, 범용 프로세서 또는 다른 프로그래밍 가능한 프로세서 내 포함되는 바와 같은) 프로그래밍 가능한 로직 또는 회로를 포함할 수 있다. 전용 및 영구적으로 구성된 회로로 또는 (예를 들어, 소프트웨어에 의해 구성된) 일시적으로 구성된 회로로, 기계적으로 하드웨어 모듈을 구현하는 결정은 비용 및 시간을 고려하여 유도될 수 있음을 인식할 것이다.
따라서, "하드웨어"라는 용어는 엔티티가 여기서 설명된 소정 동작을 수행하기 위해 또는 소정 방식으로 동작하기 위해 물리적으로 구성되든, 영구적으로 구성되든(예를 들어, 하드와이어드) 또는 일시적으로 구성되든(예를 들어, 프로그래밍) 그러한 유형적 엔티티를 아우르는 것으로 이해되어야 한다. 하드웨어 모듈이 일시적으로 구성되는(예를 들어, 프로그래밍되는) 실시예를 고려하면, 하드웨어 모듈의 각각이 어느 일 순시에서라도 실체화 또는 구성될 필요가 없다. 예를 들어, 하드웨어 모듈이 소프트웨어를 사용하여 구성된 범용 프로세서를 포함하는 경우에, 범용 프로세서는 다른 시각에서 각자의 다른 하드웨어 모듈로서 구성될 수 있다. 따라서, 소프트웨어는 예를 들어 일 순시에서 특정 하드웨어 모듈을 구성하도록 그리고 다른 순시에서 다른 하드웨어 모듈을 구성하도록 프로세서를 구성할 수 있다.
하드웨어 및 소프트웨어 모듈은 다른 하드웨어 및/또는 소프트웨어 모듈에 정보를 제공하고 그로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈은 통신 결합되는 것으로 생각될 수 있다. 다중의 그러한 하드웨어 또는 소프트웨어 모듈이 동시에 존재하는 경우에, 통신은 하드웨어 또는 소프트웨어 모듈을 접속하는 신호 전송을 통해 (예를 들어, 적절한 회로 및 버스를 통해) 달성될 수 있다. 다중의 하드웨어 모듈 또는 소프트웨어가 서로 다른 시각에 실체화 또는 구성되는 실시예에 있어서, 그러한 하드웨어 또는 소프트웨어 모듈 사이의 통신은 예를 들어 다중 하드웨어 또는 소프트웨어 모듈이 액세스할 수 있는 메모리 구조에 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 또는 소프트웨어 모듈은 동작을 수행하고 그 동작의 출력을 그것이 통신 결합되는 메모리 장치에 저장할 수 있다. 그 후, 추후 시각에, 또 다른 하드웨어 또는 소프트웨어 모듈이 저장된 출력을 검색 및 프로세싱하기 위해 메모리 장치에 액세스할 수 있다. 또한 하드웨어 및 소프트웨어 모듈은 입력 또는 출력 장치와의 통신을 개시할 수 있고, 자원(예를 들어, 정보 모음) 상에 동작할 수 있다.
여기서 설명된 예시의 방법의 다양한 동작은, 적어도 일부, 관련 동작을 수행하기 위해 영구적으로 구성되거나 (예를 들어, 소프트웨어에 의해) 일시적으로 구성되는 하나 이상의 프로세서에 의해 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든, 그러한 프로세서는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서-구현된 모듈을 구성할 수 있다. 여기서 지칭되는 모듈은 어떤 예의 실시예에서는 프로세서-구현된 모듈을 포함할 수 있다.
유사하게, 여기서 설명되는 방법 또는 루틴은 적어도 일부 프로세서-구현될 수 있다. 예를 들어, 방법의 동작의 적어도 일부는 하나 이상의 프로세서 또는 프로세서-구현된 하드웨어 모듈에 의해 수행될 수 있다. 동작 중 어떤 것의 수행은 단일 머신 내 상주하는 것뿐만 아니라 소정 수의 머신에 걸쳐 배치되는 하나 이상의 프로세서 사이에 분산될 수 있다. 어떤 예의 실시예에 있어서, 프로세서 또는 프로세서들은 단일 위치에 (예를 들어, 집 환경, 사무소 환경 내 또는 서버 팜으로서) 위치할 수 있는 한편, 다른 실시예에서는 프로세서들이 소정 수의 위치에 걸쳐 분산될 수 있다.
또한 하나 이상의 프로세서는 "클라우드 컴퓨팅" 환경에서 또는 "서비스형 소프트웨어"(SaaS)로서 관련 동작의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작의 적어도 일부는 (프로세서를 포함하는 머신의 예로서) 컴퓨터 그룹에 의해 수행될 수 있고, 이들 동작은 네트워크(예를 들어, 인터넷)를 통해 그리고 하나 이상의 적절한 인터페이스(예를 들어, 어플리케이션 프로그램 인터페이스(API))를 통해 액세스 가능하다.
동작 중 어떤 것의 수행은 단일 머신 내 상주하는 것뿐만 아니라 소정 수의 머신에 걸쳐 배치되는 하나 이상의 프로세서 사이에 분산될 수 있다. 어떤 예의 실시예에 있어서, 하나 이상의 프로세서 또는 프로세서-구현된 모듈은 단일 지리적 위치에 (예를 들어, 집 환경, 사무소 환경 또는 서버 팜 내) 위치할 수 있다. 다른 예의 실시예에 있어서, 하나 이상의 프로세서 또는 프로세서-구현된 모듈은 소정 수의 지리적 위치에 걸쳐 분산될 수 있다.
이 명세서의 일부는 머신 메모리(예를 들어, 컴퓨터 메모리) 내에 비트 또는 이진 디지털 신호로서 저장된 데이터 상에의 동작의 기호적 표현 또는 알고리즘의 관점에서 제시되고 있다. 이들 알고리즘 또는 기호적 표현은 다른 당업자에게 그 작업의 실체를 전하기 위해 데이터 프로세싱 분야의 당업자에 의해 사용된 기술의 예이다. 여기서 사용되는 바와 같이, "알고리즘" 또는 "루틴"은 소망의 결과에 이르는 자기 모순 없는 동작 시퀀스 또는 유사한 프로세싱이다. 이러한 맥락에 있어서, 알고리즘, 루틴 및 동작은 물리적 수량의 물리적 조작을 관련시킨다. 전형적으로, 반드시 그런 것은 아니지만, 그러한 수량은 머신에 의해 저장되거나, 액세스되거나, 전송되거나, 조합되거나, 비교되거나 그렇지 않으면 조작될 수 있는 전기적, 자기적 또는 광학적 신호의 형태를 취할 수 있다. 때로는, 주로 공통 용례의 이유로, "데이터", "컨텐트", "비트", "값", "엘리먼트", "심벌", "캐릭터", "텀즈", "넘버", "숫자" 등과 같은 단어를 사용하여 그러한 신호를 가리키는 것이 편리하다. 그렇지만, 이들 단어는 단지 편리한 라벨일 뿐이고 적절한 물리적 수량과 연관되는 것이다.
특별히 달리 서술되지 않는 한, "프로세싱", "컴퓨팅", "계산", "결정", "제시", "디스플레이" 등과 같은 단어를 사용하는 여기서의 논의는 정보를 수신, 저장, 전송 또는 디스플레이하는 하나 이상의 메모리(예를 들어, 휘발성 메모리, 비-휘발성 메모리 또는 그 조합), 레지스터 또는 다른 머신 컴포넌트 내 물리적(예를 들어, 전자적, 자기적 또는 광학적) 수량으로 표현된 데이터를 조작 또는 변환하는 머신(예를 들어, 컴퓨터)의 액션 또는 프로세스를 지칭할 수 있다.
여기서 사용되는 바와 같이 "일 실시예" 또는 "실시예"의 어떠한 지칭이라도 실시예와 연관하여 설명된 특정 엘리먼트, 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 명세서에 다양한 곳에서 문구 "일 실시예에 있어서"의 나타남은 반드시 모두 동일 실시예를 가리키는 것은 아니다.
일부 실시예는 그 파생어와 함께 "결합" 및 "접속"이라는 표현을 사용하여 설명될 수 있다. 예를 들어, 일부 실시예는 2개 이상의 엘리먼트가 직접적 물리적 또는 전기적 접촉하고 있음을 나타내기 위해 용어 "결합"을 사용하여 설명될 수 있다. 그렇지만, 용어 "결합"은 또한 2개 이상의 엘리먼트가 서로 직접 접촉하고 있지는 않지만 여전히 서로 협력하거나 상호작용함을 의미할 수도 있다. 실시예는 이러한 맥락에 한정되지는 않는다.
여기서 사용되는 바와 같이, 용어 "포함하고 있다", "포함하고 있는", "포함한다", "포함하는", "갖는다", "갖는" 또는 그 어느 다른 변종은 비-배타적 포함을 커버하려는 의도이다. 예를 들어, 엘리먼트의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는 반드시 그러한 엘리먼트만으로 한정되는 것은 아니고 그러한 프로세스, 방법, 물품 또는 장치에 고유하거나 명시적으로 열거되지 않은 다른 엘리먼트를 포함할 수 있다. 더욱, 명시적으로 반대로 서술되지 않는 한, "또는"은 배타적 또는이 아니라 포함적 또는을 지칭한다. 예를 들어, 조건 A 또는 B는 다음 중 어느 하나에 의해 만족된다: A는 참(또는 존재)이고 B는 거짓(또는 존재하지 않음), A는 거짓(또는 존재하지 않음)이고 B는 참(또는 존재), 그리고 A와 B 둘 다 참(또는 존재).
부가하여, 부정관사의 사용은 여기에서의 실시예의 엘리먼트 및 컴포넌트를 설명하기 위해 채용된다. 이것은 단지 편의성을 위해 그리고 설명의 일반적 의미를 부여하기 위해 행해진다. 이러한 설명은 하나 또는 적어도 하나를 포함하는 것으로 읽혀져야 하고 단수형은 또한 그것이 달리 의미함이 명백하지 않는 한 복수형을 포함한다.
더더욱, 도면은 단지 예시의 목적으로 맵 렌더링 시스템의 바람직한 실시예를 묘사한다. 당업자는 여기에 예시된 구조 및 방법의 대안의 실시예가 여기서 설명되는 원리로부터 벗어남이 없이 채용될 수 있음을 이하의 논의로부터 쉽게 인식할 것이다.
본 개시를 읽을 때, 당업자는 여기서 개시된 원리를 사용하여 맵 또는 다른 유형의 이미지를 렌더링하기 위한 시스템 및 프로세스에 대한 또 다른 부가적 대안의 구조적 및 기능적 설계를 인식할 것이다. 그래서, 특정 실시예 및 어플리케이션이 예시 및 설명되었지만, 개시된 실시예는 여기서 개시된 바로 그 구성 및 컴포넌트로 한정되는 것은 아님을 이해해야 한다. 당업자에게 명백할 다양한 수정, 변경 및 변형은 첨부 청구범위에서 정의된 취지 및 범위로부터 벗어남이 없이 여기서 개시된 방법 및 장치의 배열, 동작 및 상세로 이루어질 수 있다.

Claims (11)

  1. 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법으로서,
    상기 방법은 (ⅰ) 네비게이션 서버로부터 네비게이션 데이터를 수신하도록 구성된 네비게이션 서비스 어플리케이션과 그리고 (ⅱ) 상기 네비게이션 서비스 어플리케이션과 별도로 상기 휴대용 장치상에서 실행하는 컴패니언 어플리케이션을 실행하는 하나 이상의 프로세서를 포함하는 휴대용 장치에서 구현되며, 상기 방법은:
    상기 네비게이션 서비스 어플리케이션에 의해 목적지를 장거리 통신 링크를 통해 상기 네비게이션 서버에 전송하는 단계;
    상기 네비게이션 서비스 어플리케이션에 의해, 상기 장거리 통신 링크를 통해 상기 네비게이션 서버로부터 제 1 네비게이션 데이터를 수신하는 단계 ― 상기 제 1 네비게이션 데이터는 출발지와 상기 목적지 사이를 네비게이션하기 위한 복수의 단계 중 적어도 하나를 기술(description)하며 ―;
    상기 컴패니언 어플리케이션에 의해 상기 네비게이션 서비스 어플리케이션의 네비게이션 어플리케이션 프로그래밍 인터페이스(API)를 호출(invoking)하는 단계 ―상기 네비게이션 API를 호출하는 단계는 상기 네비게이션 서비스 어플리케이션으로부터 상기 제 1 네비게이션 데이터를 획득하기 위해 상기 구문과 그리고 상기 네비게이션 API에 특정한 파라미터들의 리스트를 사용하는 단계를 더 포함하며 ―; 그리고
    상기 컴패니언 어플리케이션에 의해, 단거리 통신 링크를 통해 상기 제 1 네비게이션 데이터를 상기 헤드 유닛에 전송하여 상기 헤드 유닛으로 하여금 상기 출발지와 상기 목적지 사이를 네비게이션하기 위한 상기 복수의 단계 중 적어도 상기 하나를 나타내는 네비게이션 정보를 디스플레이하게 하는 단계를 포함하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  2. 제 1 항에 있어서,
    상기 네비게이션 API는 IPC 방식을 사용하여 상기 네비게이션 서비스 어플리케이션과 통신하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  3. 제 1 항에 있어서,
    상기 구문과 그리고 상기 네비게이션 API에 특정한 파라미터들의 리스트는 상기 네비게이션 API와 상기 컴패니언 어플리케이션 사이에서 데이터를 교환하기 위한 하나 이상의 데이터 구조들의 세트를 정의하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 네비게이션 데이터는 단계들의 시퀀스(a sequence of steps)를 기술하고,
    상기 네비게이션 API를 호출하는 단계는 상기 네비게이션 서비스 어플리케이션에 복수의 다음 단계 요청들 각각을 제공함에 응답하여 상기 네비게이션 서비스 어플리케이션으로부터 상기 헤드 유닛에 전송을 위한 상기 단계들의 시퀀스에서 다음 단계를 수신하기 위해 상기 구문과 그리고 상기 네비게이션 API에 특정한 파라미터들의 리스트를 사용하는 것을 포함하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  5. 제 1 항에 있어서,
    상기 네비게이션 API를 호출하는 단계는 상기 네비게이션 서비스 어플리케이션에 인증 정보를 제공하기 위해, 상기 구문과 상기 네비게이션 API에 특정한 파라미터들의 리스트를 사용하는 것을 포함하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  6. 제 1 항에 있어서,
    상기 네비게이션 서버로부터 수신된 상기 제 1 네비게이션 데이터는 제 1 포맷을 따르고; 그리고
    상기 네비게이션 API는 상기 컴패니언 어플리케이션에 의해 호출될 때, 상기 제 1 네비게이션 데이터를 상기 네비게이션 서비스 어플리케이션과 상기 헤드 유닛 사이에 네비게이션 데이터를 통신하기 위해서만 정의된 제 2 포맷으로 변환하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  7. 제 6 항에 있어서,
    상기 제 2 포맷은 복수의 차량 제조자와 호환 가능한 오픈 포맷인 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  8. 제 6 항에 있어서,
    상기 제 2 포맷은 차량의 제조자에 특정한 포맷인 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  9. 제 1 항에 있어서,
    상기 컴패니언 어플리케이션은 상기 헤드 유닛의 제조자에 의해 정의된 고유의 통신 프로토콜에 따라 상기 헤드 유닛과 통신하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  10. 제 1 항에 있어서,
    상기 컴패니언 어플리케이션은 상기 헤드 유닛의 제조자에 의해 정의된 제 1 의 고유의 통신 방식에 따라 상기 헤드 유닛과 통신하고, 상기 네비게이션 서비스 어플리케이션은 상기 네비게이션 서버의 오퍼레이터에 의해 정의된 제 2의 고유의 통신 방식에 따라 상기 네비게이션 서버와 통신하는 것을 특징으로 하는 휴대용 장치와 차량의 헤드 유닛 사이에서 네비게이션 데이터를 교환하는 방법.
  11. 하나 이상의 프로세서에 의해 실행될 때 상기 프로세서로 하여금 청구항 제 1항 내지 제 10항 중 어느 한 항에 따른 방법을 수행하게 하는 컴퓨터 프로그램 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체.
KR1020187026915A 2013-09-26 2014-09-25 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법 KR102040787B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US14/038,464 US9109917B2 (en) 2013-09-26 2013-09-26 Systems and methods for providing input suggestions via the head unit of a vehicle
US14/038,382 2013-09-26
US14/038,382 US20150088411A1 (en) 2013-09-26 2013-09-26 Providing Digital Images to an External Device During Navigation
US14/038,437 US10054463B2 (en) 2013-09-26 2013-09-26 Systems and methods for providing navigation data to a vehicle
US14/038,478 US9958289B2 (en) 2013-09-26 2013-09-26 Controlling navigation software on a portable device from the head unit of a vehicle
US14/038,464 2013-09-26
US14/038,437 2013-09-26
US14/038,478 2013-09-26
PCT/US2014/057484 WO2015048307A1 (en) 2013-09-26 2014-09-25 Systems and methods for providing navigation data to a vehicle

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167011056A Division KR101901881B1 (ko) 2013-09-26 2014-09-25 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20180105746A KR20180105746A (ko) 2018-09-28
KR102040787B1 true KR102040787B1 (ko) 2019-11-06

Family

ID=52744462

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167011056A KR101901881B1 (ko) 2013-09-26 2014-09-25 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법
KR1020187026915A KR102040787B1 (ko) 2013-09-26 2014-09-25 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167011056A KR101901881B1 (ko) 2013-09-26 2014-09-25 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법

Country Status (6)

Country Link
EP (1) EP3049892B1 (ko)
JP (2) JP6524070B2 (ko)
KR (2) KR101901881B1 (ko)
CN (2) CN105593783A (ko)
CA (1) CA2925292C (ko)
WO (1) WO2015048307A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407295B1 (ko) * 2015-10-30 2022-06-10 현대오토에버 주식회사 데이터 미러링 방법
US9973887B2 (en) * 2016-01-21 2018-05-15 Google Llc Sharing navigation data among co-located computing devices
US10652337B2 (en) * 2016-09-07 2020-05-12 Thundar Power New Energy Vehicle Developmont Company Limited Passenger side display via a user portable device
US20180070391A1 (en) * 2016-09-07 2018-03-08 Thunder Power New Energy Vehicle Development Company Limited Facilitating communications between a computing device and an on-board system
KR102453027B1 (ko) * 2016-09-13 2022-10-11 트레카스 테크놀로지스 엘티디 위성 위치 확인 시스템(gps) 차단 환경 내 네비게이션을 위한 방법, 시스템 및 소프트웨어
WO2018136030A1 (en) * 2017-01-17 2018-07-26 Google Llc Assistive screenshots
DE102017200654A1 (de) * 2017-01-17 2018-07-19 Audi Ag Verfahren zum Bereitstellen von sensorbasierten Fahrzeugfunktionen in einem Kraftfahrzeug sowie Kraftfahrzeug-Recheneinrichtung und Kraftfahrzeug
US20190042986A1 (en) * 2017-08-03 2019-02-07 Google Inc. Application Programming Interface for Vehicle Routing Applications
US10567512B2 (en) * 2017-10-13 2020-02-18 GM Global Technology Operations LLC Systems and methods to aggregate vehicle data from infotainment application accessories
KR102082203B1 (ko) * 2018-12-14 2020-02-28 주식회사 아이비스 지도표시 장치 및 지도표시 방법
CN112033424A (zh) * 2019-06-03 2020-12-04 上海博泰悦臻网络技术服务有限公司 导航软件的工作模式切换方法、系统、及电子设备
KR102186339B1 (ko) * 2019-11-27 2020-12-03 주식회사 네이처모빌리티 공유경제플랫폼의 인공지능 비대면 렌터카 서비스 제공 시스템
CN116257196A (zh) * 2021-12-09 2023-06-13 华为技术有限公司 一种分享导航信息的方法、电子设备和系统
WO2024047416A1 (en) * 2022-09-01 2024-03-07 Mahindra And Mahindra Limited Vehicle navigation system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507078A (ja) 2007-12-05 2011-03-03 ジョンソン コントロールズ テクノロジー カンパニー 車両ユーザインターフェースシステム及び方法
JP2012043346A (ja) 2010-08-23 2012-03-01 Denso Corp 車載通信システム
JP2012149998A (ja) 2011-01-19 2012-08-09 Alpine Electronics Inc 車載機器システム及びそれに用いられる車載機器及び携帯端末
JP2012251791A (ja) 2011-05-31 2012-12-20 Clarion Co Ltd ナビゲーション機能を有する情報端末
JP2013019676A (ja) 2011-07-07 2013-01-31 Alpine Electronics Inc ナビゲーション装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718409B2 (en) * 2001-04-06 2004-04-06 The United States Of America As Represented By The Secretary Of The Navy National marine electronics association protocol converter
JP3948665B2 (ja) * 2003-01-14 2007-07-25 株式会社日立製作所 通信型ナビゲーションシステムにおける入力支援方法ならびに装置
JP4072418B2 (ja) * 2002-10-29 2008-04-09 キヤノン株式会社 情報入力システム、移動端末、移動端末における情報入力方法、情報サーバ、情報サーバが移動端末の入力操作を支援する方法、コンピュータプログラム
JP4273936B2 (ja) * 2003-11-17 2009-06-03 マツダ株式会社 情報提供装置、情報提供システム、情報提供装置用コンピュータ・プログラム、及び情報提供方法
DE602004003789T2 (de) * 2004-02-26 2007-04-05 Alcatel Verfahren zur Eingabe von Zielortinformationen über ein mobiles Endgerät
US8532678B2 (en) * 2006-03-08 2013-09-10 Tomtom International B.V. Portable GPS navigation device
EP2092275B1 (en) * 2006-12-20 2012-10-31 Johnson Controls Technology Company System and method for providing route calculation and information to a vehicle
JP4930858B2 (ja) * 2007-07-31 2012-05-16 アイシン・エィ・ダブリュ株式会社 文字選択装置、ナビゲーション装置、及び文字選択プログラム
US8832023B2 (en) 2009-01-30 2014-09-09 Apple Inc. System for managing distributed assets and metadata
JP5358277B2 (ja) 2009-05-07 2013-12-04 アルパイン株式会社 ナビゲーションシステム及び移動電話機
US8942888B2 (en) * 2009-10-15 2015-01-27 Airbiquity Inc. Extensible scheme for operating vehicle head unit as extended interface for mobile device
JP5592473B2 (ja) * 2010-03-09 2014-09-17 本田技研工業株式会社 携帯機器と連携して動作可能な車載機器
US8407720B1 (en) * 2010-03-31 2013-03-26 Emc Corporation Inter-process communication management
US20110298808A1 (en) * 2010-06-02 2011-12-08 Toyota Motor Engineering & Manufacturing North America, Inc. Animated Vehicle Attendance Systems
US9110743B2 (en) 2010-12-21 2015-08-18 Microsoft Technology Licensing, Llc Extensible system action for sharing while remaining in context
US8688320B2 (en) * 2011-01-11 2014-04-01 Robert Bosch Gmbh Vehicle information system with customizable user interface
US9542241B2 (en) * 2011-07-12 2017-01-10 Harman International Industries, Incorporated Navigation application interface
US10097993B2 (en) * 2011-07-25 2018-10-09 Ford Global Technologies, Llc Method and apparatus for remote authentication
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US8392617B1 (en) 2011-12-06 2013-03-05 Google Inc. Browsing context continuation across multiple devices
EP2819451B1 (en) * 2012-01-16 2020-11-04 Nec Corporation Mobile communications system, control apparatus, network optimization methods, and non-temporary computer-readable medium having program stored therein
KR101984217B1 (ko) 2012-01-26 2019-05-30 삼성전자주식회사 기기들 간 통신 시 기기에 대한 정보를 교환하기 위한 장치 및 방법
US9448700B2 (en) 2012-02-03 2016-09-20 Apple Inc. Sharing services
JP2014106694A (ja) * 2012-11-27 2014-06-09 Aisin Aw Co Ltd 文字認識装置及び文字認識プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507078A (ja) 2007-12-05 2011-03-03 ジョンソン コントロールズ テクノロジー カンパニー 車両ユーザインターフェースシステム及び方法
JP2012043346A (ja) 2010-08-23 2012-03-01 Denso Corp 車載通信システム
JP2012149998A (ja) 2011-01-19 2012-08-09 Alpine Electronics Inc 車載機器システム及びそれに用いられる車載機器及び携帯端末
JP2012251791A (ja) 2011-05-31 2012-12-20 Clarion Co Ltd ナビゲーション機能を有する情報端末
JP2013019676A (ja) 2011-07-07 2013-01-31 Alpine Electronics Inc ナビゲーション装置

Also Published As

Publication number Publication date
JP6524070B2 (ja) 2019-06-05
JP2016539317A (ja) 2016-12-15
CN105593783A (zh) 2016-05-18
KR20160061413A (ko) 2016-05-31
KR20180105746A (ko) 2018-09-28
CA2925292C (en) 2021-07-27
EP3049892A4 (en) 2017-05-03
EP3049892B1 (en) 2022-04-06
JP2019144265A (ja) 2019-08-29
CN113029184A (zh) 2021-06-25
JP7005552B2 (ja) 2022-01-21
EP3049892A1 (en) 2016-08-03
WO2015048307A1 (en) 2015-04-02
CA2925292A1 (en) 2015-04-02
KR101901881B1 (ko) 2018-09-27

Similar Documents

Publication Publication Date Title
KR102040787B1 (ko) 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법
US20180252547A1 (en) Controlling navigation software on a portable device from the head unit of a vehicle
US10288442B2 (en) Systems and methods for providing navigation data to a vehicle
US9109917B2 (en) Systems and methods for providing input suggestions via the head unit of a vehicle
CN106062514B (zh) 便携式装置与车辆头端单元之间的交互
US10225392B2 (en) Allocation of head unit resources to a portable device in an automotive environment
US9057624B2 (en) System and method for vehicle navigation with multiple abstraction layers
CN105783939B (zh) 具有可扩展显示装置的导航系统及其操作方法
JP7389211B2 (ja) ナビゲーションアプリケーションにおける配車サービスに関するストリートレベル画像の提供
US20150088411A1 (en) Providing Digital Images to an External Device During Navigation
EP2938969A1 (en) Vehicle navigation
JP2012251792A (ja) ナビゲーション機能を有する情報端末
US9360340B1 (en) Customizable presentation of navigation directions
JP2012251791A (ja) ナビゲーション機能を有する情報端末
US9528851B2 (en) User device and system
US20230391189A1 (en) Synchronized rendering

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant