[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20140014269A - 맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들 - Google Patents

맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20140014269A
KR20140014269A KR1020137032125A KR20137032125A KR20140014269A KR 20140014269 A KR20140014269 A KR 20140014269A KR 1020137032125 A KR1020137032125 A KR 1020137032125A KR 20137032125 A KR20137032125 A KR 20137032125A KR 20140014269 A KR20140014269 A KR 20140014269A
Authority
KR
South Korea
Prior art keywords
map
layout
steps
directions
printing
Prior art date
Application number
KR1020137032125A
Other languages
English (en)
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 KR20140014269A publication Critical patent/KR20140014269A/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/3667Display of a road map
    • G01C21/3676Overview of the route on the road map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1842Geometric transformations, e.g. on raster data
    • G06K15/1843Changing size or raster resolution
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3881Tile-based structures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3885Transmission of map data to client devices; Reception of map data by client devices
    • G01C21/3889Transmission of selected map data, e.g. depending on route
    • GPHYSICS
    • 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
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/0969Systems involving transmission of navigation instructions to the vehicle having a display in the form of a map
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • G09B29/007Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids
    • G09B29/106Map spot or coordinate position indicators; Map reading aids using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Educational Administration (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Educational Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Ecology (AREA)
  • Instructional Devices (AREA)
  • Navigation (AREA)
  • Processing Or Creating Images (AREA)
  • Traffic Control Systems (AREA)

Abstract

본 출원은 맵들 및 방향들을 프린트하기 위한 시스템들, 방법들 및 컴퓨터-판독가능한 매체에 관한 것이다. 방향들을 프린트하기 위한 명령의 수신에 응답하여, 디바이스는, 루트에 대응하는 다른 단계들과 함께, 이동할 루트를 보여주기에 최적화된 레이아웃을 정의할 수 있다. 레이아웃은 루트 상의 각각의 단계를 식별하는 콜아웃들을 가지고, 전체 루트를 보여주는 맵 개요를 포함할 수 있다. 레이아웃은 또한 개별 단계들의 리스팅들을 포함할 수 있고, 각각의 리스팅은 콜아웃을 다시 참조하는 참조 번호 및 단계의 설명을 포함한다. 각각의 리스팅들은 리스팅에 대응하는 단계의 상세 뷰를 보여주는 맵 타일을 포함할 수 있다. 맵 개요 및 리스팅들은, 예를 들어, 경관 뷰의 상이한 열들 내에 배치될 수 있다.

Description

맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR PRINTING MAPS AND DIRECTIONS}
사람들이 특정 위치를 내비게이팅해야 하는 많은 상이한 시간들이 존재한다. 예를 들어, 차량의 운전자는 시작 포인트로부터 목적지까지 내비게이팅할 필요가 있을 수 있다. 또다른 예로서, 보행자는 친구를 만나기 위해 또는 특정 관심 포인트에 도달하기 위해 방향(direction)들을 필요로 할 수 있다. 개인은 특정 목적지에 도달하는 데 요구되는 방향들을 획득하기 위해 상이한 방식들을 사용할 수 있다. 예를 들어, 사람은 사용자가 어떤 도로들을 탈 것인지, 언제 턴할 것인지, 각 도로 상에서 얼마나 멀리 갈 것인지를, 또는 이들의 조합들을 결정하기 위해 이동할 시에 맵을 볼 수 있다. 개인이 이동하는 동안 맵을 볼 수 없는 경우(예를 들어, 개인이 운전 중이거나, 또는 개인이 맵을 가져갈 수 없음), 개인은 대신 루트(route)를 도식화(plot)하기 위해 출발 이전에 맵을 보고 개인이 참조로 가져갈 수 있는 종이 상에 루트에 대응하는 턴들 또는 다른 표시들을 기록할 수 있다.
일부 경우들에서, 전자 디바이스들은 특정 위치에 대한 코스를 도식화하기 위해 이용가능할 수 있다. 예를 들어, 위성 내비게이션 시스템, 또는 맵핑 애플리케이션 또는 서비스에 대한 액세스를 가지는 디바이스(예를 들어, 인터넷에 접속하기 위한 회로를 가지는 디바이스)에는 시작 및 최종 위치들이 제공될 수 있다. 디바이스는 이후 디바이스의 사용자에게 제시될 수 있는 위치들 사이의 경로를 정의할 수 있다. 일부 경우들에서, 디바이스는 현재 위치로부터 목적지까지 턴-바이-턴 방향들(turn-by-turn directions)을 제공하기 위해 실시간으로 자신의 현재 위치를 결정할 수 있다. 따라서, 전자 디바이스들은 사람이 방향들을 획득하기에 더 간단하고 더 용이한 방식을 제공할 수 있다.
그러나, 이들 디바이스들은 항상 이용가능하지는 않을 수 있거나, 또는 때때로 맵핑 시스템에 액세스하지 못할 수 있다(예를 들어, 디바이스는 인터넷에 액세스하기 위한 셀룰러 범위 내에 있지 않을 수 있다). 그럼에도 방향들이 이용가능함을 보장하기 위해, 디바이스의 사용자는 디바이스에 의해 생성되는 방향들을 프린트하도록 디바이스에 지시할 수 있다. 결과적인 프린트아웃은 턴들의 리스팅, 맵 개요, 및 사용자가 프린트아웃에 포함하기를 원했을 수 있는 노트들을 포함할 수 있다. 그러나, 기존 디바이스들에 의해 제공되는 프린트아웃들은 종종 난잡하게(cluttered) 되거나, 열악하게 레이아웃되고, 혼동될 수 있다. 많은 프린트아웃들의 페이지 매기기는 종종 예를 들어, 도 1에서 도시된 바와 같이, 턴-바이-턴 방향들의 리스트로부터 루트의 그래픽 표현을 분리한다. 도 1은, 하나가 맵을 보여주고, 다른 하나가 턴-바이-턴 방향들을 보여주는 2개 페이지들을 도시하는 도면이다.
이 출원은 맵들 및 방향들을 프린트하기 위한 시스템들, 방법들 및 컴퓨터-판독가능한 매체에 관한 것이다.
사용자로부터 방향들을 프린트하라는 명령(예를 들어, 모바일 디바이스 상에 제공되는 맵핑 애플리케이션으로부터 수신된 명령)을 수신하는 것에 응답하여, 디바이스는 방향들에 대해 최적화된 레이아웃을 정의할 수 있다. 레이아웃은 방향들에 대응하는 전체 루트의 개요뿐만 아니라 턴-바이-턴 지시들(turn-by-turn instructions)을 제공하기 위해 방향들의 각 단계의 리스팅들을 포함할 수 있다. 맵 개요는 방향들의 각각의 단계에 대응하는 콜아웃(callout)들을 포함할 수 있다.
일부 경우들에서, 레이아웃은 경관-지향 용지(landscape-oriented paper)에 대해 최적화될 수 있다. 레이아웃의 제1 열은 전체 루트의 맵 개요를 포함할 수 있다. 루트는 맵 상에서 하이라이트될 수 있고, 몇몇 콜아웃들을 포함할 수 있다. 콜아웃들은 방향들의 상이한 단계들에 대응하도록 포지셔닝되고 순차적으로 넘버링될 수 있다. 레이아웃의 제2 열은 방향들의 단계들의 리스팅들을 포함할 수 있다. 리스팅들은 순차적으로 디스플레이될 수 있고, 각각은 콜아웃을 참조하는 정보(예를 들어, 단계 번호), 특정 단계를 보여주는 상세 맵 타일, 및 설명을 포함할 수 있다.
루트가 너무 많은 방향들을 포함해서 단일 페이지에 맞출 수 없는 경우, 레이아웃은 몇몇 페이지들을 포함할 수 있고, 여기서 맵 개요는 모든 페이지의 제1 열에서 유지하고, 특정 리스팅들은 각 페이지의 제2 열 내에서 변경된다. 일부 경우들에서, 전자 디바이스는 유사한 리스팅들의 번호들이 (예를 들어, 균일하고 심미적으로 아름다운 프린트아웃을 제공하기 위해) 각 페이지 상에 디스플레이되도록 방향들을 프린트아웃하기 위해 사용되는 페이지들의 수를 선택할 수 있다.
일부 실시예들에서, 각각의 페이지 상의 맵 개요는 각 페이지 상에 프린트되는 특정 단계들에 초점을 둘 수 있다. 루트의 특정 부분들(예를 들어, 시작 및 끝)은 루트의 다른 단계들보다 흥미롭거나 더 어려운 단계들을 가질 수 있다. 따라서, 프린트된 맵이 레이아웃되는 경우, 맵 개요는 다른 콜아웃들은 보여주지 않고, 오직 페이지 상에 리스트된 단계들에 대응하는 콜아웃들만을 보여줄 수 있다.
일부 경우들에서, 디바이스-정의된 전용 레이아웃은 맵 상에 관심 포인트들을 보여주기 위해 사용될 수 있다. 레이아웃의 제1 열은 상이한 콜아웃들이 관심 포인트들을 식별하는 맵 개요를 디스플레이하기 위해 사용될 수 있다. 레이아웃의 제2 열은 콜아웃들에서 식별된 관심 포인트들 각각에 관한 정보를 제공하는 리스팅들을 포함할 수 있다. 일부 경우들에서, 각각의 리스팅은 콜아웃에 대한 참조, 맵 타일, 및 설명을 포함할 수 있다. 관심 포인트들은, 예를 들어, 사용자 제공 탐색 기준의 탐색 결과들에 대응할 수 있다.
본 발명의 위 특징들 및 다른 특징들, 그 속성 및 다양한 장점들은, 첨부 도면과 함께 취해지는 후속하는 상세한 설명의 고려 시에 더욱 명백해질 것이다.
도 1은 프린트된 내비게이션 방향들의 종래 기술의 표현을 도시하는 도면이다.
도 2는 본 발명의 일부 실시예들에 따른 예시적인 디바이스 및 프린터 시스템의 개략적 뷰를 도시하는 도면이다.
도 3은 본 발명의 일부 실시예들에 따라 맵핑 애플리케이션에 의해 제공되는 예시적인 프린팅 인터페이스의 개략적 뷰를 도시하는 도면이다.
도 4는 본 발명의 일부 실시예들에 따른 프린트 옵션들을 정의하기 위한 예시적인 디스플레이의 개략적 뷰를 도시하는 도면이다.
도 5는 본 발명의 일부 실시예들에 따른 방향들의 예시적인 프린팅 레이아웃의 개략적 뷰를 도시하는 도면이다.
도 6은 본 발명의 일부 실시예들에 따라 방향들의 또다른 예시적인 프린팅 레이아웃의 개략적 뷰를 도시하는 도면이다.
도 7은 본 발명의 일부 실시예들에 따라 관심 포인트들이 디스플레이되는 맵의 예시적인 디스플레이의 개략적 뷰를 도시하는 도면이다.
도 8은 본 발명의 일부 실시예들에 따라 맵 및 관심 포인트들이 디스플레이되는 예시적인 프린팅 레이아웃의 개략적 뷰를 도시하는 도면이다.
도 9는 본 발명의 일부 실시예들에 따라 시작 포지션으로부터 목적지까지 방향들을 프린트하기 위한 예시적인 프로세스의 흐름도이다.
도 10은 본 발명의 일부 실시예들에 따라 하나 이상의 페이지들 상의 단계들의 레이아웃을 결정하기 위한 예시적인 프로세스의 흐름도이다.
도 11은 본 발명의 일부 실시예들에 따라 유선 또는 무선 통신 채널을 통해 컴퓨팅 시스템과 상호작용하기 위한 터치 입력을 수신할 수 있는 예시적인 터치 I/O 디바이스의 개략적 뷰를 도시하는 도면이다.
도 12는 본 발명의 일부 실시예들에 따라 프린팅 레이아웃들을 제공하기 위한 예시적인 시스템의 블록도이다.
도 13은 본 발명의 일부 실시예들에 따른 예시적인 API 아키텍쳐를 예시하는 블록도이다.
도 14는 본 발명의 일부 실시예들에 따라 애플리케이션이 API를 사용하여 서비스 A 또는 B에 대한 호출들을 수행할 수 있는 예시적인 소프트웨어 스택의 블록도이다.
이 출원은 맵들 및 방향들을 프린트하기 위한 시스템들, 방법들 및 컴퓨터-판독가능한 매체에 관한 것이다. 특히, 이 출원은 용이하게 판독되고 심미적으로 아름다운 방식으로 방향들에 대한 프린팅 레이아웃들을 정의하는 것에 관한 것이다. 많은 상황들에서, 개인은 특정 목적지로의 가이드를 위해 프린트 아웃된 방향들을 원할 수 있다. 이러한 프린트아웃들을 생성하기 위해, 개인은 먼저, 적절한 능력들을 가지는 전자 디바이스를 사용하여 방향들을 획득해야 한다.
도 2는 본 발명의 일부 실시예들에 따른 예시적인 디바이스 및 프린터 시스템의 개략적 뷰이다. 시스템(200)은 디바이스(210) 및 프린터 시스템(220)을 포함할 수 있다. 디바이스(210)는 예를 들어, 시스템(1200)(도 12)의 특징들 중 일부 또는 모두를 가지는 전자 디바이스를 포함하는 임의의 적절한 전자 디바이스를 포함할 수 있다. 예를 들어, 전자 디바이스(210)는 미디어 플레이어, 예를 들어, 캘리포니아주 쿠퍼티노의 Apple Inc.에 의해 이용가능한 iPod® 또는 an iPad®, 셀룰러 전화, 개인 이메일 또는 메시징, Apple Inc.로부터 이용가능한 iPhone®, 포켓 사이즈의 개인용 컴퓨터들, 개인용 디지털 보조 단말(PDA)들, 랩톱 컴퓨터, 음악 레코더, 비디오 레코더, 게임 디바이스, 카메라, 라디오들, 의료 장비, 및 방향들이 제공될 수 있는 디스플레이를 가지는 임의의 다른 전자 디바이스를 포함할 수 있다.
전자 디바이스(210)를 사용하여, 사용자는 특정 목적지까지 내비게이팅하기 위한 방향들을 요청하고 검색할 수 있다. 예를 들어, 사용자는 디바이스의 입력 인터페이스를 사용하여 목적지를 제공할 수 있다(예를 들어, 주소 또는 좌표를 입력한다). 일부 경우들에서, 사용자는 또한 시작 위치를 제공할 수 있지만, (예를 들어, 포지셔닝 회로로부터 결정되는 바와 같이) 디바이스의 현재 포지션이 사용될 수 있다. 전자 디바이스가 시작 및 최종 위치들을 수신하면, 디바이스는 적절한 알고리즘을 사용하여 시작 위치로부터 최종 위치까지 내비게이팅하기 위한 방향들을 결정할 수 있다. 예를 들어, 전자 디바이스는 각각이 특정한 특성들 및 속성들을 가지는 경로들의 네트워크에 기초하여 시작 및 최종 위치들 사이의 경로를 정의할 수 있다.
또다른 예로서, 전자 디바이스는 내비게이션 방향들을 생성하기 위해 원격 디바이스를 사용할 수 있다. 특히, 전자 디바이스는 (예를 들어, 인터넷에 접속하도록 동작하는 통신 회로를 사용하여) 시작 및 최종 위치들에 대응하는 좌표들을 원격 소스에 전송할 수 있다. 원격 소스는 이후, 루트들 및 맵들의 데이터베이스를 사용하여, 시작 위치로부터 최종 위치까지의 특정 경로 또는 루트를 결정할 수 있다. 특정 루트에 대응하는 방향들은 이들이 사용자에게 제공될 수 있도록 디바이스로 전송될 수 있다. 일부 경우들에서, 원격 소스는 대신, 또는 추가적으로, 디바이스에 의한 디스플레이를 위해 특정 루트에 대응하는 맵 타일들을 전송할 수 있다.
사용자가 디바이스 상에서 방향들을 검색하면, 사용자는 이들이, 심지어 디바이스가 이용가능하지 않거나, 또는 심지어 디바이스가 방향들에 대응하는 맵 타일들을 검색할 수 없는 경우라도(예를 들어, 원격 소스에 대한 접속을 제공하는 어떠한 네트워크도 이용가능하지 않은 경우) 이용가능할 수 있도록 방향들을 프린트아웃하기를 원할 수 있다. 이렇게 하기 위해, 사용자는 프린터 시스템을 사용하여, 용지와 같은 유형 매체 상에 방향들을 프린트하도록 전자 디바이스에 지시할 수 있다.
프린터 시스템(220)은 사용자가 전자 디바이스 밖에서 사용할 수 있는 전자 정보(예를 들어, 맵에 대응하는 전자 데이터)의 물리적 표현을 구성하도록 동작하는 임의의 적절한 디바이스 또는 장치를 포함할 수 있다. 특히, 프린터 시스템(220)은, 예를 들어, 레이저 프린터, 잉크젯 프린터, 열 프린터, 도트 매트릭스 프린터, 플로터, 팩시밀리 기계, 복사 기계, 또는 이들의 조합들을 포함할 수 있다. 프린터 시스템(220)은, 예를 들어, 단색 출력 또는 몇몇 컬러들의 출력 조합 잉크(예를 들어, 시안, 마젠타, 옐로우 및 블랙 잉크)를 포함하는 하나 이상의 컬러들의 출력을 제공할 수 있다. 출력은 예를 들어, 하나 이상의 컬러들의 용지, 나무, 플라스틱, 금속을 포함하는 임의의 적절한 베이스 또는 매체, 또는 잉크나 컬러가 오버레이될 수 있는 임의의 다른 표면 상에 제공될 수 있다. 일부 실시예들에서, 프린터 시스템(220)의 출력은 3차원 오브젝트를 형성하기 위해 이전 출력들 상에 오버레이될 수 있다(예를 들어, 프린터의 다른 잉크층들은 3차원 오브젝트의 오버레이 층들을 형성한다).
전자 디바이스(210)는 임의의 적절한 방식을 사용하여 프린터 시스템에 프린트하기 위한 정보를 제공할 수 있다. 일부 실시예들에서, 통신 경로(230)는 전자 디바이스(210) 및 프린터 시스템(220) 사이에 설정될 수 있다. 통신 경로(230)는 임의의 적절한 유선 또는 무선 통신 경로(또는 이들의 조합들)을 포함할 수 있고, 임의의 적절한 프로토콜을 사용하여 인코딩된 데이터를 전달할 수 있다. 일부 실시예들에서, 통신 경로(230)는 전자 디바이스 및 프린터 시스템 사이에서 전송되는 정보를 인코딩, 디코딩 또는 수정하기 위한 회로를 포함할 수 있다.
통신 경로(230)는 임의의 적절한 인터페이스 또는 커넥터를 사용하여 디바이스(210) 및 프린터 시스템(220) 각각에 접속할 수 있다. 예를 들어, 통신 경로(230)는 디바이스 및 프린터 시스템 각각에서 상대 커넥터 포트들에 접속하는 커넥터들(예를 들어, USB 커넥터들 또는 이더넷 커넥터들)을 가지는 케이블을 포함할 수 있다. 또다른 예로서, 전자 디바이스(210) 및 프린터 시스템(220)은 예를 들어, Wi-Fi(예를 들어, 802.11 프로토콜)를 지원하는 통신 회로, 이더넷, Bluetooth ™(이는 Bluetooth Sig, Inc.에 의해 소유된 상표임), 라디오 주파수 시스템들, 셀룰러 네트워크들(예를 들어, GSM, AMPS, GPRS, CDMA, EV-DO, EDGE, 3GSM, DECT, IS-136/TDMA, iDen, LTE 또는 임의의 다른 적절한 셀룰러 네트워크 또는 프로토콜), 적외선, TCP/IP(예를 들어, TCP/IP 층들 각각에서 사용되는 프로토콜들 중 임의의 것), HTTP, FTP, RTP, RTSP, SSH, 보이스 오버 IP(VOIP), 임의의 다른 통신 프로토콜, 또는 이들의 임의의 조합과 같은, 통신 경로를 지원하는 통신 네트워크에 접속하기 위한 통신 회로를 포함할 수 있다.
전자 디바이스는 방향들을 프린트하기 위한 임의의 적절한 인터페이스를 제공할 수 있다. 일부 경우들에서, 인터페이스는 방향들을 생성하기 위해 사용되는 애플리케이션 또는 원격 서비스에 의해 부분적으로 제공될 수 있다. 예를 들어, 모바일 디바이스 상의 맵핑 애플리케이션은 애플리케이션에 의해 생성되는 방향들을 프린트하기 위한 옵션을 포함할 수 있다. 도 3은 본 발명의 일부 실시예들에 따라 맵핑 애플리케이션에 의해 제공되는 예시적인 프린팅 인터페이스의 개략적 뷰이다. 디스플레이(300)는 맵핑 애플리케이션에 의해 제공되는 특정 영역을 도시하는 맵(310)을 포함할 수 있다. 맵(310)은 사용자가 시작 포인트(314)로부터 목적지(316)까지 내비게이팅하는 방식을 표시하는 경로(312)를 포함할 수 있다. 추가로, 디스플레이(300)는 경로(312)를 따라 사용자를 가이드하기 위한 방향들 또는 단계들(322)의 리스팅(320)을 포함할 수 있다.
사용자가 자신이 경로(312)를 따라갈 때 자신에게 디스플레이(300)를 제공하는 디바이스를 가져오지 못할 수 있으므로, 사용자는 참조용으로 방향들을 프린트하기를 원할 수 있다. 디스플레이(300)는 디바이스와의 임의의 적절한 상호작용에 응답하여 프린트 옵션(330)을 제공할 수 있다. 프린트 옵션(330)의 사용자 선택을 수신하는 것에 응답하여, 디바이스는 프린터에 방향들 및 맵을 전송할 수 있다.
방향들이 심미적으로 아름답고 유용한 방식으로 프린트 아웃되는 것을 보장하기 위해, 전자 디바이스는 디스플레이(300)에서 도시된 맵 및 방향들의 레이아웃과는 상이한 프린트된 방향들에 대한 레이아웃을 자동으로 정의할 수 있다. 예를 들어, 프린트 명령이 맵 애플리케이션으로부터 수신되었다고 결정하는 것에 응답하여, 전자 디바이스는 맵 애플리케이션과 연관된 미리 정의된 레이아웃을 사용하여 프린터 시스템에 프린트될 컨텐츠를 전송할 수 있다. 레이아웃의 상이한 특징들은 하기에 더 상세하게 논의될 것이다.
일부 경우들에서, 전자 디바이스는 맵 애플리케이션이 아닌 애플리케이션을 사용하여 맵 및 방향들을 생성할 수 있다. 예를 들어, 디바이스는 웹 브라우저 내에 맵을 디스플레이 할 수 있고, 여기서 맵 및 대응하는 방향들은 적절한 웹 서버로부터 검색된다. 사용자는 방향들을 프린트하거나 맵을 프린트하는 것과 관련된 옵션들을 포함하는 프린팅 인터페이스로부터 적절한 레이아웃을 가지고 방향들을 프린트하도록 디바이스에 지시할 수 있다. 도 4는 본 발명의 일부 실시예들에 따라 프린트 옵션들을 정의하기 위한 예시적인 디스플레이의 개략적 뷰이다. 전자 디바이스는, 예를 들어, 맵 또는 방향들을 프린트하기 위한 명령을 수신하는 것에 응답하는 것을 포함하여, 임의의 적절한 시간에 디스플레이(400)를 제공할 수 있다. 디스플레이(400)는 임의의 적절한 방식을 사용하여 디스플레이되는 프린팅 옵션들을 포함할 수 있다. 예를 들어, 디스플레이(400)는 프린트 요청을 정의하기 위한 상이한 옵션들을 가지는 다이얼로그 또는 메뉴(410)를 포함할 수 있다. 일부 경우들에서, 디스플레이(400)는, 대신, 또는 추가적으로, 예를 들어, 전체 디스플레이로서, 메뉴의 일부분으로서, 오버레이 내에, 또는 이들의 조합들을 포함하는 다른 방식들을 사용하여 프린트 옵션들을 제공할 수 있다.
메뉴(410)는 예를 들어, 어느 프린터를 사용할지, 용지 배향, 프린트할 페이지들의 선택, 콜레이션(collation), 양면 프린팅, 문서 레이아웃(시트 또는 경계(border) 당 페이지들), 컬러 매칭, 용지 사이즈, 급지, 커버 페이지의 사용, 스테이플링, 마진 시프트들, 또는 이들의 조합들과 같은 임의의 적절한 프린트 세팅을 정의하기 위한 프린트 옵션들을 포함할 수 있다. 일부 경우들에서, 메뉴(410)는 맵 또는 방향들의 프린팅에 특정적인 하나 이상의 옵션들을 포함할 수 있다. 옵션들은 메뉴(410) 상에 임의의 적절한 방식으로 배치될 수 있다. 예를 들어, 메뉴(410)는 프린터 선택 옵션(412), 프리셋 옵션(414), 복사 옵션(418), 페이지 옵션(419), 및 영역(420)에서 이용가능한 옵션들을 확장하기 위한 옵션(416)을 포함할 수 있다. 일부 경우들에서, 메뉴(410)는 미리보기 윈도우(425)에서 프린트될 컨텐츠의 미리보기를 디스플레이할 수 있다.
맵들 또는 방향들이 프린트될 경우, 사용자는 프리셋 옵션(414)에서 "맵" 프리셋을 선택할 수 있다. "맵" 프리셋을 선택하는 것에 응답하여, 전자 디바이스는 맵 및 방향들을 프린트 아웃하기 위해 최적화된 레이아웃을 생성할 수 있다. 일부 경우들에서, 사용자는 메뉴(410)의 영역(420)에서 대응하는 옵션들을 선택함으로써 "맵" 프리셋을 커스터마이즈할 수 있다. 영역(420)의 특정 옵션들은 메뉴 선택 옵션(422)에 관한 것일 수 있고, 이는 프린팅 서브-옵션들의 몇몇 카테고리들을 정의하는 드롭 다운 메뉴를 포함할 수 있다. 영역(420)의 옵션들 중에서, 메뉴(410)는 용지의 각각의 시트 상에 프린트하기 위한 단계들 또는 방향들의 수를 정의하기 위한 옵션(424)을 포함할 수 있다. 사용자는 옵션(426)을 사용하여 단계들의 특정 수를 정의할 수 있거나, 또는 (예를 들어, 도 4에 도시된 바와 같이) 디바이스로 하여금 단계들의 최적의 개수를 자동으로 결정하게 할 수 있다. 사용자가 원하는 프리셋들을 선택하고 바람직한 옵션들을 커스터마이즈하면, 사용자는 맵 및 방향들을 프린트하도록 디바이스에 지시하기 위해 프린트 옵션(430)을 선택할 수 있다. 맵 및 방향들은, 미리 정의된 레이아웃의 일부분으로서, 프린팅을 위한 프린팅 시스템에 제공될 수 있다.
사용자에 의해 요청되는 방향들에 관련된 임의의 적절한 정보는 사전-정의된 레이아웃의 일부분으로서 프린트될 수 있다. 도 5는 본 발명의 일부 실시예에 따른 방향들의 예시적인 프린팅 레이아웃의 개략적 뷰이다. 페이지(500)는 목적지까지 내비게이팅하기 위한 상이한 정보를 포함할 수 있다. 특히, 페이지(500)는 사용자에게 제안된 루트의 개요를 제공하는 영역(510), 및 루트에 따르기 위해 요구되는 단계들을 설명하는 영역(530)을 포함할 수 있다. 영역들(510 및 530)은 페이지(500)의 중심선(502)이 영역들을 분리하도록 상이한 열들 내에 레이아웃될 수 있다. 이러한 방식으로, 페이지(500)는 영역들(510 및 530) 중 어느 하나 내의 정보 중 임의의 것을 접거나 모호하게 하지 않고 중심선(502)을 따라 절반으로 접힐 수 있다.
영역(510)은 사용자에 의해 요청되는 루트의 개요를 포함할 수 있다. 예를 들어, 영역(510)은 루트에 따르기 위해 요구되는 거리 및 시간을 설명하는 루트의 일반적 설명(512)을 포함할 수 있다. 영역(510)은 또한 루트(522)가 사용자에 의해 선택되는 시작 위치로부터 최종 위치까지 연장하는 맵(520)을 포함할 수 있다. 맵(520)은 임의의 적절한 스케일로 제공될 수 있다. 예를 들어, 맵 타일들은 루트(522) 전체를 보여주기에 적절한 스케일에서 제공될 수 있다. 특정 스케일은, 예를 들어, 스케일(524)로서 디스플레이될 수 있다.
스케일(524)이 오직 맵(520)의 작은 코너에서만 제공될 수 있으므로, 스케일(524)로부터 멀리 떨어진 맵(520)의 영역을 볼 때 사용자가 스케일(524)을 계속 다시 참조하는 것이 어렵거나 까다로울 수 있다. 스케일의 추가적인 표시를 사용자에게 제공하기 위해, 맵(520)의 경계(526)는 맵(520)의 스케일을 반영하는 방식으로 불연속적일 수 있다. 예를 들어, 대시(dash)들(527) 사이의 개별 대시들(527) 또는 공간은 스케일(524)에 대응하는 방식으로 크기가 정해질 수 있다. 특히, 각각의 대시(527)는 스케일(524)의 눈금(gradation)에 매치하는 길이를 가질 수 있다(예를 들어, 대시(527)는 스케일(524)에 도시된 0.5 마일에 대응하는 길이를 가진다). 대시들(527)의 분포, 및 대시들의 크기 또는 대시들 사이의 공간들의 크기는 맵(520)을 디스플레이하기 위해 사용되는 스케일에 기초하여 변경될 수 있다. 예를 들어, 대시에 대한 동일한 길이는 상이한 스케일들에서 디스플레이되는 2개의 상이한 맵들 내의 상이한 거리들에 대응할 수 있다.
전자 디바이스는 임의의 적절한 방식을 사용하여 경계의 디멘젼들을 선택할 수 있다. 일부 경우들에서, 전자 디바이스는 맵(520)이 디스플레이되는 스케일을 초기에 결정할 수 있다. 전자 디바이스는 또한 맵(520)의 디멘젼(예를 들어, 높이 및 폭)을 결정할 수 있다. 맵(520)의 디멘젼들에 기초하여, 전자 디바이스는 개별 대시들 및 공간들에 대한 가능한 디멘젼들의 범위를 결정할 수 있다. 범위는 적절한 개수의 대시들 및 공간들이 맵(520)의 각각의 경계 상에 디스플레이되고, 각각의 대시 또는 공간이 사용자에게 유용할 만큼 충분히 짧거나 긴 것을 보장하도록 선택될 수 있다. 전자 디바이스는 이후 맵(520)의 중요한 스케일링된 거리의 길이에 대응하는 결정된 범위 내에서 특정 길이를 선택할 수 있다(예를 들어, 선택된 길이는 맵(520)이 디스플레이되는 스케일에 기초하여 100 피트, 0.5 마일, 10 마일 또는 50 마일에 대응한다). 일부 경우들에서, 영역(510)은 경계(526)의 대시들 및/또는 공간들의 스케일의 표시(예를 들어, 표시(528))를 포함할 수 있다.
중심선(502)에 대해 영역(510)의 반대에 위치될 수 있는 영역(530)은 시작 위치로부터 최종 위치까지 내비게이팅하기 위해 사용자가 따라야 하는 단계들의 리스팅들(532)을 포함할 수 있다. 단계 번호(542), 맵 타일(544) 및 설명(546)은 리스팅들(532) 내의 각각의 단계(540)를 식별하는 역할을 할 수 있다. 단계 번호(542)는 루트(522)를 정의하는 단계들의 시퀀스 내의 번호에 대응할 수 있다.
각각의 단계는 사용자가 취할 턴 또는 도로에 대응하는 지시를 포함할 수 있다. 특정 드라이빙 지시(예를 들어, 턴 또는 직진), 다음 지시까지의 거리, 도로명, 또는 지시를 상세화하는 다른 정보가 설명(546)에서 제공될 수 있다. 정보는 동일한 타입의 정보가 설명(546)의 동일한 영역에 항상 제공되도록 포맷될 수 있다. 예를 들어, 설명은, 제2 라인 상에서의 이동 방향 및 거리명에 선행하여, 제1 라인 상에서 이동할 거리를 포함할 수 있다.
일부 단계들이 오직 기록된 방향들을 사용하는 것을 따르기에는 복잡하고 어려울 수 있으므로, 영역(530)은 각각의 단계에 대응하는 맵 타일들(544)을 포함할 수 있다. 각각의 맵 타일은 단계 근처에서 도로들의 상세 뷰를 포함할 수 있고, 하이라이트된 화살표(445)는 사용자가 따를 특정 도로들을 표시한다.
각각의 맵 타일(544)은 임의의 적절한 스케일 또는 줌에서 제공될 수 있다. 특히, 각각의 타일에 대한 스케일은 임의의 적절한 기준에 기초하여, 예를 들어, 사용자가 방향을 적절하게 따르기에 충분한 상황(context)을 가짐을 보장하기 위해 선택될 수 있다. 상이한 기준은 각각의 맵 타일(544)에 대한 적절한 스케일을 결정하기 위해 사용될 수 있다. 예를 들어, 각각의 타일은, 이러한 각각의 타일이 사용자가 움직이는 동안 결정을 수행하고 방향을 따르기에 충분한 정보를 포함하도록(예를 들어, 사용자가 3 내지 5초 동안 결정하게 하기 위해 충분한 정보를 디스플레이하도록) 스케일링될 수 있다. 결정 시간은 임의의 적절한 인자로부터 결정될 수 있다. 예를 들어, 결정 시간은 단계의 기동(maneuver)(예를 들어, 턴 또는 직진, 또는 얼마나 많이 턴을 할지), 이전 기동, 다음 기동, 사용자가 이동하는, 이동했던 속도, 마찬가지로 이동할 속도, 루트에 대한 이동 또는 교통 모드(예를 들어, 드라이빙 또는 도보), 또는 이들의 조합들 중 하나 이상에 의존할 수 있다.
일부 경우들에서, 몇몇 단계들은 서로 매우 근접할 수 있어서 특정 단계에 대해 요구되는 결정 시간이 이전 단계 또는 다음 단계의 일부분들을 포함할 수 있다. 이러한 경우들에서, 단일 타일은 몇몇 단계들을 디스플레이하는 역할을 할 수 있다. 예를 들어, 도 6의 디스플레이(600)에서 도시된 바와 같이, 리스팅들(632)의 단계(640)는 3개 단계들에 대한 정보(예를 들어, 단계들 8, 9 및 10)뿐만 아니라, 3개 단계들 각각을 통해 루트를 보여주는 타일을 포함할 수 있다.
도 5를 참조하면, 영역(530)은 리스팅들(532)에 임의의 적절한 개수의 단계들을 포함할 수 있다. 일부 경우들에서, 디스플레이된 특정 개수의 단계들은 각각의 프린트된 페이지 상에 밸런싱된 레이아웃을 제공하도록 선택될 수 있다. 예를 들어, 몇몇 페이지들 각각 상에 디스플레이되는 단계들의 개수가 동일하거나 기껏해야 1개 또는 2개 단계들만큼 상이한 것이 바람직할 수 있다. 몇몇 페이지 프린트아웃의 특정 페이지 번호는, 예를 들어, 영역(530)의 코너에 페이지 번호(534)에 의해 표시될 수 있다.
임의의 적절한 인자는 디스플레이할 단계들의 수를 결정하기 위해 사용될 수 있다. 일부 경우들에서, 방향들에 대한 레이아웃을 정의하는 전자 디바이스는 방향들의 전체 수, 이용가능한 용지 사이즈들, 및 단계들의 타입(예를 들어, 몇몇 단계들이 단일 리스팅으로 결합될 수 있는지의 여부)에 기초하여 각각의 페이지 상에 디스플레이할 단계들의 수를 결정할 수 있다. 예를 들어, 전자 디바이스는 각각의 페이지 상의 단계들의 수가 4 내지 8의 범위 내에 있는 레이아웃을 정의할 수 있고, (예를 들어, 오직 하나의 단계를 가지는 최종 페이지를 가지는 것을 회피하기 위해) 최종 페이지는 적어도 3개의 단계들을 가진다. 또다른 예로서, 전자 디바이스는 어떠한 페이지도 디스플레이된 리스팅들 내의 임의의 다른 페이지들보다 2개 초과의(또는 또다른 개수의) 더 많거나 더 적은 단계들을 가지지 않도록 레이아웃을 정의할 수 있다.
각각의 페이지 상에 디스플레이하기 위한 특정 개수의 단계들을 결정하기 위해, 전자 디바이스는 단계들의 리스팅들에서 디스플레이되는 단계들의 수를 먼저 결정할 수 있다. 특히, 디바이스는, 만약 존재하는 경우, 어느 단계들이 리스팅들 내에서 결합되어야 하는지를 결정할 수 있다. 디바이스가 리스팅들 내에 디스플레이할 단계들의 수를 결정하면, 디바이스는 단계들의 수를 페이지 당 디스플레이할 원하는 단계들로 나누고(예를 들어, 5 또는 6으로 나누고), 나머지가 최소 임계 미만인지의 여부를 결정할 수 있다. 일부 경우들에서, 디바이스는 0의 나머지, 또는 제수(dividing number)에 가까운 나머지를 제공하는 단계들의 수를 찾기 위해 원하는 단계들의 범위 각각으로 단계들의 수를 나눌 수 있다. 디바이스가 페이지 당 단계들의 최적의 수를 결정하면, 디바이스는 단계들의 각각의 리스팅이 페이지 당 단계들의 최적의 수를 가지는 레이아웃을 정의할 수 있다. 일부 경우들에서, 상이한 페이지들은 개별 리스팅들 내에 상이한 개수의 단계들을 가질 수 있다.
일부 경우들에서, 페이지 당 디스플레이할 단계들의 원하는 수는 프린트할 용지의 디멘젼에 기초하여 달라질 수 있다. 예를 들어, 편지 사이즈의 용지( letter sized paper) 상의 리스팅들은 바람직하게는 5개 단계들을 가질 수 있는 반면, 법률 용지(legal paper) 상의 리스팅들은 바람직하게는 7개 단계들을 가질 수 있다. 또다른 예로서, A4 용지 상의 리스팅들은 바람직하게는 4개 단계들을 가질 수 있는 반면, A3 용지 상의 리스팅들은 바람직하게는 8개 단계들을 가질 수 있다.
각각의 맵 타일(544) 내에 디스플레이된 루트의 일부분은 임의의 적절한 방식으로 배향될 수 있다. 예를 들어, 각각의 맵 타일은 디스플레이된 맵 상에서 북쪽이 페이지(500)의 최상부를 향하도록 배향될 수 있다. 또다른 예로서, 각각의 맵 타일은 사용자의 이동 방향(예를 들어, 화살표(545)에 의해 표시된 바와 같이)이 페이지(500)의 최상부를 향해 가리키도록 배향될 수 있다.
사용자가 맵(520)에 리스팅들(532) 내의 각각의 단계를 관련시키도록 하기 위해, 맵(520)은 각각이 다수의 특정 단계를 가지는 콜아웃들(521)을 포함할 수 있다. 각각의 단계에 대응하는 맵 타일(544)은 대응하는 콜아웃(521) 근처의 맵(520)의 영역의 스케일링된 뷰를 포함할 수 있다. 위에서 논의된 바와 같이, 각각의 맵 타일(544)에 대해 사용되는 특정 스케일이 상이할 수 있지만, 맵 타일들 모두의 스케일은 통상적으로 콜아웃(521)에 의해 식별되는 맵(520)의 대응하는 부분의 스케일보다 더 클 수 있다.
일부 실시예들에서, 각각의 페이지 상의 맵 개요는 각각의 페이지 상에 프린트되는 특정 단계들에 초점을 둘 수 있다. 루트의 특정 부분들(예를 들어, 시작 및 종료)은 루트의 다른 단계들보다 관심 있거나 또는 더 어려운 단계들을 가질 수 있다. 따라서, 프린트되는 맵이 레이아웃되는 경우, 맵 개요는 다른 콜아웃들을 보여주지 않고, 페이지 상에 리스팅되는 단계들에 대응하는 콜아웃들만을 보여줄 수 있다. 예를 들어, 도 5를 참조하면, 맵(520)이 리스팅(532) 내의 단계들에 대한 포커스를 가지고 디스플레이되는 경우, 시작 단계 및 단계들(1-4)과 연관된 콜아웃들만이 보여질 것이다. 유사하게, 도 6을 참조하면, 단계들(5-10) 및 종료와 연관된 콜아웃들만이 리스팅(532)에서 포커스된 개요 맵에 보여질 것이다.
일부 경우들에서, 특정 관심 포인트들은 루트와 함께 레이아웃에 포함될 수 있다. 예를 들어, 맵(520)은 루트를 따라 관심 포인트들을 포함할 수 있다. 일부 경우들에서, 디스플레이된 특정 관심 포인트들은 루트의 특성들에 기초하여 선택될 수 있다. 예를 들어, 주유소들을 식별하는 콜아웃들 또는 다른 정보는 루트가 특정 거리 또는 듀레이션을 초과하는 경우(예를 들어, 사용자가 루트를 계속하기 위해 연료충전할 필요가 있을 가능성이 있는 경우) 디스플레이될 수 있다. 또다른 예로서, 커피숍에 대한 콜아웃들은, 사용자가 아침에, 또는 이른 또는 늦은 밤일 것으로 예상되는 이동에 대해 방향들을 프린트하는 경우, 디스플레이될 수 있다.
방향들을 프린트하는 것에 추가하여, 전자 디바이스는 맵 상에 관심 포인트들을 프린트아웃하기 위해 사용될 수 있다. 예를 들어, 사용자는 관심 포인트의 특정 타입을 탐색하기 위해 맵 애플리케이션을 사용할 수 있다. 도 7은 관심 포인트들이 본 발명의 일부 실시예들에 따라 디스플레이되는 맵의 예시적인 디스플레이의 개략적 뷰이다. 디스플레이(700)는 특정 영역의 맵(710)을 포함할 수 있고, 여기서, 탐색 바(712)에 입력된 탐색에 대응하는 관심 포인트들이 디스플레이된다. 예를 들어, 맵(710)은 각각이 특정 관심 포인트를 식별하는 콜아웃들(720)을 포함할 수 있다. 관심 포인트들을 가지는 맵(710)을 프린트아웃하기 위해, 사용자는 프린트 명령을 제공할 수 있다(예를 들어, 프린트 옵션(730)을 선택한다). 일부 경우들에서, 목적지 근처의 관심 포인트들을 가지는 맵은 (예를 들어, 자동으로 또는 사용자 명령에 응답하여) 목적지로의 방향과 함께 프린트될 수 있다.
관심 포인트들을 가지는 맵을 프린트하기 위한 명령을 수신하는 것에 응답하여, 전자 디바이스는 맵 및 관심 포인트들이 제공되는 레이아웃을 정의할 수 있다. 도 8은 본 발명의 일부 실시예들에 따라 맵 및 관심 포인트들이 디스플레이되는 예시적인 프린팅 레이아웃의 개략적 뷰이다. 페이지(800)는 전술된 페이지(500)(도 5)의 대응하는 영역들의 일부 또는 모든 특징들을 가질 수 있는, 영역(810) 및 영역(830)을 포함할 수 있다. 영역(810)은 도로들 및 다른 정보가 특정 스케일에서 디스플레이되는 맵(820)을 포함할 수 있다. 맵(820)은 맵의 상이한 영역들에 배치되는 콜아웃들(821)을 포함할 수 있고, 여기서 각각의 콜아웃은 특정 관심 포인트(예를 들어, 탐색 용어들(812)에 대응하는 관심 포인트들)의 위치에 대응한다.
영역(830)에서, 예를 들어, 영역(810)의 열에 인접한 열에서, 페이지(800)는 관심 포인트들의 리스팅들(832)을 포함할 수 있다. 각각의 리스팅(840)은 특정 콜아웃에 대응하는 식별자(842)를 포함할 수 있다. 리스팅의 관심 포인트를 찾을(locating) 시에 사용자를 보조하기 위해, 각각의 리스팅은 관심 포인트의 상세 뷰 및 포지션을 제공하는 맵 타일(844)을 포함할 수 있다. 관심 포인트를 기술하는 추가적인 상세항목들, 그것의 주소, 연락처 정보, 운영 시간들, 웹사이트들, 또는 다른 이러한 정보가 설명(846)에 제공될 수 있다.
페이지(800)는 임의의 적절한 개수의 콜아웃들 및 리스팅들을 포함할 수 있다. 일부 경우들에서, 맵(820) 상에 디스플레이되는 콜아웃들의 수는 리스팅들(832) 내의 리스팅들의 수에 매치할 수 있다. 대안적으로, 관심 포인트들의 리스팅들은 몇몇 페이지들 상에 프린트될 수 있고, 여기서, 맵(820)은 상이한 페이지들 상에 프린트되는 리스팅들에 대한 콜아웃들을 포함한다. 관심 포인트들은, 예를 들어, 특정 위치로부터의 거리, 등급들, 인기도, 명칭, 가용성, 관련성, 또는 임의의 다른 이러한 기준에 기초하는 것을 포함하여 임의의 적절한 순서로 제공될 수 있다.
도 9는 본 발명의 일부 실시예들에 따라, 시작 위치로부터 목적지까지 방향들을 프린트하기 위한 예시적인 프로세스의 흐름도이다. 프로세스(900)는 단계(902)에서 시작할 수 있다. 단계(904)에서, 시작 위치로부터 목적지까지 내비게이팅하기 위한 단계들의 시퀀스가 식별될 수 있다. 예를 들어, 전자 디바이스는 시작 포인트 및 목적지를 수신하고, 목적지까지 내비게이팅하기 위한 루트를 결정할 수 있다. 단계(906)에서, 단계들의 시퀀스를 프린트할 페이지들의 수가 결정될 수 있다. 예를 들어, 디바이스는 단계들이 하나의 페이지 상에 모두 맞춰질 것인지 여부를 결정할 수 있다. 그렇지 않은 경우, 디바이스는 (예를 들어, 모든 프린트된 페이지 상에 밸런싱된 레이아웃을 제공하기 위해) 각각의 페이지 상에 프린트되는 단계들의 수에서의 차이가 2를 초과하지 않도록, 각각의 페이지 상에 배치할 단계들의 최적의 수를 결정할 수 있다. 단계(908)에서, 방향들을 프린트하기 위한 레이아웃이 정의될 수 있다. 예를 들어, 디바이스는 시작 포지션으로부터 목적지까지의 루트의 개요를 보여주는 맵을 검색하고, 각각의 페이지의 제1 영역(예를 들어, 경관 뷰(landscape view)에서 좌측 열) 내에 맵을 배치할 수 있다. 또다른 예로서, 디바이스는 루트를 내비게이팅하기 위한 단계들의 리스팅을 정의할 수 있고, 리스팅 내의 각각의 엔트리는 단계 번호, 맵 타일, 및 단계 설명을 포함한다. 단계(910)에서, 레이아웃은 프린팅을 위해 프린팅 시스템에 제공될 수 있다. 예를 들어, 전자 디바이스는 검색된 컨텐츠를 가지는 레이아웃을 프린트하기 위해 프린팅 시스템을 개시할 수 있다. 프로세스(900)는 이후 단계(912)에서 종료할 수 있다.
도 10은 본 발명의 일부 실시예들에 따라 하나 이상의 페이지들 상에서 단계들의 레이아웃을 결정하기 위한 예시적인 프로세스의 흐름도이다. 프로세스(1000)는 단계(1002)에서 시작할 수 있다. 단계(1004)에서, 시작 위치로부터 최종 위치까지의 루트에서의 방향들 또는 단계들의 수가 결정될 수 있다. 예를 들어, 전자 디바이스는 시작 위치 및 최종 위치를 포함하는, 단계들의 수를 카운트할 수 있다. 단계(1006)에서, 디바이스는 단계들 중 임의의 것이 단일 리스팅으로 결합될 수 있는지의 여부를 결정할 수 있다. 예를 들어, 전자 디바이스는, 둘 이상의 단계들이 (예를 들어, 지리적으로) 서로 근접하고 따라서 단일의 상세화된 맵 타일이 둘 이상의 단계들을 동시에 보여줄 수 있는지의 여부를 결정할 수 있다. 디바이스가 일부 단계들이 단일 리스팅으로 결합될 수 있다고 결정하는 경우, 프로세스(1000)는 단계(1008)로 이동하여, 루트의 단계들 모두를 디스플레이하기 위해 요구되는 리스팅들의 실제 개수에 대응하는 리스팅들의 감소한 개수를 결정할 수 있다. 프로세스(1000)는 이후 단계(1010)로 이동할 수 있다.
단계(1006)에서, 전자 디바이스가 대신 어떠한 단계들도 단일 리스팅 내로 결합될 수 없다고 결정하는 경우, 프로세스(1000)는 단계(1010)로 이동할 수 있다. 단계(1010)에서, 디바이스는 루트를 보여주기 위해 요구되는 리스팅들이 단일 페이지 상에 맞을 수 있는지의 여부를 결정할 수 있다. 예를 들어, 디바이스는 단계들의 전체 수, 또는 리스팅들의 감소한 수가 페이지 당 리스팅들의 최대 수보다 더 작은지의 여부를 결정할 수 있다. 전자 디바이스가, 리스팅들이 단일 페이지 상에 맞을 수 있다고 결정하는 경우, 프로세스(1000)는 리스팅들이 단일 페이지 상에 레이아웃될 수 있는 단계(1012)로 이동할 수 있다. 프로세스(1000)는 이후 단계(1014)에서 종료할 수 있다.
단계(1010)에서, 전자 디바이스가, 대신 단계들이 단일 페이지 상에 맞을 수 없다고 결정하는 경우, 프로세스(1000)는 단계(1016)로 이동할 수 있다. 단계(1016)에서, 리스팅들을 프린트할 페이지들의 최적의 수가 결정될 수 있다. 예를 들어, 전자 디바이스는 각각의 페이지가 미리 결정된 범위 내에 있는 리스팅들의 수(예를 들어, 4 내지 7개 리스팅들)를 포함할 수 있도록 페이지들의 수를 선택할 수 있다. 일부 경우들에서, 전자 디바이스는 어떠한 페이지도 또다른 페이지보다 실질적으로 더 많거나 더 적은 리스팅들을 포함하지 않도록(예를 들어, 어떠한 페이지도 임의의 다른 페이지보다 2개 더 많은 리스팅들을 포함하지 않도록) 페이지들의 수를 추가로 선택할 수 있다. 단계(1018)에서, 리스팅들은 결정된 수의 페이지들 상에 레이아웃될 수 있다. 예를 들어, 전자 디바이스는 각각의 페이지가 실질적으로 동일한 수의 리스팅들을 포함하도록 리스팅들을 배치할 수 있다. 프로세스(1000)는 이후 단계(1014)에서 종료할 수 있다.
다양한 상이한 맵 프린팅 실시예들은 본 발명의 원리들에 따른 실시예를 사용하여 실현될 수 있다. 예를 들어, 사용자가 특정 루트를 보고 있는 것이라기보다는 맵을 보고 있는 시간들이 존재할 수 있다. 사용자는 디스플레이된 맵 상의 다양한 위치들을 줌인할 수 있고, 스크린 상에 보여진 바와 같이 정확하게 맵을 프린트하기를 원할 수 있다. 따라서, 사용자는 자신이 스크린 상에서 보고 있는 동일한 줌 레벨에서 맵을 프린트할 수 있다. 프린트아웃은 사용자로부터의 추가적인 입력 없이 사용자가 보고 있는 위치를 자동으로 디스플레이하기 위해 맵의 중심을 역-지오코딩(reverse-geocode)한다.
본 발명의 실시예들 중 다수는 개인 컴퓨팅 디바이스들에 대해 여기서 기술되지만, 본 발명이 개인 컴퓨팅 애플리케이션에 제한되는 것이 아니라 일반적으로 다른 응용예들에 적용가능하다는 점이 이해되어야 한다.
일부 경우들에서, 기술된 실시예들에 대해 사용되는 디바이스는 유선 또는 무선 통신 채널(1102)을 통해 컴퓨팅 시스템(1103)(도 11)과 상호작용하기 위한 터치 입력을 수신할 수 있는 터치 I/O 디바이스(1101)를 포함할 수 있다. 터치 I/O 디바이스(1101)는 키보드, 마우스 등과 같은 다른 입력 디바이스들 대신 또는 이들과 결합하여 컴퓨팅 시스템(1103)에 사용자 입력을 제공하기 위해 사용될 수 있다. 하나 이상의 터치 I/O 디바이스들(1101)은 컴퓨팅 시스템(1103)에 사용자 입력을 제공하기 위해 사용될 수 있다. 터치 I/O 디바이스(1101)는 컴퓨팅 시스템(1103)의 통합 부분(예를 들어, 랩톱 상의 터치 스크린)일 수 있거나 또는 컴퓨팅 시스템(1103)과는 별도일 수 있다.
터치 I/O 디바이스(1101)는 전체적으로 또는 부분적으로 투명하고, 반투명하고, 투명하지 않고, 불투명하거나 또는 이들의 임의의 조합인 터치 감지 패널을 포함할 수 있다. 터치 I/O 디바이스(1101)는 터치 스크린, 터치 패드, 터치 패드로서 기능하는 터치 스크린(예를 들어, 랩톱의 터치 패드를 대체하는 터치 스크린), 임의의 다른 입력 디바이스와 결합되거나 이와 통합된 터치 스크린 또는 터치패드(예를 들어, 키보드 상에 배치된 터치 스크린 또는 터치패드) 또는 터치 입력을 수신하기 위한 터치 감지 표면을 가지는 임의의 다차원 오브젝트로서 구현될 수 있다.
일 예에서, 터치 스크린으로서 구현되는 터치 I/O 디바이스(1101)는 디스플레이의 적어도 일부분 위에 부분적으로 또는 완전히 위치되는 투명 및/또는 반투명 터치 감지 패널을 포함할 수 있다. 이러한 실시예에 따라, 터치 I/O 디바이스(1101)는 컴퓨팅 시스템(1103)(및/또는 또다른 소스)으로부터 전송되는 그래픽 데이터를 디스플레이하도록 기능하고, 또한 사용자 입력을 수신하도록 기능한다. 다른 실시예들에서, 터치 I/O 디바이스(1101)는, 터치 감지 컴포넌트들/디바이스들이 디스플레이 컴포넌트들/디바이스들과 일체화된 집적된 터치 스크린으로서 구현될 수 있다. 또다른 실시예들에서, 터치 스크린은 프라이머리 디스플레이와 동일한 또는 보조적인 그래픽 데이터를 디스플레이하고 터치 입력을 수신하기 위한 보조적 또는 추가적인 디스플레이 스크린으로서 사용될 수 있다.
터치 I/O 디바이스(1101)는 용량성(capacitive), 저항성, 광학적, 음향적, 유도성, 기계적, 화학적 측정들, 또는 디바이스(1101)의 근처에서의 하나 이상의 터치들 또는 근접 터치들의 발생에 대해 측정될 수 있는 임의의 현상에 기초하여 디바이스(1101) 상의 하나 이상의 터치들 또는 근접 터치들의 위치를 검출하도록 구성될 수 있다. 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합은 하나 이상의 제스쳐들을 식별하고 추적하기 위해 검출된 터치들의 측정들을 프로세싱하기 위해 사용될 수 있다. 제스쳐는 고정식 또는 비-고정식인, 단일 또는 다수의, 터치 I/O 디바이스(1101) 상의 터치들 또는 근접 터치들에 대응할 수 있다. 제스쳐는, 본질적으로 동시에, 인접하게, 또는 연속적으로, 탭핑, 누름, 록킹(rocking), 스크러빙, 트위스팅, 배향 변경, 가변적인 압력을 이용한 누름 등과 같은, 터치 I/O 디바이스(1101) 상에서 특정 방식으로 하나 이상의 손가락들 또는 다른 오브젝트들을 이동시킴으로써 수행될 수 있다. 제스쳐는 핀칭(pinching), 슬라이딩, 스와이핑(swiping), 회전, 구부리기(flexing), 드래깅, 또는 임의의 다른 손가락 또는 손가락들 사이의 또는 이들을 이용한 탭핑 모션을 특징으로 할 수 있지만 이에 제한되지 않는다. 단일 제스쳐는 하나 이상의 손들을 이용하여, 하나 이상의 사용자들에 의해, 또는 이들의 임의의 조합으로 수행될 수 있다.
컴퓨팅 시스템(1103)은 그래픽 사용자 인터페이스(GUI)를 디스플레이하기 위해 그래픽 데이터를 가지고 디스플레이를 구동시킬 수 있다. GUI는 터치 I/O 디바이스(1101)를 통해 터치 입력을 수신하도록 구성될 수 있다. 터치 스크린으로서 구현되면, 터치 I/O 디바이스(1101)는 GUI를 디스플레이할 수 있다. 대안적으로 GUI는 터치 I/O 디바이스(1101)와는 별도로 디스플레이 상에 디스플레이될 수 있다. GUI는 인터페이스 내의 특정 위치들에서 디스플레이되는 그래픽 엘리먼트들을 포함할 수 있다. 그래픽 엘리먼트들은 가상 스크롤 휠들, 가상 키보드, 가상 노브들, 가상 버튼들, 임의의 가상 UI 등을 포함하는 다양한 디스플레이된 가상 입력 디바이스들을 포함할 수 있지만 이에 제한되지 않는다. 사용자는 GUI의 그래픽 엘리먼트들과 연관될 수 있는 터치 I/O 디바이스(1101) 상의 하나 이상의 특정 위치들에서 제스쳐들을 수행할 수 있다. 다른 실시예들에서, 사용자는 GUI의 그래픽 엘리먼트들의 위치들과는 독립적인 하나 이상의 위치들에서 제스쳐들을 수행할 수 있다. 터치 I/O 디바이스(1101) 상에서 수행되는 제스쳐들은 직접적으로 또는 간접적으로, GUI 내의 커서들, 아이콘들, 미디어 파일들, 리스트들, 텍스트, 또는 이미지들의 모두 또는 일부분들 등과 같은 그래픽 엘리먼트들을 조작하고, 제어하고, 수정하고, 이동시키고, 액츄에이트하고, 개시하거나 또는 이들에 일반적으로 영향을 줄 수 있다. 예를 들어, 터치 스크린의 경우, 사용자는 터치 스크린 상의 그래픽 엘리먼트 상에서 제스쳐를 수행함으로써 그래픽 엘리먼트와 직접적으로 상호작용할 수 있다. 대안적으로, 터치 패드는 일반적으로 간접적 상호작용을 제공한다. 제스쳐들은 또한 디스플레이되지 않은 GUI 엘리먼트들에 영향을 줄 수 있거나(예를 들어, 사용자 인터페이스들이 나타나도록 함), 또는 컴퓨팅 시스템(1103) 내의 다른 동작들에 영향을 줄 수 있다(예를 들어, GUI, 애플리케이션, 또는 운영 체제의 상태 또는 모드에 영향을 줌). 제스쳐들은 디스플레이된 커서와 함께 터치 I/O 디바이스(1101) 상에서 수행될 수 있거나 수행되지 않을 수 있다. 예를 들어, 제스쳐들이 터치 패드 상에서 수행되는 경우, 커서(또는 포인터)는 디스플레이 스크린 또는 터치 스크린 상에 디스플레이될 수 있고, 커서는 디스플레이 스크린 상의 그래픽 오브젝트들과 상호작용하기 위해 터치 패드 상의 터치 입력을 통해 제어될 수 있다. 제스쳐들이 터치 스크린 상에서 직접적으로 수행되는 다른 실시예들에서, 사용자는, 터치 스크린 상에 디스플레이되는 커서 또는 포인터를 가지고 또는 이들 없이, 터치 스크린 상의 오브젝트들과 직접적으로 상호작용할 수 있다.
피드백은 터치 I/O 디바이스(1101) 상에서의 터치 또는 근접 터치들에 기초하여 또는 이들에 응답하여 통신 채널(1102)을 통해 사용자에게 제공될 수 있다. 피드백은 가변적 또는 비-가변적 방식으로, 광학적으로, 기계적으로, 전기적으로, 후각적으로, 음향적으로 등의 식으로 또는 이들의 임의의 조합으로 전송될 수 있다.
이제, 통신 디바이스(예를 들어, 모바일 전화, 스마트 폰), 멀티미디어 디바이스(예를 들어, MP3 플레이어, TV, 라디오), 휴대용 또는 핸드헬드 컴퓨터(예를 들어, 태블릿, 넷북, 랩톱), 데스크톱 컴퓨터, 올인원 데스크톱, 주변 디바이스, 또는 시스템 아키텍쳐(1200)의 포함에 대해 적응가능한 임의의 다른 시스템 또는 디바이스를 포함하지만 이에 제한되지 않는, 이러한 타입들의 디바이스들 중 둘 이상의 디바이스들의 조합들을 포함하는, 임의의 휴대용 또는 비-휴대용 디바이스 내에서 구현될 수 있는 시스템 아키텍쳐의 실시예들에 관해 주목된다. 도 12는 일반적으로, 하나 이상의 컴퓨터-판독가능한 매체들(1201), 프로세싱 시스템(1204), 입력/출력(I/O) 서브시스템(2006), 라디오 주파수(RF) 회로(1208) 및 오디오 회로(1210)를 포함하는 시스템(1200)의 일 실시예의 블록도이다. 이들 컴포넌트들은 하나 이상의 통신 버스들 또는 신호 라인들(1203)에 의해 커플링될 수 있다.
도 12에 도시된 아키텍쳐가 시스템(1200)의 단지 하나의 예시적인 아키텍쳐이며, 시스템(1200)이 도시된 것보다 더 많거나 더 적은 컴포넌트들, 또는 상이한 컴포넌트들의 구성을 가질 수 있다는 점이 명백해야 한다. 도 12에 도시된 다양한 컴포넌트들은, 하나 이상의 신호 프로세싱 및/또는 주문형 집적 회로들(application specific integrated circuits)을 포함하여, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수 있다.
RF 회로(1208)는 하나 이상의 다른 디바이스들에 무선 링크 또는 네트워크를 통해 정보를 송신 및 수신하기 위해 사용되고, 이러한 기능을 수행하기 위한 공지된 회로를 포함한다. RF 회로(1208) 및 오디오 회로(1210)는 주변 인터페이스(1216)를 통해 프로세싱 시스템(1204)에 커플링된다. 인터페이스(1216)는 주변 장치들 및 프로세싱 시스템(1204) 사이의 통신을 설정 및 유지하기 위한 다양한 공지된 컴포넌트들을 포함한다. 오디오 회로(1210)는 오디오 스피커(1250) 및 마이크로폰(1252)에 커플링되고, 사용자가 다른 사용자들과 실시간으로 통신할 수 있도록 하기 위해 인터페이스(1216)로부터 수신된 음성 신호들을 프로세싱하기 위한 공지된 회로를 포함한다. 일부 실시예들에서, 오디오 회로(1210)는 헤드폰 잭(미도시)을 포함한다.
주변 인터페이스(1216)는 프로세서(1218) 및 컴퓨터-판독가능한 매체(1201)에 시스템의 입력 및 출력 주변장치들을 커플링시킨다. 하나 이상의 프로세서들(1218)은 제어기(1220)를 통해 하나 이상의 컴퓨터 판독가능한 매체(1201)와 통신한다. 컴퓨터-판독가능한 매체(1201)는 하나 이상의 프로세서들(1218)에 의한 사용을 위한 코드 및/또는 데이터를 저장할 수 있는 임의의 디바이스 또는 매체일 수 있다. 매체(1201)는 캐시, 주 메모리 및 보조 메모리를 포함하지만 이에 제한되지 않는 메모리 계층을 포함할 수 있다. 메모리 계층은 RAM(예를 들어, SRAM, DRAM, DDRAM) , ROM, FLASH, 자기 및/또는 광학 저장 디바이스들, 예를 들어, 디스크 드라이브들, 자기 테이프, CD들(컴팩트 디스크들) 및 DVD들(디지털 비디오 디스크들)의 임의의 조합을 사용하여 구현될 수 있다. 매체(1201)는 또한 (신호들이 변조되는 반송파에 의해 또는 반송파 없이) 컴퓨터 명령들 또는 데이터를 표시하는 정보-베어링 신호들을 전달하기 위한 전송 매체를 포함할 수 있다. 예를 들어, 전송 매체는 인터넷(또한, 월드 와이드 웹으로서 참조됨), 인트라넷(들), 로컬 영역 네트워크(LAN)들, 와이드 로컬 영역 네트워크(WLAN)들, 저장 영역 네트워크(SAN)들, 도심 영역 네트워크(MAN:Metropolitan Area Network)들 등을 포함하지만 이에 제한되지 않는 통신 네트워크를 포함할 수 있다.
하나 이상의 프로세서들(1218)은 시스템(1200)에 대한 다양한 기능들을 수행하기 위해 매체(1201) 내에 저장된 다양한 소프트웨어 컴포넌트들을 실행한다. 일부 실시예들에서, 소프트웨어 컴포넌트들은 운영 체제(1222), 통신 모듈(또는 명령들의 세트)(1224), 터치 프로세싱 모듈(또는 명령들의 세트)(1226), 그래픽 모듈(또는 명령들의 세트)(1228), 하나 이상의 애플리케이션들(또는 명령들의 세트)(1230), 및 프린팅 모듈(또는 명령들의 세트)(1238)을 포함한다. 이들 모듈들 각각 및 위에서 주지된 애플리케이션들은 전술된 하나 이상의 기능들 및 이 출원에서 기술된 방법들(예를 들어, 여기서 기술된 컴퓨터-구현 방법들 및 다른 정보 프로세싱 방법들)을 수행하기 위한 명령들의 세트에 대응한다. 이들 모듈들(즉, 명령들의 세트)은 별도의 소프트웨어 프로그램들, 프로시져들 또는 모듈들로서 구현될 필요가 없으며, 따라서, 이들 모듈들의 다양한 서브세트들은 다양한 실시예들에서 결합되거나 그렇지 않은 경우 재배열될 수 있다. 일부 실시예들에서, 매체(1201)는 위에서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한, 매체(1201)는 전술되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.
운영 체제(1222)는 다양한 프로시져들, 명령들의 세트들, 일반적 시스템 작업들(예를 들어, 메모리 관리, 저장 디바이스 제어, 전력 관리 등)을 제어하고 관리하기 위한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함하고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 사이의 통신을 용이하게 한다.
통신 모듈(1224)은 RF 회로(1208)를 통해 또는 하나 이상의 외부 포트들(1236) 상에서 다른 디바이스들과의 통신을 용이하게 하고, RF 회로(1208) 및/또는 외부 포트(1236)로부터 수신된 데이터를 핸들링하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다.
그래픽 모듈(1228)은 디스플레이 표면 상에서 그래픽 오브젝트들을 렌더링하고, 애니메이팅하고, 디스플레이하기 위한 다양한 공지된 소프트웨어 컴포넌트들을 포함한다. 터치 I/O 디바이스(1212)가 터치 감지 디스플레이(예를 들어, 터치 스크린)인 실시예들에서, 그래픽 모듈(1228)은 터치 감지 디스플레이 상에서 오브젝트들을 렌더링하고, 디스플레이하고 애니메이팅하기 위한 컴포넌트들을 포함한다.
하나 이상의 애플리케이션(1230)은, 브라우저, 주소록, 연락처 리스트, 이메일, 인스턴트 메시징, 워드 프로세싱, 키보드 에뮬레이션, 위젯들, JAVA-인에이블 애플리케이션들, 암호화, 디지털 권한 관리, 음성 인식, 음성 복제, (예를 들어, 글로벌 포지셔닝 시스템(GPS)에 의해 제공되는 것과 같은) 위치 결정 능력, 음악 플레이어 등을 제한 없이 포함하는, 시스템(1200) 상에 설치되는 임의의 애플리케이션들을 포함할 수 있다.
터치 프로세싱 모듈(1226)은 터치 I/O 디바이스 제어기(1232)를 통해 I/O 디바이스(1212)로부터 수신되는 터치 입력을 수신하고 프로세싱하는 것을 포함하지만 이에 제한되지 않는, 터치 I/O 디바이스(1212)와 연관된 다양한 작업들을 수행하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다.
포지션 모듈(1239)은 시스템(1200)의 현재 포지션을 검출하기 위한 다양한 소프트에어 컴포넌트들을 포함할 수 있다. 예를 들어, 모듈(1239)은, GPS 수신기, RF 삼각측량(triangulation) 검출기 또는 센서, 또는 시스템(1200)의 지리적 또는 물리적 위치를 결정하도록 구성되는 임의의 다른 포지셔닝 회로를 포함할 수 있는, RF 회로(1208)와 상호작용함으로써 포지션을 결정할 수 있다. 모듈(1239)은 또한 시스템(1200)의 지리적 또는 물리적 위치를 결정하거나, 또는 맵에 대응하는 맵핑 타일들을 검색하기 위해 하나 이상의 원격 서버들 또는 통신 네트워크들과 통신하도록 동작할 수 있다.
시스템(1200)은 도 3-10에 대해 여기서 기술된 바와 같은 방법/기능들을 수행하기 위한 프린팅 모듈(1238)을 더 포함할 수 있다. 프린팅 모듈(1238)은 적어도, 프린팅 레이아웃을 정의하고 프린팅 시스템에 프린팅 명령들을 전송하도록 기능할 수 있다. 모듈(1238)은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로서 구현될 수 있다. 모듈(1238)은 매체(1201) 내에 상주하는 것으로 도시되지만, 모듈(1238)의 모두 또는 일부분들이 시스템(1200) 내의 다른 컴포넌트들 내에서 구현될 수 있거나, 또는 시스템(1200) 내에 별도의 컴포넌트로서 완전히 구현될 수 있다.
I/O 서브시스템(2006)은 다양한 기능들을 제어하거나 수행하기 위해 터치 I/O 디바이스(1212) 및 하나 이상의 다른 I/O 디바이스들(1214)에 커플링된다. 터치 I/O 디바이스(1212)는, 사용자 터치 입력을 프로세싱하기 위한 다양한 컴포넌트들(예를 들어, 스캐닝 하드웨어)을 포함하는, 터치 I/O 디바이스 제어기(1232)를 통해 프로세싱 시스템(1204)과 통신한다. 하나 이상의 다른 입력 제어기들(1234)은 다른 I/O 디바이스들(1214)로부터/로 전기 신호들을 수신/송신한다. 다른 I/O 디바이스들(1214)은 물리적 버튼들, 다이얼들, 슬라이더 스위치들, 스틱들, 키보드들, 터치 패드들, 추가적인 디스플레이 스크린들, 또는 이들의 임의의 조합을 포함할 수 있다.
터치 스크린으로서 구현되는 경우, 터치 I/O 디바이스(1212)는 GUI에서 사용자에게 시각적 출력을 디스플레이한다. 시각적 출력은 텍스트, 그래픽, 비디오, 및 이들의 임의의 조합을 포함할 수 있다. 시각적 출력의 일부 또는 모두가 사용자-인터페이스 오브젝트들에 대응할 수 있다. 터치 I/O 디바이스(1212)는 사용자로부터의 터치 입력을 수용하는 터치-감지 표면을 형성한다. 터치 I/O 디바이스(1212) 및 터치 스크린 제어기(1232)(매체(2001) 내의 임의의 연관된 모듈들 및/또는 명령들의 세트들과 함께)는 터치 I/O 디바이스(1212) 상에서 터치 또는 근접 터치들(및 터치의 임의의 이동 또는 릴리즈)을 검출 및 추적하고, 검출된 터치 입력을 하나 이상의 사용자-인터페이스 오브젝트들과 같은 그래픽 오브젝트들과의 상호작용으로 변환한다. 디바이스(1212)가 터치 스크린으로서 구현되는 경우, 사용자는 터치 스크린 상에 디스플레이되는 그래픽 오브젝트들과 직접적으로 상호작용할 수 있다. 대안적으로, 디바이스(1212)가 터치 스크린이 아닌 터치 디바이스(예를 들어, 터치 패드)로서 구현되는 경우, 사용자는 I/O 디바이스(1214)로서 구현되는 별도의 디스플레이 스크린 상에 디스플레이되는 그래픽 오브젝트들과 간접적으로 상호작용할 수 있다.
터치 I/O 디바이스(1212)는 후속하는 미국 특허 6,323,846 (Westerman 등), 6,570,557 (Westerman 등), 및/또는 6,677,932 (Westerman), 및/또는 미국 특허 공보 2002/0015024A1에 기술된 멀티-터치 감지 표면과 유사할 수 있으며, 이들 각각은 참조로 여기에 포함된다.
터치 I/O 디바이스(1212)가 터치 스크린인 실시예들에서, 터치 스크린은 LCD(액정 디스플레이) 기술, LPD(발광 폴리머 디스플레이) 기술, OLED(유기 LED), 또는 OEL(유기 전계 발광:organic electro luminescence)을 사용할 수 있지만, 다른 디스플레이 기술들이 다른 실시예들에 사용될 수 있다.
피드백은 사용자의 터치 입력 뿐만 아니라 디스플레이되고 있는 것의 그리고/또는 컴퓨팅 시스템의 상태 또는 상태들에 기초하여 터치 I/O 디바이스(1212)에 의해 제공될 수 있다. 피드백은 가변적 또는 비-가변적 방식으로, 광학적으로(예를 들어, 광 신호 또는 디스플레이되는 이미지), 기계적으로(예를 들어, 햅틱 피드백, 터치 피드백, 힘 피드백 등), 전기적으로(예를 들어, 전기적 자극), 후각적으로, 음향적으로(예를 들어, 비프 등), 등으로, 또는 이들의 임의의 조합으로 전송될 수 있다.
시스템(1200)은 또한 다양한 하드웨어 컴포넌트들에 전력을 공급하기 위한 전력 시스템(1244)을 포함하고, 전력 관리 시스템, 하나 이상의 전원들, 재충전 시스템, 정전 검출 회로, 전력 컨버터 또는 인버터, 전력 상태 표시기, 및 휴대용 디바이스들에서 전력의 생성, 관리 및 분배와 통상적으로 연관된 임의의 다른 컴포넌트들을 포함할 수 있다.
일부 실시예들에서, 주변 인터페이스(1216), 하나 이상의 프로세서들(1218), 및 메모리 제어기(1220)는 프로세싱 시스템(1204)과 같은 단일 칩 상에 구현될 수 있다. 일부 다른 실시예들에서, 이들은 별도의 칩들 상에 구현될 수 있다.
일부 경우들에서, 하나 이상의 응용 프로그래밍 인터페이스(API)들이 일부 실시예들에서 사용될 수 있다. API는 상이한 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트(이하, "API-호출 컴포넌트")로 하여금 하나 이상의 함수들, 메소드들, 프로시져들, 데이터 구조들, 클래스들, 및/또는 API-구현 컴포넌트에 의해 제공되는 다른 서비스들에 액세스하고 이들을 사용하게 하는 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트(이하, "API-구현 컴포넌트")에 의해 구현되는 인터페이스이다. API는 API-호출 컴포넌트 및 API-구현 컴포넌트 사이에서 전달되는 하나 이상의 파라미터들을 정의할 수 있다.
API는 API-호출 컴포넌트의 개발자(이는 제3자 개발자일 수 있음)가 API-구현 컴포넌트에 의해 제공되는 특정된 특징들을 레버리지하도록 한다. 하나의 API-호출 컴포넌트가 존재할 수 있거나, 하나 초과의 이러한 컴포넌트가 존재할 수 있다. API는 애플리케이션으로부터의 서비스들을 위한 요청들을 지원하기 위해 컴퓨터 시스템 또는 프로그램 라이브러리가 제공하는 소스 코드 인터페이스일 수 있다. 운영 체제(OS)는 OS 상에서 실행하는 애플리케이션들로 하여금 해당 API들 중 하나 이상을 호출하게 하기 위한 다수의 API들을 가질 수 있고, 서비스(예를 들어, 프로그램 라이브러리)는 서비스를 사용하는 애플리케이션으로 하여금 해당 API들 중 하나 이상을 호출하게 하기 위한 다수의 API들을 가질 수 있다. API는 애플리케이션이 구축될 때 해석 또는 컴파일링될 수 있는 프로그램밍 언어의 견지에서 특정될 수 있다.
일부 실시예들에서, API-구현 컴포넌트는, 각각이 API-구현 컴포넌트에 의해 구현되는 기능성의 상이한 양상들에 액세스하는 상이한 양상들을 가지는 또는 상이한 양상들의 상이한 뷰를 제공하는, 하나 초과의 API를 제공할 수 있다. 예를 들어, API-구현 컴포넌트의 하나의 API는 함수들의 제1 세트를 제공할 수 있고, 제3자 개발자들에게 노출될 수 있고, API-구현 컴포넌트의 또다른 API는 숨겨질 수 있고(노출되지 않음), 함수들의 제1 세트의 서브세트를 제공하고 또한 함수들의 제1 세트 내에 있지 않은 테스팅 또는 디버깅 함수들과 같은 함수들의 또다른 세트를 제공할 수 있다. 다른 실시예들에서, API-구현 컴포넌트는 그 자체가 기반 API를 통해 하나 이상의 다른 컴포넌트들을 호출할 수 있고, 따라서, API-호출 컴포넌트 및 API-구현 컴포넌트 모두일 수 있다.
API는 API-구현 컴포넌트의 특정된 특징들에 액세스하고 이들을 사용할 시에 API-호출 컴포넌트들이 사용하는 언어 및 파라미터들을 정의한다. 예를 들어, API-호출 컴포넌트는 API에 의해 노출되는 하나 이상의 API 호출들 또는 불러오기(invocation)들(예를 들어, 함수 또는 메소드 호출들에 의해 구현됨)을 통해 API-구현 컴포넌트의 특징된 특징들에 액세스하고, API 호출들 또는 불러오기들을 통해 파라미터들을 사용하여 데이터 및 제어 정보를 전달한다. API-구현 컴포넌트는 API-호출 컴포넌트로부터의 API 호출에 응답하여 API를 통해 값을 리턴시킬 수 있다. API가 API 호출의 신택스 및 결과(예를 들어, API 호출을 불러오는(invoke) 방법 및 API 호출이 수행하는 것)를 정의하는 반면, API는 API 호출이 API 호출에 의해 특정되는 기능을 달성하는 방법을 드러내지 않을 수 있다. 다양한 API 호출들은 호출(API-호출 컴포넌트) 및 API-구현 컴포넌트 사이의 하나 이상의 응용 프로그래밍 인터페이스들을 통해 전달된다. API 호출들의 전달은 함수 호출들 또는 메시징을 발행하고, 개시하고, 불러오고, 호출하고, 수신하고, 리턴시키거나, 이에 응답하는 것을 포함할 수 있는데, 다시 말해, 전달은 API-호출 컴포넌트 또는 API-구현 컴포넌트 중 어느 하나에 의한 동작들을 기술할 수 있다. API의 함수 호출들 또는 다른 불러오기들은 파라미터 리스트 또는 다른 구조를 통해 하나 이상의 파라미터들을 송신하거나 수신할 수 있다. 파라미터는 상수, 키, 데이터 구조, 오브젝트, 오브젝트 클래스, 변수, 데이터 타입, 포인터, 어레이, 리스트, 또는 API를 통해 전달될 데이터 또는 다른 항목을 참조하기 위한 함수 또는 메소드 또는 또다른 방식에 대한 포인터일 수 있다.
또한, 데이터 타입들 또는 클래스들은 API에 의해 제공될 수 있고, API-구현 컴포넌트에 의해 구현될 수 있다. 따라서, API-호출 컴포넌트는 API에 제공되는 정의들을 사용함으로써 이러한 타입들 또는 클래스들의 상수 값들을 사용하거나 인스턴스화하거나, 이에 대한 포인터들을 사용하거나, 변수들을 선언할 수 있다.
일반적으로, API는 API-구현 컴포넌트에 의해 제공되는 서비스 또는 데이터에 액세스하거나, 또는 API-구현 컴포넌트에 의해 제공되는 동작 또는 계산의 성능을 개시하기 위해 사용될 수 있다. 예시로서, API-구현 컴포넌트 및 API-호출 컴포넌트는 각각 운영 체제, 라이브러리, 디바이스 드라이버, API, 응용 프로그램, 또는 다른 모듈 중 임의의 하나일 수 있다(API-구현 컴포넌트 및 API-호출 컴포넌트가 서로 동일한 또는 상이한 타입의 모듈일 수 있다는 점이 이해되어야 한다). API-구현 컴포넌트들은 일부 경우들에서, 펌웨어, 마이크로코드, 또는 다른 하드웨어 로직에 적어도 부분적으로 구현될 수 있다. 일부 실시예들에서, API는 클라이언트 프로그램으로 하여금 소프트웨어 개발 키트(SDK) 라이브러리에 의해 제공되는 서비스들을 사용하도록 할 수 있다. 다른 실시예들에서, 애플리케이션 또는 다른 클라이언트 프로그램은 애플리케이션 프레임워크에 의해 제공되는 API를 사용할 수 있다. 이들 실시예들에서, 애플리케이션 또는 클라이언트 프로그램은 SDK에 의해 제공되는, 그리고 API에 의해 제공되는 함수들 또는 메소드들에 대한 호출들을 포함할 수 있거나 또는 SDK에서 정의되고 API에 의해 제공되는 데이터 타입들 또는 오브젝트들을 사용할 수 있다. 애플리케이션 프레임워크는 이들 실시예들에서 프레임워크에 의해 정의되는 다양한 이벤트들에 응답하는 프로그램에 대한 메인 이벤트 루프를 제공할 수 있다. API는 애플리케이션으로 하여금 애플리케이션 프레임워크를 사용하여 이벤트들 및 이벤트들에 대한 응답을 특정하게 한다. 일부 구현예들에서, API 호출은 입력 능력들 및 상태, 출력 능력들 및 상태, 프로세싱 능력, 전력 상태, 저장 용량 및 상태, 통신 능력 등과 같은 양상들에 관련된 것들을 포함하는, 하드웨어 디바이스의 능력들 또는 상태를 애플리케이션에 보고할 수 있고, API는 펌웨어, 마이크로코드, 또는 하드웨어 컴포넌트 상에서 부분적으로 실행하는 다른 로우 레벨 로직에 의해 부분적으로 구현될 수 있다.
API-호출 컴포넌트는 네트워크 상에서 API를 통해 API-구현 컴포넌트와 통신하는 로컬 컴포넌트(즉, API-구현 컴포넌트와 동일한 데이터 프로세싱 시스템 상에서) 또는 원격 컴포넌트(즉, API-구현 컴포넌트로부터의 상이한 데이터 프로세싱 시스템 상에서)일 수 있다. API-구현 컴포넌트가 또한 API-호출 컴포넌트로서 동작할 수 있고(즉, 이는 상이한 API-구현 컴포넌트에 의해 노출되는 API에 대한 API 호출들을 수행할 수 있음), API-호출 컴포넌트가 또한 상이한 API-호출 컴포넌트에 노출되는 API를 구현함으로써 API-구현 컴포넌트로서 동작할 수 있다는 점이 이해되어야 한다.
API가 상이한 프로그래밍 언어들로 기록된 다수의 API-호출 컴포넌트들로 하여금 API-구현 컴포넌트와 통신하게 할 수 있지만(따라서, API는 API-구현 컴포넌트 및 API-호출 컴포넌트 사이에서 호출들 및 리턴들을 번역하기 위한 특징들을 가질 수 있음), API는 특정 프로그래밍 언어의 견지에서 구현될 수 있다. API-호출 컴포넌트는, 일 실시예에서, OS 공급자로부터의 API들의 세트 및 플러그인 제공자로부터의 API들의 또다른 세트 및 또다른 제공자(예를 들어, 소프트웨어 라이브러리의 제공자) 또는 API들의 또다른 세트의 생성자로부터의 API들의 또다른 세트와 같은, 상이한 공급자들로부터의 API들을 호출할 수 있다.
도 13은 본 발명의 일부 실시예들에서 사용될 수 있는 예시적인 API 아키텍쳐를 예시하는 블록도이다. 도 13에 도시된 바와 같이, API 아키텍쳐(1300)는 API(1320)를 구현하는 API-구현 컴포넌트(1310)(예를 들어, 운영 체제, 라이브러리, 디바이스 드라이버, API, 응용 프로그램, 소프트웨어 또는 다른 모듈)를 포함한다. API(1320)는 하나 이상의 함수들, 메소드들, 클래스들, 오브젝트들, 프로토콜들, 데이터 구조들, 포맷들 및/또는 API-호출 컴포넌트(1330)에 의해 사용될 수 있는 API-구현 컴포넌트의 다른 특징들을 특정한다. API(1320)는 API-구현 컴포넌트에서의 함수가 API-호출 컴포넌트로부터 파라미터들을 수신하는 방법, 및 함수가 API-호출 컴포넌트에 결과를 리턴시키는 방법을 특정하는 적어도 하나의 호출 규정(calling convention)을 특정할 수 있다. API-호출 컴포넌트(1330)(예를 들어, 운영 체제, 라이브러리, 디바이스 드라이버, API, 응용 프로그램, 소프트웨어 또는 다른 모듈)가 API(1320)에 의해 특정되는 API-구현 컴포넌트(1310)의 특징들을 액세스하고 사용하기 위해 API(1320)를 통해 API 호출들을 수행한다. API-구현 컴포넌트(1310)는 API 호출에 응답하여 API(1320)를 통해 API-호출 컴포넌트(1330)에 값을 리턴시킬 수 있다.
API-구현 컴포넌트(1310)가 추가적인 함수들, 메소드들, 클래스들, 데이터 구조들, 및/또는 API(1320)를 통해 특정되지 않고 API-호출 컴포넌트(1330)에 대해 가용적이지 않은 다른 특징들을 포함할 수 있다는 점이 이해될 것이다. API-호출 컴포넌트(1330)가 API-구현 컴포넌트(1310)와 동일한 시스템 상에 있을 수 있거나 또는 네트워크 상에서 API(1320)를 사용하여 API-구현 컴포넌트(1310)에 원격으로 위치될 수 있고 액세스한다는 점이 이해되어야 한다. 도 13이 API(1320)와 상호작용하는 단일 API-호출 컴포넌트(1330)를 예시하지만, API-호출 컴포넌트(1330)와는 상이한 언어(또는 동일한 언어)로 기록될 수 있는 다른 API-호출 컴포넌트들이 API(1320)를 사용할 수 있다는 점이 이해되어야 한다.
API-구현 컴포넌트(1310), API(1320), 및 API-호출 컴포넌트(1330)는 기계(예를 들어, 컴퓨터 또는 다른 데이터 프로세싱 시스템)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함하는 기계-판독가능한 매체 내에 저장될 수 있다. 예를 들어, 기계-판독가능한 매체는 자기 디스크들, 광학 디스크들, 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리 디바이스들 등을 포함한다.
도 14("소프트웨어 스택")에서, 예시적인 실시예인 애플리케이션들은 몇몇 서비스 API들을 사용하여 서비스 A 또는 B에 대한 그리고 몇몇 OS API들을 사용하여 운영 체제(OS)에 대한 호출들을 수행할 수 있다. 서비스들 A 및 B는 몇몇 OS API들을 사용하여 OS에 대한 호출들을 수행할 수 있다.
서비스 2가 2개의 API들을 가지며, 이 중 하나(서비스 2 API 1)가 애플리케이션 1로부터 호출들을 수신하고 애플리케이션 1에 값들을 리턴시키고, 다른 하나(서비스 2 API 2)가 애플리케이션 2로부터 호출들을 수신하고 애플리케이션 2에 값들을 리턴시킨다는 점에 유의한다. 서비스 1(이것은 예를 들어, 소프트웨어 라이브러리일 수 있음)은 OS API 1에 대해 호출을 수행하고 OS API 1로부터 리턴된 값들을 수신하고, 서비스 2(이것은, 예를 들어, 소프트웨어 라이브러리일 수 있음)는 OS API 1 및 OS API 2 모두에 대해 호출들을 수행하고 OS API 1 및 OS API 2 모두로부터 리턴된 값들을 수신한다. 애플리케이션 2는 OS API 2에 대한 호출들을 수행하고, OS API 2로부터 리턴된 값들을 수신한다.
본 발명은 바람직하게는 소프트웨어에 의해 구현되지만, 또한 하드웨어 또는 하드웨어와 소프트웨어의 결합에서 구현될 수 있다. 본 발명은 또한 컴퓨터 판독가능한 매체 상에 컴퓨터 판독가능한 코드로서 구현될 수 있다. 컴퓨터 판독가능한 매체는 이후 컴퓨터 시스템에 의해 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 컴퓨터 판독가능한 매체의 예들은 판독 전용 메모리, 랜덤 액세스 메모리, CD-ROM들, DVD들, 자기 테이프 및 광학 데이터 저장 디바이스들을 포함한다. 컴퓨터 판독가능한 매체는 또한 컴퓨터 판독가능한 코드가 분산 방식으로 저장되고 실행되도록, 네트워크-커플링된 컴퓨터 시스템들 상에서 분산될 수 있다.
현재 공지되거나 추후에 고안될, 당업자가 보는 바와 같은 청구된 발명 대상으로부터의 미미한 변경들은 청구항들의 범위 내에 등가적으로 존재하는 것으로서 명백하게 참작된다. 따라서, 당업자에게 현재 또는 추후에 공지되는 명백한 치환들은 정의된 엘리먼트들의 범위 내에 있는 것으로 정의된다.
본 발명의 전술된 실시예들은 제한이 아니라 예시의 목적으로 제시된다.

Claims (24)

  1. 시작 위치로부터 최종 위치까지의 방향(direction)들을 프린트하는 방법으로서,
    상기 시작 위치로부터 상기 최종 위치까지의 루트(route)를 검색하는 단계;
    상기 루트를 따라 상기 시작 위치로부터 상기 최종 위치까지 내비게이팅(navigating)하기 위한 스텝에 대응하는 적어도 하나의 콜아웃(callout) 및 상기 루트의 개요(overview)를 보여주는 맵을 포함하는 제1 영역; 및
    프린팅 레이아웃의 중심선을 따라 상기 제1 영역 전체에 걸쳐 그 전체가 접힐 수 있도록 상기 제1 영역에 인접하게 배치되는 제2 영역 ― 상기 제2 영역은 상기 시작 위치로부터 상기 최종 위치까지 내비게이팅하기 위한 스텝들의 리스팅들(listings)을 포함하고, 적어도 하나의 리스팅은 상기 적어도 하나의 콜아웃을 참조함 ― 을 포함하는 상기 프린팅 레이아웃을 정의하는 단계; 및
    상기 프린팅 레이아웃을 프린트하기 위한 명령을 개시(initiating)하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 영역 내의 맵에 대한 스케일을 결정하는 단계; 및
    상기 맵 상에 상기 스케일의 그래픽 표현을 디스플레이하는 단계
    를 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 맵에 대한 결정된 스케일에 연관된 세그먼트 길이를 정의하는 단계; 및
    상기 맵 주위에 경계(border)를 제공하는 단계
    를 더 포함하고, 상기 경계는 상기 정의된 세그먼트 길이의 불연속적인 세그먼트들의 시퀀스를 포함하는 방법.
  4. 제3항에 있어서,
    상기 불연속적인 세그먼트들의 시퀀스의 세그먼트들은 상기 정의된 세그먼트 길이만큼 이격되는 방법.
  5. 제1항에 있어서,
    상기 제2 영역의 스텝들의 각각의 리스팅은:
    스텝 번호;
    상기 스텝을 도시하는(depicting) 맵 타일; 및
    스텝 설명
    중 적어도 하나를 포함하는 방법.
  6. 제5항에 있어서,
    상기 제1 영역의 맵과는 상이한 스케일에서 상기 맵 타일을 디스플레이하는 단계
    를 더 포함하는 방법.
  7. 제5항에 있어서,
    상기 제2 영역은 적어도 2개의 리스팅들을 포함하고;
    상기 리스팅들의 각각 내의 맵 타일들은 상이한 스케일들에서 디스플레이되는 방법.
  8. 제7항에 있어서,
    상기 루트의 각각의 스텝과 연관된 예상된 결정 시간을 결정하는 단계;
    각각의 스텝과 연관된 맵 타일을 디스플레이할 상기 결정된 예상된 결정 시간에 기초하여 스케일을 정의하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서,
    예상된 결정 시간을 결정하는 단계는:
    스텝의 기동(maneuver);
    상기 스텝의 기동이 수행되는 예상 속도;
    이전 스텝; 및
    다음 스텝
    중 적어도 하나로부터 예상되는 결정 시간을 결정하는 단계를 더 포함하는 방법.
  10. 방향들을 프린팅하기 위한 레이아웃을 생성하도록 동작하는 전자 디바이스로서,
    사용자로부터 명령들을 수신하기 위한 입력 인터페이스; 및
    제어 회로
    를 포함하고, 상기 제어 회로는:
    제1 위치로부터 제2 위치까지의 방향들을 프린트하기 위한 명령을 수신하고;
    상기 제1 위치로부터 제2 위치까지의 루트의 개요를 보여주는 맵을 검색하고;
    상기 제1 위치로부터 상기 제2 위치까지의 루트를 따라 내비게이팅하기 위한 스텝들의 시퀀스를 검색하고;
    상기 검색된 맵이 레이아웃의 제1 열에 배치되고 상기 검색된 스텝들의 시퀀스를 포함하는 리스팅이 상기 레이아웃의 제2 열에 배치되는 경관-지향적 용지(landscape-oriented paper)에 대한 상기 레이아웃을 정의하도록
    동작하고, 상기 레이아웃은 상기 경관-지향적 용지의 중심선을 따라 어떠한 컨텐츠도 포함하지 않는 전자 디바이스.
  11. 제10항에 있어서,
    상기 제어 회로는 또한, 상기 레이아웃의 프린팅을 개시하도록 동작하는 전자 디바이스.
  12. 제10항에 있어서,
    상기 제어 회로는 또한, 상기 스텝들의 시퀀스의 각각의 스텝에 대해, 상기 검색된 맵 내의 루트 상에 상기 스텝을 식별하는 콜아웃을 디스플레이하도록 동작하는 전자 디바이스.
  13. 제12항에 있어서,
    상기 제어 회로는 또한, 상기 리스팅 내에 포함하기 위한 각각의 디스플레이된 콜아웃에 대한 맵 타일을 검색하도록 동작하는 전자 디바이스.
  14. 제13항에 있어서,
    상기 제어 회로는 또한, 상기 제1 측에 배치된 상기 검색된 맵의 스케일과는 상이한 각각의 맵 타일에 대한 스케일을 선택하도록 동작하는 전자 디바이스.
  15. 시작 위치로부터 목적지까지의 방향들을 프린팅하기 위한 방법으로서,
    상기 시작 위치로부터 상기 목적지까지 내비게이팅하기 위한 스텝들의 시퀀스를 식별하는 단계;
    상기 스텝들의 시퀀스를 프린팅할 페이지들의 수를 결정하는 단계 ― 각각의 페이지 상에 프린트되는 스텝들의 수의 차이는 최대한 2임 ― ;
    상기 방향들을 프린팅하기 위한 레이아웃을 정의하는 단계; 및
    상기 레이아웃의 프린팅을 개시하라는 명령을 수신하는 단계
    를 포함하고, 상기 레이아웃은:
    각각의 페이지의 제1 영역에 배치되는 상기 시작 위치로부터 상기 목적지까지의 루트의 개요를 보여주는 맵; 및
    각각의 페이지의 제2 영역 내에 상기 식별된 스텝들의 시퀀스로부터의 스텝들의 리스팅
    을 포함하고, 상기 스텝들의 리스팅의 각각의 엔트리는 스텝 번호, 맵 타일, 및 스텝 설명을 포함하는 방법.
  16. 제15항에 있어서,
    상기 레이아웃을 정의하는 단계는 경관 지향(landscape orientation)을 위한 레이아웃을 정의하는 단계를 더 포함하는 방법.
  17. 제16항에 있어서,
    상기 레이아웃을 정의하는 단계는:
    상기 레이아웃의 좌측 상에 상기 맵을 배치하는 단계; 및
    상기 레이아웃의 우측 상에 상기 스텝들의 리스팅을 배치하는 단계
    를 더 포함하고, 상기 레이아웃은 상기 스텝들의 리스팅 위에 상기 맵을 배치하기 위해 상기 레이아웃의 중심선 상에서 접힐 수 있는 방법.
  18. 제17항에 있어서,
    상기 레이아웃은 상기 레이아웃의 중심선 상에 어떠한 컨텐츠도 포함하지 않는 방법.
  19. 제15항에 있어서,
    상기 레이아웃을 정의하는 단계는 상기 맵 주위에 불연속적 경계를 제공하는 단계를 더 포함하고, 상기 불연속적 경계의 불연속적 세그먼트의 디멘젼(dimension)은 상기 맵의 스케일과 연관되는 방법.
  20. 방향들을 프린트하도록 프린팅 시스템을 개시시키도록 동작하는 전자 디바이스로서,
    프린트하기 위해 프린팅 시스템을 개시하기 위한 인터페이스; 및
    제어 회로
    를 포함하고, 상기 제어 회로는:
    시작 포인트로부터 목적지까지의 방향들을 프린트하라는 명령을 수신하고 ― 상기 방향들은 스텝들의 시퀀스를 포함함 ― ;
    각각의 스텝에 대해, 상기 스텝과 연관된 기동을 도시하는 맵 타일에 대한 스케일을 정의하고 ― 적어도 2개의 스텝들과 연관된 맵 타일들에 대해 사용되는 스케일은 상이함 ― ; 및
    상기 방향들을 프린트하기 위한 레이아웃을 정의하도록
    동작하고,
    상기 레이아웃은 각각 상기 스텝들의 시퀀스의 스텝과 연관된 복수의 리스팅들을 포함하고, 각각의 리스팅은 상기 맵 타일에 대한 정의된 스케일에서 디스플레이되는 맵 타일을 포함하는 전자 디바이스.
  21. 제20항에 있어서,
    상기 제어 회로는 또한:
    각각의 스텝에 대해, 상기 스텝과 연관된 기동의 특성들을 결정하고;
    상기 결정된 특성들에 기초하여 각각의 스텝의 각각의 맵 타일에 대한 스케일을 정의하도록
    동작하는 전자 디바이스.
  22. 제21항에 있어서,
    상기 제어 회로는 또한:
    각각의 스텝에 대해, 이전 스텝 및 다음 스텝 중 적어도 하나와 연관된 기동의 특성들을 검색하고;
    상기 검색된 특성들에 기초하여 각각의 맵 타일에 대한 스케일을 정의하도록
    동작하는 전자 디바이스.
  23. 제21항에 있어서,
    상기 특성들은:
    상기 스텝과 연관된 상기 기동의 속도;
    상기 스텝과 연관된 상기 기동의 타입; 및
    상기 루트에 대한 교통 모드(mode of transportation)
    중 적어도 하나를 포함하는 전자 디바이스.
  24. 레코딩된 컴퓨터-판독가능한 명령어들을 포함하는, 시작 위치로부터 목적지까지의 방향들을 프린팅하기 위한 컴퓨터-판독가능한 매체로서,
    상기 컴퓨터-판독가능한 명령어들은:
    상기 시작 위치로부터 상기 목적지까지 내비게이팅하기 위한 스텝들의 시퀀스를 식별하고;
    상기 스텝들의 시퀀스를 프린트할 페이지들의 수를 결정하고 ― 각각의 페이지 상에 프린트되는 스텝들의 수의 차이는 최대한 2임 ― ;
    상기 방향들을 프린트하기 위한 레이아웃을 정의하고;
    프린트하기 위한 프린팅 시스템에 상기 레이아웃을 제공하기 위한 것이고,
    상기 레이아웃은:
    각각의 페이지의 제1 영역에 배치된 상기 시작 위치로부터 상기 목적지까지의 루트의 개요를 보여주는 맵; 및
    각각의 페이지의 제2 영역 내의 상기 식별된 스텝들의 시퀀스로부터의 스텝들의 리스팅
    을 포함하고, 상기 스텝들의 리스팅의 각각의 엔트리는 스텝 번호, 맵 타일, 및 스텝 설명을 포함하는 컴퓨터-판독가능한 매체.
KR1020137032125A 2011-06-03 2012-06-01 맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들 KR20140014269A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161493072P 2011-06-03 2011-06-03
US61/493,072 2011-06-03
PCT/US2012/040556 WO2012167154A2 (en) 2011-06-03 2012-06-01 Systems and methods for printing maps and directions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020157013067A Division KR20150063165A (ko) 2011-06-03 2012-06-01 맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들

Publications (1)

Publication Number Publication Date
KR20140014269A true KR20140014269A (ko) 2014-02-05

Family

ID=46319187

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157013067A KR20150063165A (ko) 2011-06-03 2012-06-01 맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들
KR1020137032125A KR20140014269A (ko) 2011-06-03 2012-06-01 맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157013067A KR20150063165A (ko) 2011-06-03 2012-06-01 맵들 및 방향들을 프린트하기 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (2) US8700331B2 (ko)
EP (1) EP2715284A2 (ko)
JP (2) JP2014520283A (ko)
KR (2) KR20150063165A (ko)
CN (1) CN103562679B (ko)
WO (1) WO2012167154A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180116209A (ko) * 2016-03-31 2018-10-24 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 내비게이션 지도의 제어방법, 장치 및 저장매체

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9031777B2 (en) * 2006-08-08 2015-05-12 Verizon Patent And Licensing Inc. Driving directions with selective printing
US8706415B2 (en) * 2011-05-23 2014-04-22 Microsoft Corporation Changing emphasis of list items in a map navigation tool
WO2012167154A2 (en) 2011-06-03 2012-12-06 Apple Inc. Systems and methods for printing maps and directions
US9453734B2 (en) * 2012-06-05 2016-09-27 Apple Inc. Smart loading of map tiles
US9273980B2 (en) 2013-06-09 2016-03-01 Apple Inc. Direction list
US20150211873A1 (en) * 2014-01-29 2015-07-30 Honda Motor Co., Ltd. Navigation tiles with city information
US9243921B2 (en) 2014-02-18 2016-01-26 Google Inc. Intuitive preview of upcoming navigational instructions
US10113879B2 (en) * 2014-03-03 2018-10-30 Apple Inc. Hierarchy of tools for navigation
CN104183186B (zh) * 2014-08-29 2017-01-11 杭州晶格科技有限公司 智能离线式电子导游仪
CN104167151B (zh) * 2014-08-29 2016-08-17 杭州晶格科技有限公司 电子导游仪
US9212918B1 (en) 2014-08-29 2015-12-15 Mapquest, Inc. Systems and methods for generating and displaying multiple layers on a digital map
US9810537B2 (en) 2016-03-17 2017-11-07 Mitac International Corp. Method of previewing off-road trails and viewing associated health requirements and related system
EP3861292A1 (en) 2018-12-26 2021-08-11 Google LLC Default map zoom level by travel time
CN113539050B (zh) * 2020-04-20 2022-09-23 华为技术有限公司 数据处理方法、装置及设备

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4637620Y1 (ko) * 1967-03-31 1971-12-27
US4914605A (en) 1984-10-22 1990-04-03 Etak, Inc. Apparatus and method for displaying a map
US6321158B1 (en) * 1994-06-24 2001-11-20 Delorme Publishing Company Integrated routing/mapping information
JPH09243378A (ja) * 1996-03-06 1997-09-19 Mitsubishi Electric Corp カーナビゲーションシステム
JP3644473B2 (ja) * 1997-08-07 2005-04-27 アイシン・エィ・ダブリュ株式会社 地図表示装置及び記録媒体
CA2318815C (en) 1998-01-26 2004-08-10 Wayne Westerman Method and apparatus for integrating manual input
JP3514626B2 (ja) * 1998-04-14 2004-03-31 インクリメント・ピー株式会社 ルート情報提供システム及びそれに用いるwwwサーバ、並びに、ルート情報提供方法及びそれに用いるwwwサーバ
US6842877B2 (en) * 1998-12-18 2005-01-11 Tangis Corporation Contextual responses based on automated learning techniques
US6381534B2 (en) * 2000-02-14 2002-04-30 Fujitsu Limited Navigation information presenting apparatus and method thereof
EP1282855B1 (en) * 2000-03-17 2011-10-12 Microsoft Corporation System and method for abstracting and visualizing a route map
US7290285B2 (en) * 2000-06-30 2007-10-30 Zinio Systems, Inc. Systems and methods for distributing and viewing electronic documents
US6677932B1 (en) 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
JP3727854B2 (ja) 2001-01-30 2005-12-21 株式会社東芝 道案内生成方法および道案内装置およびサーバ装置および地図情報編集支援装置およびプログラム
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
CN1371825A (zh) * 2001-02-26 2002-10-02 怡利电子工业股份有限公司 指针式导航图像表示法
EP1260953A3 (en) * 2001-05-03 2006-08-02 Samsung Electronics Co., Ltd. Navigation system using a portable terminal
FR2855259B1 (fr) * 2003-05-23 2005-10-14 Siemens Vdo Automotive Systeme de navigation embarque comportant une previsualisation d'itineraire avec instructions de guidage
US7158878B2 (en) * 2004-03-23 2007-01-02 Google Inc. Digital mapping system
JP3874356B2 (ja) * 2004-05-06 2007-01-31 株式会社ナビタイムジャパン 携帯型案内装置
US20080195307A1 (en) * 2004-10-18 2008-08-14 Michel Raynaud Method of Establishing Neighboring Points for a Digital Road Network System
US20060129973A1 (en) * 2004-11-30 2006-06-15 Newcorn David C Method and system for digital publication of electronic information
US8606516B2 (en) 2004-11-30 2013-12-10 Dash Navigation, Inc. User interface system and method for a vehicle navigation device
JP2006184256A (ja) 2004-12-28 2006-07-13 Nissan Motor Co Ltd 案内システム、案内方法、案内システム用サーバー、案内システム用移動体端末装置、案内情報提供処理プログラム、及び、案内システム端末装置用プログラム
US7761090B2 (en) * 2005-09-19 2010-07-20 Silverbrook Research Pty Ltd Print remotely to a mobile device
KR20080059445A (ko) * 2005-10-14 2008-06-27 야후! 인크. 대화형 매핑 방법 및 시스템
JP2007121666A (ja) * 2005-10-27 2007-05-17 Pioneer Electronic Corp ルート地図作成装置、ルート地図作成方法、ルート地図作成プログラム
CN101097143A (zh) * 2006-06-30 2008-01-02 佛山市顺德区顺达电脑厂有限公司 建立自定导航路线的方法
US9031777B2 (en) * 2006-08-08 2015-05-12 Verizon Patent And Licensing Inc. Driving directions with selective printing
US7822546B2 (en) * 2006-09-05 2010-10-26 Garmin Switzerland Gmbh Travel guide and schedule-based routing device and method
JP4948944B2 (ja) * 2006-09-06 2012-06-06 アルパイン株式会社 ナビゲーション装置および交差点案内図の描画方法
US8744758B2 (en) * 2006-12-19 2014-06-03 Verizon Patent And Licensing Inc. Driving directions printed text scaling
US8607167B2 (en) 2007-01-07 2013-12-10 Apple Inc. Portable multifunction device, method, and graphical user interface for providing maps and directions
US8355862B2 (en) * 2008-01-06 2013-01-15 Apple Inc. Graphical user interface for presenting location information
JP5127505B2 (ja) * 2008-02-27 2013-01-23 株式会社沖データ 画像形成装置及び経路表示方法
JP4561882B2 (ja) 2008-06-18 2010-10-13 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置および画像形成方法
CN102187380A (zh) 2009-03-16 2011-09-14 通腾波兰股份有限公司 使用高度信息更新数字地图的方法
US8464182B2 (en) 2009-06-07 2013-06-11 Apple Inc. Device, method, and graphical user interface for providing maps, directions, and location-based information
US8281246B2 (en) * 2009-09-29 2012-10-02 Microsoft Corporation Travelogue-based contextual map generation
EP2572269A1 (en) 2010-05-21 2013-03-27 TeleCommunication Systems, Inc. Personal wireless navigation system
US20130173159A1 (en) 2010-09-13 2013-07-04 Jeroen Trum Navigation device
JP2012105145A (ja) * 2010-11-11 2012-05-31 Canon Inc 画像処理装置、画像処理方法、及び、プログラム
US20120265758A1 (en) * 2011-04-14 2012-10-18 Edward Han System and method for gathering, filtering, and displaying content captured at an event
WO2012167154A2 (en) 2011-06-03 2012-12-06 Apple Inc. Systems and methods for printing maps and directions
US10176633B2 (en) 2012-06-05 2019-01-08 Apple Inc. Integrated mapping and navigation application
US9182243B2 (en) 2012-06-05 2015-11-10 Apple Inc. Navigation application
US9047691B2 (en) 2012-06-05 2015-06-02 Apple Inc. Route display and review

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180116209A (ko) * 2016-03-31 2018-10-24 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 내비게이션 지도의 제어방법, 장치 및 저장매체

Also Published As

Publication number Publication date
WO2012167154A3 (en) 2013-05-16
EP2715284A2 (en) 2014-04-09
JP2014520283A (ja) 2014-08-21
WO2012167154A2 (en) 2012-12-06
JP2016040604A (ja) 2016-03-24
US9129207B2 (en) 2015-09-08
CN103562679B (zh) 2016-08-31
KR20150063165A (ko) 2015-06-08
CN103562679A (zh) 2014-02-05
US20140313525A1 (en) 2014-10-23
US20130103314A1 (en) 2013-04-25
US8700331B2 (en) 2014-04-15

Similar Documents

Publication Publication Date Title
US9129207B2 (en) Systems and methods for printing maps and directions
CN106227344B (zh) 电子设备及其控制方法
US9942302B2 (en) Terminal apparatus mountable in vehicle, mobile device for working with the terminal apparatus, and methods for providing service thereof
EP2163975B1 (en) Information processing
TWI532976B (zh) 用於產生用於在車輛之互動式通信系統上顯示之多個使用者介面之行動器件及其相關方法及機器可讀媒體
US10222840B2 (en) Display apparatus and controlling method thereof
US9870642B2 (en) Method and apparatus for layout for augmented reality view
KR20160042467A (ko) 대안 내비게이션 경로들을 비교 및 선택하기 위한 장치들 및 방법들
WO2009084185A1 (ja) 情報端末装置、情報処理方法、および、情報処理プログラム
KR102295934B1 (ko) 상이한 스크린 상에 애플리케이션 데이터를 표시하기 위한 원격 제어 기법
KR20160099678A (ko) 전자 스프레드시트와의 터치/제스처 가능한 상호작용 기법
JP2009515191A (ja) 携帯デバイスのためのローカル検索および地図作成
JP2011526707A (ja) モバイルコンピューティングデバイス上の運動制御ビュー
US20140176600A1 (en) Text-enlargement display method
EP2746923A1 (en) System and method for providing image related to image displayed on device
US20130205260A1 (en) Method and apparatus for managing an application in a mobile electronic device
US20190332237A1 (en) Method Of Navigating Panels Of Displayed Content
KR20130050705A (ko) 키워드 검색 방법 및 장치
EP3186705A1 (en) Exporting animations from a presentation system
KR20160087692A (ko) 전자 기기 및 그 동작 방법
KR102371098B1 (ko) 오브젝트를 편집 가능한 형태로 전체 화면 팝 아웃하는 기법
US9377945B2 (en) Method and apparatus for managing file using thumbnail

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
A107 Divisional application of patent
AMND Amendment
E601 Decision to refuse application
AMND Amendment