KR20110038646A - 모바일 컴퓨팅 디바이스에서의 모션-컨트롤 뷰 - Google Patents

모바일 컴퓨팅 디바이스에서의 모션-컨트롤 뷰 Download PDF

Info

Publication number
KR20110038646A
KR20110038646A KR1020107029419A KR20107029419A KR20110038646A KR 20110038646 A KR20110038646 A KR 20110038646A KR 1020107029419 A KR1020107029419 A KR 1020107029419A KR 20107029419 A KR20107029419 A KR 20107029419A KR 20110038646 A KR20110038646 A KR 20110038646A
Authority
KR
South Korea
Prior art keywords
user
image
mobile device
display
wireless mobile
Prior art date
Application number
KR1020107029419A
Other languages
English (en)
Other versions
KR101534789B1 (ko
Inventor
데이비드 피. 콘웨이
아담 블리스
존 에이치. 팔레비치
에릭 쳉
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20110038646A publication Critical patent/KR20110038646A/ko
Application granted granted Critical
Publication of KR101534789B1 publication Critical patent/KR101534789B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • 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/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1615Constructional details or arrangements for portable computers with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function
    • G06F1/1624Constructional details or arrangements for portable computers with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function with sliding enclosures, e.g. sliding keyboard or display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1626Constructional details or arrangements for portable computers with a single-body enclosure integrating a flat display, e.g. Personal Digital Assistants [PDAs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/024Guidance services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/026Services making use of location information using location based information parameters using orientation information, e.g. compass
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • H04W4/185Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals by embedding added-value information into content, e.g. geo-tagging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • H04W4/21Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2200/00Indexing scheme relating to G06F1/04 - G06F1/32
    • G06F2200/16Indexing scheme relating to G06F1/16 - G06F1/18
    • G06F2200/163Indexing scheme relating to constructional details of the computer
    • G06F2200/1637Sensing arrangement for detection of housing movement or orientation, e.g. for controlling scrolling or cursor movement on the display of an handheld computer
    • 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/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • User Interface Of Digital Computer (AREA)
  • Navigation (AREA)
  • Telephonic Communication Services (AREA)
  • Traffic Control Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

컴퓨터-구현 비주얼 내비게이션 방법은, 무선 모바일 디바이스로부터, 공중 무선 네트워크를 통해, 상기 무선 모바일 디바이스로부터 원격으로 위치한 서버에 지리적 위치를 식별하는 정보를 제공하는 단계를 포함한다. 또한 상기 방법은 상기 지리적 위치에서의 한 위치로부터 캡쳐(capture)된 디지털 이미지들의 이미지 데이터를 상기 서버로부터 응답으로 수신하는 단계; 상기 지리적 위치 주위의 이미지 공간의 이미지로서, 상기 모바일 디바이스의 사용자에게 상기 이미지 데이터를 디스플레이하는 단계; 및 상기 무선 모바일 디바이스의 사용자 모션에 응답하여 자동으로 이미지 공간 안에서 상기 이미지를 패닝(panning)하는 단계를 포함하는 방법를 포함한다.

Description

모바일 컴퓨팅 디바이스에서의 모션-컨트롤 뷰{MOTION-CONTROLLED VIEWS ON MOBILE COMPUTING DEVICES}
본 출원은 2008년 5월 28일 출원된 미국 특허 출원 번호 61/056,823호에 대한 우선권을 미국 특허법(35USC) 119(e)항 하에 주장하며, 이 미국 출원의 모든 내용은 참조로서 본 명세서에 포함된다.
본 명세서는 그래픽 디스플레이 요소와 컨트롤을 발생시키기 위한 시스템 및 기술에 관한 것이다.
사람들은 하루에 몇 시간씩 컴퓨터, 전화, 음악 플레이어 등과 같은 그들의 전자 디바이스(electronic device)와 함께 보낸다. 사람들은, 사용하기에 직관적이고, 그들의 상호작용이 기계들이 어떻게 작동하는지에 관한 사람들의 기대에 가장 부합한 디바이스를 가장 좋아한다. 사람들은 전자 디바이스들로부터 입력과 출력을 통해 그 전자 디바이스들과 상호작용을 하고, 여기서 상기 출력은 일반적으로 청취가능한 소리(audibly) 및/또는 평면 그래픽 디스플레이 화면(flat graphical display screen)에서 제공되며, 상기 입력은 터치 스크린(touch screen), 조이스틱(joystick), 마우스들, 4-차원 키패드 및 다른 유사한 입력 메카니즘을 통해 나타날 수 있다.
모바일 디바이스(mobile devices)들이 더욱 강력해짐에 따라, 사용자들은 아이템 리스트, 지도, 이미지 등과 같은 그래픽 객체들을 이용하여 상기 디바이스들과 더욱 상호작용을 한다. 모바일 디바이스에 있는 상기 디스플레이가 아주 작은 반면, 상기 객체들에 표시된 정보는 거대하고 아주 광범위하다(예컨대, 미국의 상세한 지도는 마일(mile) 넓이일 것이다). 결과적으로, 사용자에게 여전히 공간 감각을 주고 상기 사용자가 상기 공간의 구석구석까지 직감적으로 움직이는 것을 허용하면서, 사용자를 위해 충분히 상세한 그래픽 정보를 제공하고자 하는 것(예컨대, 객체의 한 영역을 확대(zoom-in)함으로써)은 도전적일 수 있다.
본 명세서는, 터치 스크린 사용자 인터페이스를 구비한 모바일 전화와 같은 컴퓨팅 디바이스(computing device)의 사용자와 상호작용을 하기 위해 채용될 수 있는 시스템 및 기술에 대해 설명한다. 일반적으로, 상기 기술은 둘 이상의 방향으로 다차원 공간 주위를 움직이기 위해서 입력에 대해 특별한 방식으로 반응할 수 있다. 특히, 사용자가 리스트에서 스크롤(scroll)하거나 지도 또는 이미지에서 패닝(panning)하는 것처럼 공간에서 패닝할 의도를 표시할 때, 상기 기술은 상기 공간이 큰 공간(예컨대, 상기 디바이스의 디스플레이보다 몇 배나 큰 경우)인지 결정할 수 있고, 상기 공간에서 가속된 패닝을 허용하는 것으로서 은밀하지만 두드러진(noticeable but unobtrusive) 그래픽 컨트롤 요소를 표시할 수 있다. 예를 들면, 상기 컨트롤 요소는 상기 사용자가 터치 스크린 입력을 이용하여 큰 공간에 패닝을 하고자 할 때마다 상기 디스플레이의 가장자리를 따라 자동으로 생성되는 스크롤바(scroll bar)일 수 있다.
일 구현에 있어, 컴퓨터-구현 비주얼 내비게이션 방법에 대해 밝힌다. 상기 방법은 무선 모바일 디바이스로부터, 공중 무선 네트워크를 통해, 상기 무선 모바일 디바이스로부터 원격으로 위치한 서버에 지리적 위치를 식별하는 정보를 제공하는 단계를 포함한다. 또한 상기 방법은 상기 지리적 위치에서의 한 위치로부터 캡쳐(capture)된 디지털 이미지들의 이미지 데이터를 상기 서버로부터 응답으로 수신하는 단계; 상기 지리적 위치 주위의 이미지 공간의 이미지로서, 상기 모바일 디바이스의 사용자에게 상기 이미지 데이터를 디스플레이하는 단계 및 상기 무선 모바일 디바이스의 사용자 모션에 응답하여 자동으로 이미지 공간 안에서 상기 이미지를 패닝(panning)하는 단계를 포함한다. 이미지를 패닝하는 단계는 사용자가 상기 무선 모바일 디바이스를 흔드는 것(shaking)에 응답하여 상기 이미지 공간에서 앞으로 이동하는 단계를 포함할 수 있다. 또한, 상기 이미지를 패닝하는 단계는 상기 무선 모바일 디바이스에 의해 감지된 나침반(compass) 판독에 따라 지리적 위치 주변에 상기 이미지를 횡으로 패닝하는 단계를 포함할 수 있다. 상기 방법은 상기 지리적 위치에서 무선 모바일 디바이스에 의해 감지된 나침반 판독을 나침반 방향과 매칭하는 단계도 포함할 수 있다.
일부 측면에 있어, 상기 이미지는 다중 결합 이미지 파일로 구성된다. 게다가, 이미지를 패닝하는 단계는 무선 모바일 디바이스에 의해 감지된 가속도계 측정들에 응답하여 상기 이미지를 아래위로 패닝하는 단계를 포함할 수 있다. 상기 이미지 데이터는 또한 스트리트뷰(streetview) 이미지 데이터와 실질적으로 유사할 수도 있다. 더불어, 상기 방법은, 사용자로부터 주소 정보를 수신하는 단계, 상기 주소 정보의 수신에 따라 상기 주소 주위의 지도를 디스플레이하는 단계, 및 상기 지도에서 사용자 선택을 기반으로 지리적 위치를 식별하는 상기 정보를 제공하는 단계를 더 포함할 수 있다. 상기 방법은 또한 상기 사용자로부터 검색 쿼리(query)를 수신하는 단계, 상기 주소 정보에 상응하는 검색 쿼리를 식별하는 단계, 및 상기 사용자로부터 상기 주소 정보를 수신하는 단계 전에 상기 사용자에게 주소 정보를 표시하는 단계를 더 포함할 수 있다. 상기 주소 정보는 검색 결과로부터 하이퍼링크(hyperlink)로 부호화된 데이터를 포함할 수 있다. 또한 상기 지리적 위치는 상기 무선 모바일 디바이스의 현재 위치와는 상이할 수 있다.
또 다른 구현에 있어, 프로그램 코드를 저장하는 유형의 컴퓨터-판독가능한 데이터 저장 매체를 포함하는 물품에 대해 밝힌다. 상기 작업은 하나 이상의 기계들이 작업들을 수행하도록 하기 위해 작동가능하고, 상기 작업은 무선 모바일 디바이스로부터, 상기 무선 모바일 디바이스로부터 원격으로 위치한 서버에 지리적 위치를 식별하는 정보를 제공하는 단계, 상기 지리적 위치 주위의 아이템들을 표시하는 이미지 데이터를 서버로부터 응답으로 수신하는 단계, 상기 지리적 위치 주위의 이미지 공간의 이미지로서, 상기 모바일 디바이스의 사용자에게 상기 이미지 데이터를 디스플레이하는 단계, 및 상기 무선 모바일 디바이스의 사용자 모션에 응답하여 자동으로 상기 이미지 공간 안에서 이미지를 패닝하는 단계를 포함한다. 상기 이미지를 패닝하는 단계는 상기 무선 모바일 디바이스에 의해 감지된 나침반 판독에 따라 상기 지리적 위치 주변에서 상기 이미지를 횡으로 패닝하는 단계를 포함할 수 있다. 다른 관점에서, 상기 이미지를 패닝하는 단계는 상기 무선 모바일 디바이스에 의해 감지된 나침반 판독을 상기 지리적 위치에서 나침반 방향과 매칭하는 단계를 포함한다.
특정 관점에서, 상기 작업은 사용자로부터 주소 정보를 수신하는 단계, 상기 주소 정보의 수신에 응답하여 상기 주소 주위의 지도를 디스플레이하는 단계, 및 상기 지도에서 사용자 선택을 기반으로 지리적 위치를 식별하는 상기 정보를 제공하는 단계를 더 포함한다.
또 다른 구현에 있어, 컴퓨터-구현 비주얼 내비게이션 시스템에 대해 밝히고, 상기 시스템은 무선 모바일 컴퓨터를 위한 방위의 방향을 감지하는 나침반 모듈, 지리적 위치들 주위의 다수 이미지들을 상기 서버로부터 수신하기 위해서 상기 시스템으로부터 원격으로 위치한 서버와 통신하는 무선 인터페이스, 코드를 저장하는 메모리와 통신하는 프로세서를 포함하고, 상기 코드는 상기 나침반 모듈을 이용하여 상기 디바이스 방위의 방향을 결정하고, 상기 지리적 위치들 주위의 이미지들을 보여주는 이미지 데이터를 상기 서버로부터 얻고, 및 상기 무선 모바일 컴퓨터를 위한 방위의 방향에 상응하는 방위에서 상기 시스템의 사용자에 의해 식별된 지리적 위치에 상응하는 하나 이상의 이미지들을 디스플레이하기 위한 명령들을 구비한다. 상기 코드는 상기 무선 모바일 컴퓨터를 위한 방위의 방향에서 변화를 감지하고, 및 상기 무선 모바일 컴퓨터상의 이미지로 상기 무선 모바일 컴퓨터를 위한 방위의 방향 변화를 매칭하기 위해 상기 무선 모바일 컴퓨터상에 이미지의 디스플레이를 변화시키기 위한 명령들을 더 구비할 수 있다.
다른 관점에서, 상기 시스템은 상기 무선 모바일 컴퓨터의 모션을 감지하기 위한 가속도계를 더 포함하고, 상기 코드는 상기 무선 모바일 컴퓨터에 있는 이미지들의 디스플레이를 변화시키기 위한 명령들을 더 구비한다. 또한 상기 무선 모바일 컴퓨터를 위한 방위의 방향에 상응하는 방위에서 상기 시스템의 사용자에 의해 식별된 지리적 위치에 상응하는 하나 이상의 이미지들을 디스플레이하기 위한 코드는, 상기 나침반 모듈에 의해 감지된 나침반 판독에 따라 지리적 위치 주위에 디스플레이를 횡으로 패닝하기 위한 코드를 포함할 수 있다.
또 다른 구현에 있어, 컴퓨터-구현 비주얼 내비게이션 시스템은, 무선 모바일 컴퓨터를 위한 방위의 방향을 감지하는 나침반 모듈, 상기 서버로부터 지리적 위치들 주위의 다수 이미지들을 수신하기 위해 상기 시스템으로부터 원격으로 위치한 서버와 통신하는 무선 인터페이스 및 상기 나침반 모듈에 의해 감지된 방향에 상응하는 지리적 위치에 관한 방향에서 상기 서버로부터 검색된 이미지를 디스플레이하기 위한 수단을 포함한다고 밝힐 수 있다.
하나 이상의 실시예에 대한 세부사항은 첨부된 도면 및 하기 명세서에서 설명된다. 다른 특징 및 장점은 명세서 및 도면, 그리고 청구항으로부터 드러날 수 있다.
임의의 구현에 있어, 상기 시스템 및 기술은 하나 이상의 장점을 제공할 수 있다. 예를 들어, 한 손가락 입력(single finger input)으로 전체 공간을 가로질러 이동하기 위해서 상기 가속된 패닝 컨트롤을 사용할 수 있기 때문에, 디바이스의 사용자는 큰 공간 주위를 내비게이트(navigate; 그 외에 상기 터치 스크린 표면을 가로질러 여러 차례 사용자들의 손가락을 드래그(dragging)하도록 요구될 수 있다.)하는 데에 있어 시간을 절약할 수 있다. 또한, 상기 사용자는 사용자들이 현재 큰 공간에서 어디에 위치하고 있는지를 사용자들에게 보여주는 상황 표시(contextual indication)를 제공받을 수 있다. 예를 들어, 상기 스크롤링 컨트롤은 상기 공간 안에 사용자의 현재 위치를 반영하는 위치에서 디스플레이의 가장자리를 따라 놓여 있다(즉, 상기 컨트롤은 사용자가 상기 표면의 맨 위 부근에 있으면, 상기 스크린의 맨 위 부근에 있을 수 있다). 이와 같이, 상기 사용자의 디바이스와 사용자 간 상호작용이 더 효율적이고 즐거울 수 있고, 그래서 상기 사용자는 사용자들의 디바이스에서 특정 애플리케이션들을 더 자주 사용할 수 있으며 또한 특정 디바이스를 더 구매할 것으로 보인다.
도 1a 및 1b는 큰 디스플레이 공간을 위한 내비게이션 메카니즘을 도시한 개념적 다이어그램이다.
도 2a는 터치 스크린을 구비한 모바일 디바이스에서 긴 리스트를 내비게이트하는 사용자를 위해 생성될 수 있는 연속 디스플레이다.
도 2b는 상기 모바일 디바이스의 모션 또는 위치에 따라, 모바일 디바이스가 사용자를 위해 생성할 수 있는 디스플레이이다.
도 2c는 큰 공간에서 패닝 및 확대(zooming)를 위해 사용자 인터페이스를 제공하기 위한 기술의 예시적 디스플레이이다.
도 3은 터치 스크린 입력에 응답하여 사용자 상호작용을 제공하는 시스템의 개략도이다.
도 4a 내지 4b는 그래픽 사용자 인터페이스로부터 사용자 선택을 받기 위한 예시적 프로세스의 플로우차트(flow chart)이다.
도 4c 내지 4d는 모바일 디바이스의 모션에 따라 디스플레이를 업데이트하기 위한 예시적 프로세스의 플로우차트이다.
도 5는 본 명세서에서 설명되는 통지 기술의 실시예를 구현하는 예시적 모바일 디바이스의 도식도이다.
도 6은 도 5의 디바이스의 내부 구조를 예시하는 블록 다이어그램이다.
도 7은 도 5의 디바이스에 의해 사용되는 운영 체계의 예시적 구성 요소를 도시하는 블록 다이어그램이다.
도 8은 도 7의 운영 체계 커널로 구현되는 예시적 프로세스를 도시하는 블록 다이어그램이다.
도 9는 본 명세서에서 설명되는 기술을 구현하기 위해 사용될 수 있는 예시적 모바일 컴퓨터 디바이스와 예시적 컴퓨터 디바이스를 도시한다.
여러 도면에 있어서 유사한 참조 부호는 유사한 요소를 가리킨다.
본 명세서는 모바일 디바이스들과 그 디바이스들의 사용자들을 상호작용하게하는 시스템과 기술을 설명한다. 예를 들어, 사용자에게 아이콘 형태와 같은 그래픽 객체들이 보여질 수 있고, 이들 객체는 큰 가상 공간 안에서 그들이 위치한 곳을 사용자에게 표시하고, 상기 공간 안에 시각적으로 움직이기 위해 사용자가 선택할 수 있는 컨트롤을 제공할 수 있다. 예를 들어, 상기 공간이 디지털 미디어 플레이어의 재생목록(playlist)에 있는 노래 제목과 같은 항목들의 긴 리스트일 때, 상기 항목들에 비례하는 스크롤 바가 사용자가 스크롤하기 시작할 때 스크린의 가장자리에 나타날 수 있다. 사용자가 충분한 양 또는 충분한 속도로 스크롤 한다면, 리스트의 스크롤에 현재 놓여 있는 알파벳에 있는 문자를 표시하기 위해 큰 글자가 상기 스크린에 나타날 수 있다. 그러므로 상기 리스트가 흐릿해지는 반면 사용자는 어느 경우든 자신이 있는 곳의 표시를 가질 수 있다. 디스플레이 상에서 글자의 수직 위치는 알파벳 내에서 그 위치에 비교될 수 있어서, "A"자는 디스플레이의 맨 위에 나타나고 "Z"자가 맨 아래 나타난다. 또한 상기 스크롤 바는 사용자가 스크롤할 때, 사용자가 스크롤을 많이 할수록 더 커지거나 더 두드러지도록, 외관을 변화시킬 수 있다.
비주얼 공간의 큰 부분을 보여주지만, 상기 공간의 큰 부분을 볼 수 있도록 해주는 줌 레벨(zoom level)에서는 사용자가 상기 아이템들을 완전히 볼 수 없는 것이 바람직한 다른 실시예에 있어서, 가상 돋보기 형태에서 객체가 제공될 수 있다. 그러한 객체는 스크린 위에 있는 지역이 될 수 있고, 그 지역 내에서 상기 공간의 부분이 상당히 확대된다. 예를 들어, 상기 객체는 웹 브라우징(web browsing) 동안에 사용자가 웹 페이지 전반의 레이아웃(layout)을 보고, 상기 페이지의 일부를 빠르게 읽거나 더 면밀히 검토할 수 있도록 사용될 수 있다.
또 다른 실시예에 있어, 상기 비주얼 공간은 유명한 구글 스트리트뷰(Google Streetview) 서비스에서 제공하는 것과 같이, 현실 세계의 어느 한 점에서 보이는 360도 파노라마가 될 수 있다. 그러한 파노라마는 공통 지점 근처에 탑재되어 방사형으로 외부를 조준하는 복수 개의 카메라로 동시에 또는 준동시에 디지털 이미지를 촬상하여 생성될 수 있다. 그러한 이미지들은 보통 구글맵 서비스와 같은 서비스를 통해 데스크탑 개인 컴퓨터에서 내비게이트하게 된다. 상기 예에서, 상기 이미지들은 본질적으로, 디바이스에 제공되는 나침반 모듈에 있는 나침반과 같은 모바일 디바이스 자체에 있는 위치-탐지 요소들을 사용하여 내비게이트하게 된다. 그러므로, 사용자는 지리적 위치(이 지리적 위치는 사용자의 현재 위치 또는 다른 위치가 될 수 있음)를 선택할 수 있고, 사용자는 현재 향하고 있는 방향(예컨대, 사용자의 모바일 디바이스에 있는 나침반을 통해 결정된 방향)에 맞춰 정렬된 뷰(view)를 그 위치로부터 사용자의 디바이스를 통해 볼 수 있다. 사용자가 회전할 때, 사용자의 디바이스에 있는 이미지는, 디바이스를 사용자 자신 앞에 유지하고 있으면, 상기 선택된 위치로부터 사용자가 지금 향하고 있는 방향에서 상기 뷰를 매칭하기 위해 변화할 것이다.
도 1a 및 1b는 큰 디스플레이 공간을 위한 내비게이션 메커니즘을 보여주는 개념적인 다이어그램이다. 도 1a는 일반적으로 긴 아이템 리스트에서의 내비게이션을 보여주는 반면, 도 1b는 큰 지도를 가로지르는 내비게이션을 도시한다. 각각의 도면에서, 디스플레이될 영역(점선으로 도시됨)은 한번에 디스플레이될 수 있는 영역(실선으로 도시됨)보다 실질적으로 크다. 그러므로, 여기에 설명된 메카니즘은 사용자가 최종적으로 자신의 희망 영역에 도착할 때까지 디스플레이-다음-디스플레이-다음-디스플레이를 거쳐 반복적으로 패닝하는 것보다 더 편리한 방식으로 상기 공간을 가로질러 내비게이트하도록 사용자를 지원한다.
도 1a의 예를 참조하면, 모바일 디바이스에 저장된 아이템들의 리스트(108)를 포함하는 그래픽 시스템(102)이 도시되어 있다. 상기 아이템들은 사용자와 관련된 개인 연락처, 사용자의 음악 콜렉션에 있는 노래 또는 기록, 디바이스에 저장된 다양한 파일들, 상기 디바이스에 편리하게 재생될 수 있는 비디오 파일들, 또는 리스트 형식에서 디스플레이될 수 있는 다른 적절한 아이템 그룹들 등을 포함할 수 있다. 개개의 아이템(110)은 상기 아이템을 나타내는 다양한 정보와 함께 사용자에게 디스플레이될 수 있다. 예를 들어, 상기 아이템이 연락처라면, 상기 디스플레이된 정보는 연락처의 이름과 연락처의 전화번호를 포함할 수 있다. 아이템(110)이 뮤지컬 그룹이라면, 상기 시스템은 뮤지컬 그룹의 이미지나 뮤지컬 그룹의 앨범 커버, 그룹의 이름, 및 노래, 앨범의 이름 또는 상기 그룹에 관련된 다른 적절한 정보들을 디스플레이할 수 있다. 아이템(110)이 파일 리스트에 있는 파일이라면, 상기 시스템은 파일 이름, 파일 사이즈 및 파일의 최종 저장 날짜를 디스플레이할 수 있다.
디스플레이(106)는 리스트(108)의 중반 부근에 중첩되도록 도시되어 있다. 이 예에서 디스플레이(106)는 모바일 디바이스로부터 전형적인 세로-형식의 비디오 디스플레이를 표시하고, 대각선으로 측정된 대략 3~4인치가 될 수 있다. 디스플레이(106)는, 사용자가 디스플레이(106)를 통해 한번에 리스트(108)의 다양한 여러 부분들을 보기 위해 리스트(108)를 스크롤할 수 있음을 나타내기 위하여, 리스트(108) 위에 사실상 창(window)으로 도시되어 있다.
개념적으로, 리스트(108)는 디스플레이(106) 아래에서 위 아래로 움직이고, 디스플레이(106)는 상기 리스트 위에 있는 창으로 기능할 수 있다. 일 구현에 있어, 리스트(108)가 분류(sort)되는 방식 및 디스플레이(106)가 사용자에게 표시하기 위해 리스트(108)로부터 아이템들을 불러와서 형식을 지정하는 방식은 표준 메카니즘에 따라 일어날 수 있다. 디스플레이(106)의 상부와 하부는 리스트(108)에 있는 아이템들이 디스플레이(106)의 상부와 하부 부근에서 검게 흐려짐을 표시하기 위해 음영으로 도시되어, 상기 아이템들이, 상기 사용자가 상기 리스트를 위아래로 내비게이트함에 따라서 돌리는 3-차원 릴(reel) 위에 실효적으로 있다는 인상을 사용자에게 제공한다.
디스플레이(106)는 터치 스크린 구조의 일부로서 통합되어, 사용자는 상기 리스트 위에서, 직관적 방식으로 자신의 손가락을 아래 또는 위로 각각 슬라이드(slide)하여 리스트(108)를 아래 위로 드래그(drag)할 수 있다. 하지만 리스트(108)가 매우 길면, 리스트(108)를 위 아래로 패닝하는 탄력(momentum)을 제공하기 위해 디스플레이(106)에서 손가락을 슬라이드하거나 디스플레이(106)를 플릭(flick)하는 것은, 상기 사용자가 그들의 모션을 여러 차례 반복해야하기 때문에 패닝을 제공하는 느린 방법일 수 있다. 결과적으로, 비주얼 컨트롤(112)이 긴 리스트(108)를 가로지르는 상기와 같은 패닝을 지원하기 위해 디스플레이(106)에 디스플레이될 수 있다. 컨트롤(112)은 데스크탑 생산성 소프트웨어(예컨대, 스프레드시트 및 워드 프로세서)와 같은, 스크롤 바들의 사용을 포함하는 다양한 애플리케이션으로부터 사용자들에게 친숙한 슬라이더 버튼(slider button)의 형태를 가질 수 있다. 컨트롤(112)은 리스트(108) 측면의 스크롤링 바로 디스플레이되거나, 리스트(108)에 있는 요소들 위에 시각적으로 떠있는 요소처럼 디스플레이될 수 있다.
컨트롤(112)은 이 기술분야에 주지된 비례적인 형태를 취할 수 있어서, 컨트롤(112)은 리스트(108)가 길수록 짧아진다. 이러한 경우에 있어, 컨트롤(112)은 사용자가 디스플레이(106) 안에서 미리 결정된 위치의 상부 또는 하부로 컨트롤을 드래그함에 따라 사용자를 리스트(108)의 상부 또는 하부에 보내줄 수 있다. 특히 더 짧은 컨트롤(112)은, 리스트(108)가 매우 긴 리스트이면, 디스플레이(106)에 의해 디스플레이되고 있는 상대적으로 더 작은 영역을 표시할 수 있다. 결과적으로, 컨트롤(112) 높이와 동일한 길이를 통한 컨트롤의 이동(112) 각각은 리스트(108)의 일 디스플레이(106)를 가로지르는 이동을 근사화한다. 다시 말해, 사용자에 의한 컨트롤(112)의 동일한 움직임은, 컨트롤(112)이 더 크고 따라서 리스트(108)가 더 짧을 때보다 컨트롤(112)이 작을 때, 아이템들이 디스플레이(106)를 가로지르는 상응하는 이동을 더 많이 초래할 수 있다.
컨트롤(112)은 또한 다양한 다른 형태를 취할 수 있다. 예를 들어, 컨트롤(112)은 디스플레이(106) 한복판에 오버레이(overlay)되어 있는 것처럼 디스플레이(106)의 영역 위에 어디든지 놓일 수 있다. 하지만 소정 구현에 있어, 사용자의 손가락 또는 다른 포인터에 의해 디스플레이(106)의 컨텐츠가 가려지는 것을 피하기 위해, 가능한 디스플레이(106)의 경로에서 떨어진 곳에 컨트롤(112)을 배치하는 것이 선호될 수 있다.
특정 방향으로 컨트롤(112)의 이동은, 구현에 따라서 동일한 방향 또는 반대 방향으로 디스플레이(106)를 가로질러 리스트(108)를 이동시킬 수 있다. 예를 들어, 아래쪽으로 컨트롤(112)을 드래그하는 것은 리스트(108)를 시각적으로 아래쪽으로 드래그하여, 디스플레이(106)가 리스트를 타고 올라오고, 아마도 가속 링크의 형태로 컨트롤(112)이 리스트(108)에 직접 붙어있는 있는 것처럼 보이도록 할 수 있다. 대안적으로, 아래쪽으로의 컨트롤(112) 이동은 리스트(108)가 디스플레이(106)를 통해 위쪽으로 이동하도록 하여, 아마도 가속 링크의 형태로 컨트롤(112)이 디스플레이(106)에 연결되어 있다는 인상을 줄 수 있다.
도 1b는, 폴 메트로폴리탄 구역의 미네아폴리스-거리(the Minneapolis-St. Paul metropolitan area)에서, 메트로폴리탄 영역의 지도에 창들을 제공하는 다수의 예시적 디스플레이(114, 116, 118)를 도시한다. 이 예에서 지도(104)는 상기 다양한 디스플레이(114, 116, 118)에 있는 요소들의 더 뚜렷한 뷰(view)가 가능케 하도록 매우 단순화되어 있다. 각각의 예에서, 터치 스크린을 구비한 모바일 디바이스와 같은 디바이스의 사용자들이 지도(104)를 가로질러서 쉽고 직관적으로 패닝할 수 있도록 하는 메카니즘이 제공되어서, 디스플레이(114, 116, 118)는 한번에 상기 지도의 작은 부분만 보여줄 수 있다.
제1 디스플레이(114)는 남서쪽 메트로폴리탄 영역에 있는 존(zone)을 보는 모바일 디바이스의 사용자를 표시한다. 디스플레이(114)는 그 디스플레이(114)에 있는 지도의 표면상에 네 방향을 가진 화살표(114a)의 생성을 보여준다. 사용자는 지도(104) 주변에서 패닝할 의도를 표시하기 위해 상기 화살표(114a)를 위, 또는 아래, 또는 양옆으로 드래그할 수 있다. 일 예에 있어, 화살표(114a)가 디스플레이되기 전에 사용자에 의한 패닝(예컨대, 상기 지도를 가로질러 손가락을 드래그하는 것)은 디스플레이(114)가 상기 메트로폴리탄 구역을 가로질러 한 방향으로 수 마일(mile)만 이동시킬 수 있다. 대조적으로, 네 방향 화살표(114a)가 디스플레이된 후에, 사용자는 상기 메트로폴리탄 구역에 있는 북동쪽 존(Northeast zone)인 지도(104)의 오른쪽 위 코너로 디스플레이(114)가 이동하도록 하기 위해 상기 디스플레이의 오른쪽 위 코너로 화살표(114a)를 드래그할 수 있다. 다른 과대하거나 가속화된 모션들이 화살표(114a)의 조작을 통해 또한 일어날 수 있다.
디스플레이(114)는 또한 전체 지도 구역의 작은 오버뷰(overview) 지도(114b)를 포함한다. 지도(114b)는 친숙한 방식으로 제공되고, 현재 줌 레벨에서 사용자가 이용가능한 전체 매핑된 구역을 나타내는 큰 박스와 사용자의 현재 디스플레이(114)를 표시하는 더 작은 박스를 보여줘, 사용자가 상기 큰 지도에서 다른 지역들과 관련해 사용자의 위치를 쉽게 식별할 수 있도록 한다. 또한 지도(114b)가 지도(104)보다 훨씬 작기 때문에 비록 모든 특징들이 디스플레이되지는 않더라도, 지도(104)의 주요 특징들은 지도(114b) 내부에 표시될 수 있다.
디스플레이(116)는 도 1a에 있는 슬라이더 컨트롤(112)과 유사한 방식으로 동작하는 슬라이더 컨트롤들(116a, 116b)을 도시한다. 특히, 디스플레이(116)가 주어진 사용자에게는 초기에 그 전체 디스플레이(116)를 채우는 지도 정보만 보여질 수 있다. 만약 사용자가 자신의 디스플레이(116)에서, 지도(104)를 가로질러 패닝하기 시작하거나, 장거리를 패닝하고자 하는 것을 표시하기 위해 패닝을 플릭(flick)하면, 컨트롤(116a, 116b)들이 생성되고 사용자에게 보여진다. 사용자는 이후에 디스플레이(116)의 왼쪽 또는 오른쪽으로 컨트롤(116a)를 완전히 슬라이드시켜서 지도(104)의 왼쪽 또는 오른쪽으로 완전히 패닝할 수 있다. 이와 유사한 방식으로, 컨트롤(116b)을 디스플레이(116)의 상부 또는 하부에 완전히 슬라이드시켜서 디스플레이(116)가 지도(104)의 상부 또는 하부로 완전히 이동될 수 있다. 이러한 방식으로, 상기 사용자는 지도(104)를 가로질러 지도의 모션을 가속시키는 컨트롤들(116a, 116b)을 사용하여 지도(104)를 빠르게 이동시킬 수 있고, 따라서 디스플레이(116) 상에서 한번 휘두르는 것(single swipe)은, 디스플레이(116)의 지도에 대한, 컨트롤들(116a, 116b)을 사용하지 않는 직접적인 일반적인 패닝 동작보다 훨씬 더 멀리 디스플레이(116)를 이동시킨다.
디스플레이(118)는 디스플레이(114)에 도시된 것과 유사하지만 지도(104) 상에 환형 링(annular ring)이 디스플레이되는 내비게이션을 제공한다. 디스플레이(118)에 있는 링(118a)의 위치는 지도(104) 상에서 디스플레이(118)의 상대 위치를 표시한다. 특히, 여기서, 디스플레이(118)는 지도(104)의 상부 근처, 약간 왼쪽에 있고, 유사하게, 링(118a)은 디스플레이(118)에서 상부 부근이고 약간 왼쪽에 있다. 사용자는 링(118a) 위가 아닌 디스플레이(118)의 영역에서 자신의 손가락을 드래그하여 지도를 가로질러 천천히 패닝할 수 있고, 링(118a) 위에 손가락을 놓아 지도(104)를 가로질러 빠르게 패닝할 수 있다.
그러므로, 도 1a 및 1b의 메카니즘은 다양한 메카니즘들을 도시하며, 사용자는 이러한 메카니즘들을 통해, 큰 가상 공간이 일차원을 따르든 이차원에 있든 간에, 그 큰 가상 공간 안에서 내비게이트할 수 있다. 이러한 메카니즘들은 상기 큰 공간 주위를 패닝하기 위해 사용자가 자신의 컴퓨팅 디바이스를 제어할 수 있게 해주는 선택가능한 컨트롤 또는 컨트롤뿐만 아니라, 상기 큰 공간에 있는 사용자의 현재 위치 감각을 사용자에게 제공할 수 있다. 여기 도시된 메카니즘은 터치스크린 디바이스, 및 더욱 상세하게는 터치스크린을 구비한 모바일 디바이스에 특히 유용할 것이다.
아이템의 긴 리스트의 디스플레이를 다시 참조하면, 도 2a는 터치스크린을 구비한 모바일 디바이스에서 긴 리스트를 내비게이트하고 있는 사용자에게 발생되는 일련의 디스플레이들(200 내지 206)을 도시한다. 이 예에서, 상기 리스트는 음악 그룹 또는 가수의 리스트이고, 개념적으로 도 1a에 있는 리스트(108)와 개념적으로 동일하게 도시될 수 있다.
디스플레이(200)는 일곱 개의 다른 그룹들을 도시하며, 각 그룹에 대하여 그 그룹 이름, 사용자의 디바이스 상에 저장된 그 그룹의 앨범 수, 및 상기 앨범에 있는 노래의 수가 도시된다. 게다가, 그래픽 아이콘이 각 그룹에 대해 도시되어 있고, 상기 아이콘은 상기 그룹에 대해 싱글 앨범 또는 다수 앨범들이 이용가능한지를 표시한다. 이용가능하다면, 앨범 커버 아트가 수동 또는 자동으로 다운로드될 수 있고, 또는 다른 이미지들이 상기 아이콘을 위해 삽입될 수 있다.
슬라이더 컨트롤(208)은 이 예에서 디스플레이(200)의 오른쪽 가장자리를 따라 도시되어 있다. 위에서 설명하고 또한 아래에서 더욱 자세히 설명하는 바와 같이, 슬라이더 컨트롤(208)은 디스플레이(200)가 디스플레이(200)보다 큰 리스트를 보여줄때마다 보여지거나,또는 특정 상황 환경에서만(예컨대, 데이터의 표시를 가로질러 길게 패닝하고자 하는 사용자의 의도를 나타내는, 사용자의 특정 행동 후에만) 보여질 수 있다.
디스플레이(202)는 도시된 작은 점으로부터 도시된 큰 점과 링을 향해 위쪽으로 상기 스크린에 걸쳐 플릭(flick)하는 사용자의 동작을 도시한다. 여기에 도시된 상기 특정 그래픽은 통상 디스플레이(202)에 도시되지는 않지만, 여기서는 디스플레이(202) 상에서 일반적인 사용자 입력을 보여주기 위해 제공된다. 슬라이더 컨트롤이 미리 디스플레이되어 있지 않은 경우에, 플릭(210)에 의해 디스플레이(202)에 슬라이더 컨트롤(212)이 발생된다. 이 예에 있어, 사용자는 상기 리스트의 알파벳의 첫머리에 있고 따라서 슬라이더 컨트롤(212)은 디스플레이(202)의 상부에 보여진다. 슬라이더 컨트롤(212)의 크기는 일반적으로 디스플레이(202)에 도시된 리스트의 길이에 비례하거나 반비례할 수 있다. 예를 들어, 여기서 슬라이더 컨트롤(212)은 디스플레이(202) 높이의 1/10 정도이다. 결과적으로, 상기 리스트가 대략 60명의 아티스트를 포함한다고 결론지을 수 있다. 컨트롤(212)의 크기는 또한 디스플레이(202)에 대해 반드시 비례하게 클 필요는 없지만 리스트의 길이에 관련될 수 있다. 예를 들어, 슬라이더 컨트롤(212)의 최소 크기가 특정될 수 있어서, 비록 리스트가 수 천개의 엔트리를 포함하더라도, 슬라이더 컨트롤(212)은 사용자가 그 컨트롤을 적절히 보고 잦은 오류없이 선택할 수 있도록 충분히 크게 된다.
디스플레이(204)는 상기 플릭(210)의 결과이다. 특히, 아티스트들의 리스트는 위쪽으로 스크롤되고, 알파벳에서 두 개 글자를 아래로 이동해 있다. 주목할 것은 상기 이동이 탄력을 포함한다는 것인데, 플릭(210)이 오직 두 아티스트의 거리에 걸쳐있지만, 디스플레이는 여러 다스의(dozen) 아티스트들을 거쳐 스크롤 다운하기 때문이다. 당업자에게 친숙한 방식으로, 사용자가 플릭할 수 있는 물리적으로 회전하는 휠(wheel) 또는 유사한 물리적 객체의 행동을 근사화하기 위하여, 상기 플릭의 특정 속도는 스크롤되는 거리를 결정할 수 있다.
추가적으로, 컨트롤(212)은 두 가지 관련된 방법으로 변화하여 컨트롤(214)이 된다. 첫째, 컨트롤(214)은 스크롤링 컨트롤이기 때문에, 컨트롤(214)의 위치는 컨트롤(212)로서의 위치로부터 약간 아래로 이동하여, 디스플레이(202)와 비교하여 디스플레이(204)에서 사용자가 리스트를 더 아래로 내린 점을 반영한다. 게다가, 컨트롤(214)은 더 쉽게 사용자의 주의를 끌기 위해 컨트롤(212)보다 더 두드러진다. 예를 들어, 컨트롤(214)은 특정 상황 기능을 위해 선택될 수 있음을 사용자에게 알리기 위해 중앙이 약간 부풀어오르거나 두꺼워지기 시작한다.
이 예에서, 컨트롤(214)는 상기 아티스트의 리스트를 아래 위로 가속화 패닝하는데 사용될 수 있다. 예를 들어, 상기 컨트롤은 디스플레이(204)의 측면에서 아래로 완전히 드래그될 수 있고, 비록 이 모션이 비록 상기 디스플레이 상에 현재 도시된 다섯 명의 아티스트만에 걸쳐있더라도, 아마도 수 백명의 아티스트를 지나 글자 Z까지 아래로 완전히 상기 리스트를 내리는 모션이 될 수 있다.
컨트롤(214)은 또한 다른 방식으로 더 두드러지게 만들어질 수 있다. 예를 들어, 컨트롤(214)은 컨트롤(214)의 크기를 증가시키는 것에 더하여, 또는 이에 대한으로서, 더욱 밝게 만들어 질 수 있다. 컨트롤(214)은 또한 사용자가 플릭(210)과 같은 플릭을 반복적으로 수행할 때 압력을 받고 있고 또한 늘어난 것처럼 보이도록 묘화(render)될 수 있다. 이러한 방식으로, 사용자는 가속화된 패닝을 수행하기 위한 컨트롤(214)을 채용하는데 있어서 긴급성을 쉽게 알 수 있는데, 상기 리스트 자체에서 다수의 플릭은, 많은 수동 플릭들을 수행해야 하는 것보다 가속화된 패닝에서 사용자가 진정으로 이익을 얻고자 하는 것을 가리키기 때문이다. 게다가 컨트롤(214)의 색깔은, 사용자가 컨트롤(214)를 필요로 할 수 있음을 가리키는 입력들을 제공할 때 컨트롤(214)이 사용자의 주의를 더 끌 수 있도록, 사용자가 리스트의 표면에 걸쳐 한번 이상의 플릭을 수행할 때, 및 컨트롤(214)이 디스플레이의 가장자리를 아래 위로 이동할 때 모두에 있어서 변화될 수 있다.
디스플레이(206)는, 디스플레이(206)로 안내되는 화살표에서 컨트롤(214)의 바닥에 점으로 도시된 것과 같은 컨트롤(214)을 사용자가 선택하면 얻어지는 변화를 나타낸다. 컨트롤(216) 상의 점은 사용자가 컨트롤(216)에 대한 압력을 유지하고, 디스플레이(206) 상에서 리스트를 아래로 스크롤하려고 하는 것을 표시한다. 그러한 선택에 의해, 컨트롤은 컨트롤(214)로 도시된 형상에서 컨트롤(216)로 도시된 형상으로 다시 형태를 바꿀 수 있다. 게다가, 리스트에 있는 아이템들을 위한 색인 글자는 사용자를 위한 추가적인 안내를 제공하기 위해 친숙한 방식으로 도시된다. 색인 글자(218)는 리스트에 있는 요소들의 이산적인 그룹화(grouping)를 나타내며, 여기에서는 색인 글자는 디스플레이(206) 상부에 나타난 아티스트의 첫글자를 나타내는 알파벳이다. 색인 글자(218)는 또한, 디바이스에 저장된 파일의 크기를 나타내는 숫자 또는 아이템의 리스트가 개별 그룹으로 분류되도록 해주는 그 밖의 지시자와 같은 임의 형식을 취할 수 있다.
색인 글자(218)는 다양한 방법으로 디스플레이될 수 있다. 이 예에서, 색인 글자(218)는 아티스트 이름을 가장 작게 가리는 방식으로 디스플레이의 가장자리 근처에 배치되지만, 이름들이 색인 글자(218) 밑에 배치되었을 때조차 이름들이 보이도록 색인 글자는 일부 또는 전체가 투명하게 만들어질 수 있다. 게다가, 색인 글자(218)는 컨트롤(216)의 이동을 따라 디스플레이(206)에서 아래 위로 이동할 수 있다. 예를 들어, 색인 글자(218)는 사용자의 손가락이 컨트롤(216) 위에 있는 동안에도 사용자가 색인 글자(218)를 볼 수 있도록 하기 위해 충분한 거리를 두고 컨트롤(216)의 왼쪽에 고정될 수 있다. 하지만, 색인 글자(218)는 컨트롤(216)과 함께 디스플레이(206)의 측면을 아래 위로 이동할 수 있다. 이러한 방식으로, 사용자는 디스플레이되고 있는 글자에 더 쉽게 주목하고 사용자가 관심을 둔 아티스트에게 더 밀접하게 내비게이트할 수 있는데, 사용자는 자산이 이동시키는 손가락을 보고 그에 따라서 자신의 눈을 이동시키기 때문이다.
색인 글자는 디스플레이(206)의 리스트에 있는 글자들이 변화함에 따라서 변화할 수 있다. 따라서, 예를 들어, 리스트에 'A'자로 시작되는 아티스트가 많고 'C'로 시작되는 아티스트가 거의 없다면, 'A'자를 지나갈 때와 비교하여 색인 글자로서 'C'자를 지나갈 때 컨트롤(216)의 아주 작은 모션이 요구될 것이다. 대안적으로, 각각의 색인 글자(여기서 A부터 Z(그리고 아마도 0부터 9))는 컨트롤(216)의 이동에 견주어 동일한 분할을 가지고, 따라서 예컨대, 디스플레이(206)의 26분의 1만큼을 아래로 이동하면 색인 글자(218)에서 한 글자의 변화가 초래될 수 있다.
일부 구현에 있어, 색인 글자는 사용자가 컨트롤(214)을 위 아래로 슬라이드함에 따라서 변화할 수 있지만, 리스트에 있는 아이템들은 이러한 컨트롤이 발생하고 있을 때 이동을 멈출 수 있다. 그러므로, 두 가지 콘트롤 모드가 있을 수 있다. 즉, 사용자가 패닝함에 따라서 리스트의 아이템들이 아래 위로 스크롤하는 일반 패닝 모드와, 사용자가 컨트롤을 이동시킴에 따라서 가속 방식으로 색인 글자가 순환하고, 아이템들은 더 이상 이동하지 않는 가속화된 패닝 모드가 있다.
본 명세서에 설명된 기술을 사용하여, 사용자는 리스트의 디스플레이를 가로질러 그들의 손가락을 드래그함으로써 작은 이동으로 쉽게 내비게이트할 수 있다. 사용자는 가상 탄력이 줌으로써 상기 리스트에서 한번에 하나 이상의 디스플레이를 이동시키도록, 사용자의 손가락으로 상기 디스플레이에 걸쳐 플릭함으로써 큰 이동으로 내비게이트할 수 있다. 사용자는 불필요한 상호작용을 할 필요없이(사용자가 리스트를 패닝하거나 스크롤하려는 의도를 나타내기 전까지 숨겨진 컨트롤의 제시를 통함) 리스트를 가속화된 방식으로 스크롤하는 편리한 옵션을 제공받을 수 있다.
도 2b는 모바일 디바이스의 모션 또는 위치에 따라 모바일 디바이스가 사용자를 위해 생성할 수 있는 디스플레이들을 도시한다. 일반적으로, 많은 모바일 모바이스들이 다양한 종류의 모션을 검출하도록 설정될 수 있다. 예를 들어, 일부 실시예에 있어, 모바일 디바이스는 지구의 자기장(북극과 남극)에 따라 지향 방향(heading)의 변화를 검출하는데 사용될 수 있는 전자 나침반을 포함할 수 있다. 이와 같이, 모바일 디바이스를 가진 사용자가 모바일 디바이스의 지향 방향을 북극의 방향에 대하여 전환하거나 변화시킬 때, 모바일 디바이스는 지향 방향의 변화를 검출할 수 있다. 또 다른 예로서, 모바일 디바이스는 모션의 변화를 검출할 수 있는 가속도계를 포함한다. 이 경우, 모바일 디바이스를 소지하는 사용자가 그 디바이스를 들어올리고, 떨어뜨리고, 흔들고 또는 그 밖에 모바일 디바이스를 가속하거나 감속할 때, 모바일 디바이스는 가속의 변화를 검출할 수 있다. 일부 구현에 있어, 이러한 검출된 모션들은 모바일 디바이스의 디스플레이를 자동으로 갱신(update)하는데 사용될 수 있다.
도 2b에 도시된 예를 참조하면, 사용자(224a 내지 224c)는 모바일 디바이스(220)를 세 가지 상이한 방위 또는 방향으로 소지하고 있다. 사용자(224a 내지 224c)는 (북쪽 화살표를 기준으로) 특정 지향 방향으로 도시되어 있다. 즉, 동일한 사용자가 모바일 디바이스(220)에 포함된 나침반을 따라 다른 지향 방향으로 도시되어 있다. 일반적으로, 모바일 디바이스(220)는 상기 모바일 디바이스의 사용자가 특정 영역의 지도에 접근하도록 해주는 웹 브라우저 또는 그 밖의 소프트웨어 애플리케이션을 포함할 수 있다. 일부 구현에 있어, 상기 지도는 또한 도로변에서 캡쳐(capture)된 상기 영역의 이미지를 포함한다. 일 예는 구글(캘리포니아 마운틴뷰에 소재함)로부터의 스트리트뷰(STREETVIEW)이다. 사용자(224a 내지 224c)는 상기 웹브라우저 또는 그 밖의 소프트웨어 애플리케이션에 주소를 제공하여, 그 제공된 주소 주위 영역의 뷰(지도, 위성 이미지 또는 둘의 조합의 형태로)를 생성할 수 있다. 일부 구현에 있어, 모바일 디바이스(220)는 위성 위치 확인 시스템(global position system; GPS) 또는 자동으로 모바일 디바이스의 위치를 찾도록 설계된 다른 시스템을 이용하여 주소(사용자가 위치한 곳의 현재 주소)를 자동으로 제공할 수 있다.
사용자는 초기에 주소 정보- 여기서는 Hubert H. Humphrey Metrodome의 주소-를 제공하고, 그 "돔(The Dome)" 주변 영역에 대한 지도 타일(map tiles) 및 그 밖의 지도 데이터를 친숙한 방식으로 제공받을 수 있다. 이후에 사용자는 상기 돔 주변 영역에서 스트리트 뷰가 표시되도록 더 선택할 수 있다. 예를 들어, 사용자가 자신의 집에 머무르고 있는 동안, 사용자에게는 이전에 상기 돔을 지나간 자동차에 의해 얻어진 상기 돔의 외부로부터의 이미지가 디스플레이될 수 있다. 사용자는, 쿼리(query) "메트로돔"에 의한 검색(search)을 통해서 대안적으로 상기 뷰를 얻을 수 있고, 이후에 상기 지도상의 지점으로부터 이미지를 보기 위해 선택할 수 있다. 상기 검색은 메트로돔 주변 영역의 지도에 대한 링크를 포함하는 원박스(Onebox) 결과로서 주소를 되돌려준다.
인간이 스트리트뷰를 통해 가상의 방식으로 바라보는 방향은 사람이 자신의 좌표계에서 바라보는 나침반의 방향과 동등해질 수 있다. 예를 들어, 사용자(224a 내지 224c)가 이동함에 따라서, 모바일 디바이스(220)는 상기 지도 데이터, 모바일 디바이스의 위치, 모바일 디바이스의 방향, 및/또는 모바일 디바이스에 의해 검출될 수 있는 그 밖의 정보(예컨대, 모바일 디바이스(220)에 발휘되는 가속도)에 따라 특정 지역의 디스플레이들(222a-222c)을 생성할 수 있다. 예를 들어, 사용자(224b)는 일반적으로 SSE를 볼 수 있고, 그러므로 유사한 방향으로 배향된, 상기 돔 주위 영역의 뷰가 도시된다.
사용자가 왼쪽으로 돌면(예컨대, 사용자(224a)로 예시된 지향 방향임), 모바일 디바이스(220)는 사용자의 모션 또는 방향(예컨대, 방향의 변화)을 검출할 수 있고, 디스플레이(222a)에 예시된 바와 같이, 사용자의 지향 방향과 매칭시키기 위해 상기 뷰를 자동으로 패닝할 수 있다. 즉, 모바일 디바이스(220)는 모바일 디바이스(220)에 의해 검출된 새로운 지향 방향에 따른 메트로돔의 다른 부분을 이제 디스플레이(222a)에 디스플레이한다. 만약 사용자가 사용자의 오른쪽으로 돌면(예컨대, 사용자(224c)로 예시된 지향 방향임), 모바일 디바이스(220)는 사용자의 모션(예컨대, 지향 방향의 변화)을 검출할 수 있고, 디스플레이(222c)에 예시된 사용자의 현재 지향 방향과 매칭시키기 위하여 상기 뷰를 자동으로 패닝할 수 있다.
디바이스의 지향 방향은 특정 스트리트 뷰를 구성하는 이미지 또는 이미지들의 부분들을 식별하는 관련 지향 방향 데이터에 쉽게 매칭될 수 있다. 다수의 이미지들이 있다면, 이미지들을 연속하여 제공하고 가장자리에서 이미지들을 혼합시킴으로써, 이미지들은 사용자에게 끈김없이 보여질 수 있다. 이러한 방식으로, 비록 사용자가 상기 이미지들이 캡쳐된 지점으로부터 멀리 있더라도, 사용자는 그 지점 주변 영역을 모바일 디바이스 상에서 볼 수 있다.
일부 구현에 있어, 가속도계는 모바일 디바이스(220) 상에 있는 나침반을 대신하여 또는 나침반과 함께 사용될 수 있다. 예를 들어, 사용자가 걸음에 따라서, 가속도계는 모션(예컨대, 흔들기, 걷기, 고도나 방위의 변화, 또는 그 밖의 모션)을 검출할 수 있고, 그에 따라서 디스플레이(222a 내지 222c)를 갱신할 수 있다. 예를 들어, 모바일 디바이스는 검출된 가속도에 기초하여 사용자가 이동하고 있음을 검출할 수 있고, 마치 사용자가 거리를 걸어 내려가는 것처럼 디스플레이(222a 내지 222c)를 패닝할 수 있다. 사용자는 또한 구글 스트리트뷰에서 트래블 화살표(travel arrow)의 선택에 의해 사용자가 거리를 따라 가상적으로 이동하는 것과 매우 유사하게, 허공에서 디바이스를 단순히 흔들어, 상기 디스플레이된 공간에서 앞방향 모션(forward motion)이 일어나도록 할 수 있다. 또 다른 예로서, 모바일 디바이스(220)는 그 모바일 디바이스의 방위 변화를 검출할 수 있고(예컨대, 가속도계에 의해 검출된 가속도에 따름), 마치 사용자(224a 내지 224c)가 아래 또는 위를 바라보는 것처럼 디스플레이(222a 내지 222c)를 아래 또는 위로 패닝할 수 있으며, 여기서, 원격 서버가 상기 디바이스에 제공한 그래픽 이미지들은 이러한 파노라마 사진들을 포함한다.
디바이스가 도시한 방향은 또한 절대적이라기보다는 상대적일 수 있고, 특히 가속도계가 사용되고 나침반이 사용되지 않는 경우에 그러하다. 특히, 사용자에게 제공된 뷰의 초기 방위는 사용자가 바라보는 특정 방향보다는 규칙에 의해 처음에 선택될 수 있다. 그런 다음, 왼쪽 또는 오른쪽으로 회전하는 사용자의 상대적인 모션이 디바이스 상의 가속도계에 의해 감지될 수 있고, 사용자가 보고 있는 지리적 장소의 이미지는, 비록 사용자의 모션에 완벽하게 비례하는 방식은 아니더라도, 그러한 모션과 관련하여 패닝될 수 있다. 예를 들어, 사용자 디바이스가 절대적인 모션을 감지하는 성능에 제한이 있기 때문에, 사용자가 90도 회전할 때 디스플레이는 동일한 방향에서 60도만 회전하도록 만들어질 수 있다.
도 2c는 큰 공간에서 패닝과 주밍(zooming)을 하기 위한 사용자 인터페이스를 제공하는 기법의 예시적인 디스플레이를 도시한다. 일반적으로, 이 도면은 웹 페이지에서 주밍을 위해 사용자 인터페이스 메카니즘을 사용하는 동안 여러 다른 시점들(points in time)을 보여주는 네 개의 스크린샷 (a) 내지 (d)를 포함한다. 디스플레이 (a)의 가장자리 부근에 도시된 것처럼, 웹 페이지가 초기에 상대적으로 줌 아웃된 레벨(zoomed out level)에서 띄워진다. 이 페이지를 줌 아웃함으로써, 사용자는 페이지를 더 쉽게 검색하여 상황에 관련된 컨텐츠를 찾을 수 있다. 줌 인(zoom in)하기 위한 요구를 나타내기 위해, 사용자는 터치 스크린 입력 메카니즘을 통해 상기 페이지를 더블 탭(double tap)할 수 있다. 사용자의 주목을 쉽게 끌도록 큰 형식으로 나타나는 과정 중에 스크린샷 (a)에서 도시된 확대 줌 박스가 상기 더블탭에 의해 생성되며, 이후에 확대 줌 박스는 사용자가 줌 인을 선택하면 보여질 수 있는 영역을 나타내는 크기로 축소된다.
샷 (b)에서, 줌 박스 쪽으로 손가락을 이동하는 사용자가 도시되며, 사용자가 상기 박스 위를 누르고, 자신이 더 면밀히 보고 싶은 영역 위에 놓일 때까지 주변에 그 박스를 드래그할 수 있다. 이 줌 박스 내부 컨텐츠와 외부 컨텐츠 사이를 대비하기 위하여, 샷 (b) 내지 (d)에 도시된 것처럼, 상기 박스가 주변에서 이동함에 따라서 그 내부 컨텐츠는 약간 크기가 증가될 수 있다. 상기 줌 박스는 또한 모션이 시작될 때 사용자의 손가락을 따라갈 수 있다(상기 사용자의 손가락이 왼쪽 아래 코너로 이동할 때, 따라가는 박스를 샷 (d)에서 볼 수 있음). 일단 손가락이 이동을 멈추면 이 박스는 탄력적인 방법으로 "따라잡기(Catch up)"를 할 수 있다. 이것은 상기 박스를 드래그하는 것에 대한 더 나은 감각을 사용자에게 제공하고, 또한 상기 줌 박스가 주변에서 이동하고 있는 동안 이 줌박스가 손가락에 의해 완전히 가려지는 것을 방지할 수 있다.
사용자는 더 면밀히 보고 싶어하는 컨텐츠 위에 줌 박스를 이동시킨 후 손가락을 들어올려, 사용자가 손가락을 들어올린 위치 안에 줌 박스를 놓을 수 있다. 이러한 행동에 의해, 디스플레이 관리자는 전체 디스플레이가 줌 박스 내의 영역으로 채워질 때까지 줌 박스 내부 영역을 자동으로 줌 인할 수 있다. 이후에 사용자는 터치스크린에서 자신의 손가락을 드래그하거나 트랙볼을 굴려서 상기 페이지를 패닝하고, 상기 스크린 상을 다시 더블탭함으로써 줌 아웃하는 것을 선택할 수 있다.
도 3은 터치 스크린 입력에 응답하여 사용자 상호작용을 제공하는 시스템(300)의 개략적인 다이어그램이다. 시스템(300)은 디바이스(302)와 같은 모바일 디바이스를 사용하여 구현될 수 있다. 디바이스(302)는 터치 스크린 디스플레이(304) 및 롤러 볼(306)과 같은 다양한 입력 및 출력 메카니즘을 포함한다. 디바이스(302)에 있는 많은 구성요소들은 상술한 바와 같이, 디스플레이(304)의 크기를 초과하는 큰 공간 안에서 이동과 같이, 디스플레이(304)에 다양한 선택 기능을 제공하기 위해 설정될 수 있다.
이러한 구성요소 중 하나는 디스플레이(304) 상에 표시하기 위한 컨텐츠를 묘화하는 역할을 할 수 있는 디스플레이 관리자(312)이다. 디스플레이 관리자(312)는 다수의 자원들로부터 그래픽-관련 컨텐츠를 수신하고, 어떻게 컨텐츠가 사용자에게 제공되어야 하는지를 결정할 수 있다. 예를 들어, 디바이스(304) 상의 다양한 애플리케이션(310)을 위한 다수의 상이한 창이 디스플레이될 필요가 있고, 디스플레이 관리자(312)는 디스플레이할 창, 숨길 창, 및 다양한 그래픽 객체들 사이에서 오버랩이 있을 때 디스플레이하거나 숨길 객체를 결정할 수 있다.
디스플레이 관리자(312)는 디스플레이된 구성요소와 상호작용하기 위한 특정 기능을 디바이스(302)에 제공하는 다양한 구성요소들을 포함할 수 있고, 상기 디스플레이된 구성요소는 다수의 애플리케이션에 걸쳐 공유될 수 있고 예컨대 디바이스의 운영 시스템(302)에 의해 제공될 수 있다. 그러한 기능은 예를 들어, 디스플레이(304) 상의 요소들 사이에서 이동하기 원하는 사용자로부터 입력을 수신하는 기능을 담당하는 인터페이스 내비게이션 모듈(311)에 의해 제공될 수 있다. 이 예에 있어서, 도 1b의 디스플레이(118)에 있는 컨트롤(118b)과 유사할 수 있는 컨트롤(305)이 디스플레이(304) 위에 도시된다. 특히, 디스플레이(304) 상 컨트롤(305)의 위치는 사용자에게 그가 전체 지도의 남동쪽 코너에 있는 지도의 일부에서 보고 있음을 나타낼 수 있다.
사용자가 지도에서 드래그하면, 인터페이스 내비게이션 모듈(311)은 초기에는 컨트롤(305)이 디스플레이되도록 하고, 상기 지도가 상기 드래그 모션과 관련된 양을 패닝하도록 한다. 컨트롤(305)로부터 멀어지는, 상기 지도에서의 후속하는 드래그는 지도의 더 많은 패닝을 야기하고, 만약 상기 지도 상의 컨트롤(305) 위치가 전체 지도에 관하여 디스플레이(304)에 도시된 지도 하위-섹션의 위치에 상응하면, 컨트롤(305)은 소정 환경에서 작은 양을 이동할 수 있다. 인터페이스 내비게이션 모듈(311)은, 상기 및 하기 설명된 것처럼, 사용자 입력에 응답하여 디스플레이(304)의 그 밖의 변화들을 똑같이 제공할 수 있다.
개개의 애플리케이션(310)은 그들이 요구할 수 있는 디스플레이 요소들의 종류를 가리키기 위하여, API에 따라 디스플레이 관리자(312)에 자신을 등록할 수 있다. 예를 들어, 애플리케이션은 리스트에 상응하는 것으로 데이터 요소들의 그룹을 식별할 수 있고, 인터페이스 내비게이션 모듈(311)은 그러한 요소들을 리스트로서 시각적으로 다룰 수 있다. 예컨대, 인터페이스 내비게이션 모듈(311)은 리스트가 매우 길고 상기 리스트 내에서 아래 위로 스크롤하려는 사용자 의도를 사용자 입력이 가리킬 때, 가속화된 스크롤 컨트롤을 보일 수 있다.
입력 관리자(314)는 디바이스(302)의 사용자가 제공하는 커맨드(command)의 번역을 담당한다. 예를 들어, 그러한 커맨드들은 전용 버튼 또는 소프트 버튼(예컨대, 기능이 시간에 따라서 변화하고, 또한 기능이 특정 버튼에 인접한 디스플레이(304)의 영역에 디스플레이될 수 있는 버튼들)을 구비하는, 키보드로부터, 터치스크린 디스플레이(304)로부터, 트랙볼(306)로부터, 또는 그 밖의 그러한 자원들로부터 입력될 수 있다. 또한 상기 입력은 장착된 나침반 또는 가속도계에 의해 제공된 신호들로부터와 같이 추론적으로 발생할 수 있다. 입력 관리자(314)는 예를 들어, 디스플레이의 어느 영역에 커맨드들이 수신되고 있고, 따라서 디스플레이에 도시되고 있는 어느 애플리케이션을 상기 커맨드들이 의도하고 있는지를 결정할 수 있다. 게다가, 터치스크린(304) 상의 입력 모션들을 공통 포맷으로 해석하고, 그 해석된 모션(예컨대, 짧게 누름, 길게 누름, 플릭, 및 직선-라인 드래그)을 적절한 애플리케이션에 전달할 수 있다. 또한 입력 매니저(314)는 그러한 입력들을 이벤트 관리자(도시하지 않음)에게 보고하고, 이벤트 관리자는 그러한 입력들을 적절한 모듈들 또는 애플리케이션들에 보고할 수 있다.
다양한 애플리케이션들(310)은 디바이스(302)에 있는, 일반적으로 공통 마이크로 프로세서에서 동작할 수 있다. 애플리케이션(310)은 매핑 애플리케이션, 이메일 및 다른 메시징 애플리케이션, 웹 브라우저 애플리케이션, 음악과 비디오 플레이어, 및 웹 브라우저 안에서 구동되거나 웹 브라우저의 확장부를 구동하는 다양한 애플리케이션과 같이, 다양한 형식을 취할 수 있다.
독립적으로 또는 브라우저의 일부로서 구동하는 일 애플리케이션은 구글 맵과 구글 스트리트뷰가 있다. 그러한 애플리케이션은 디바이스(302) 상의 나침반 모듈(313)로부터 판독을 수신할 수 있고, 디바이스(302)는 전자 나침반, 나침반 판독을 해석하기 위한 소프트웨어와 관련 회로, 및 가속도계(315)를 포함할 수 있다. 나침반 모듈(313)과 가속도계는, 사용자 모션 또는 방위를 감지하기 위해 도 2b에 관하여 상기 설명된 것처럼, 파노라마로 미리 촬영되어 있는 지리적 구역의 디바이스 뷰를 변화시키는데 사용될 수 있고, 디바이스(302)는 상기 구역의 디지털 이미지를 서버로부터 입수할 수 있다.
무선 인터페이스(308)는 무선 네트워크와의 통신을 관리하고, 이 무선 네트워크는 또한 음성 통신을 전달하는 데이터 네트워크일 수 있다. 상기 무선 인터페이스는 이하에서 논의하는 예시에 따르는 것과 같이 친숙한 방식으로 동작할 수 있고, 텍스트 메시지, 이메일, 및 전화 음성 메일 메시징과 같은 메시징 서비스에 의한 디바이스(302)의 통신을 제공될 수 있다. 게다가, 무선 인터페이스(308)는 무선 네트워크를 통해 컨텐츠와 컴퓨터 코드의 다운로드 및 업로드를 지원할 수 있다. 무선 네트워크를 통해 얻어질 수 있는 데이터의 일 예는 구글 스트리트뷰와 같은 애플리케이션에 의해 제공된 이미지이고, 여기서 디바이스(302) 상에서 구동하는 애플리케이션(예컨대, 디바이스(302)에 디스플레이된 웹 페이지에서 구동하는 자바스크립트 애플리케이션)은 디바이스 상의 나침반 데이터에 접근할 수 있고, 디바이스(302) 사용자의 이동에 응답하여 임의의 지리적 지점 주위의 새로운 이미지 데이터를 자동으로 요청할 수 있다.
예컨대, 고정된 디스크 드라이브 및/또는 고체 상태 메모리 디바이스를 사용하여 다양한 형태의 영구 저장소를 제공할 수 있다. 두 가지 예시가 도시되어 있다. 첫째, 지도/리스트/기타 저장소(316)는 애플리케이션(310)이 사용할 모든 종류의 데이터를 포함하고, 또한, 데이터 요소들의 리스트, 지도 타일과 같은 그래픽 구성요소들, 및 그 밖의 주지된 데이터 구조들을 포함하여, 사용자는 디바이스(302)에서 애플리케이션과 상호작용할 수 있다.
다른 저장소는 지도/리스트/기타 저장소(306)와 동일한 미디어에 저장된 사용자를 위한 프로파일(profile) 정보가 될 수 있는 사용자 디폴트(318)를 포함한다. 사용자 디폴트(318)는 디바이스(302)의 사용자에 관한 다양한 파라미터들을 포함한다. 여기 관련된 예에서, 사용자 프로파일은 패닝 컨트롤이 디스플레이(304)에 표시되도록 하기 위해 사용자가 선호하는 방식(예컨대, 컨트롤이 어떻게 보여야 하는지, 리스트가 컨트롤과 함께 스크롤되어야 할지 컨트롤의 반대 방향으로 스크롤되어야 하는지, 컨트롤을 나타나게 하는 사용자의 행동 등)을 정의하는 데이터를 포함할 수 있다.
그려진 구성요소들, 및 간략화를 위해 생략된 다른 구성요소들을 이용하여, 디바이스(302)는 사용자 입력에 응답하여 특정 행동을 제공할 수 있다. 구체적으로, 디바이스(302)는 큰 영역 내에서 패닝 입력에, 그 영역에서 가속화된 패닝을 허용하는 컨트롤을 디스플레이하는 것을 포함하는 특정한 방식(예컨대, 패닝된 객체에 걸친 드래그보다 실질적으로 빠르고, 컨트롤 상에서 싱글 스와이프를 사용하여 영역의 한 측면에서 다른 측면으로 내비게이션을 통상 허용하는 패닝)으로 응답할 수 있다.
도 4a 내지 4b는 그래픽 사용자 인터페이스로부터 사용자 선택을 수신하기 위한 예시적인 프로세스의 플로우차트이다. 예를 들어, 도 4a는 모바일 디바이스가 큰 그래픽 영역의 상대적으로 작은 부분만 보여주는 스크린에 대한 입력들에 응답하는 프로세스를 도시한다.
프로세스는 이 예에서, 큰 영역 데이터를 디스플레이하기 위한 요청을 수신하는 박스(400)에서 시작한다. 큰 영역 데이터는 다양한 형식의 데이터를 포함하고, 이 데이터의 디스플레이는 디바이스 상의 단일 스크린의 가장자리를 넘어 확장한다. 예를 들어, 그러한 데이터는 정보의 긴 리스트, 및 큰 이미지, 또는 지도, 또는 정보의 유사한 표시를 포함할 수 있다. 큰 영역 정보를 디스플레이하기 위한 요청은 디바이스에 제공된 검색 요청과 같은 많은 형태를 취할 수 있고, 검색 결과들은, 컴퓨터상 또는 인터넷상에 있는 파일들의 리스트, 또는 검색 결과에 응답하여 생성된 지도와 같은 형태로, 큰 영역 정보를 포함한다.
박스(402)에서, 프로세스는 상기 큰 영역 데이터의 서브셋(subset)을 선택하고 그 서브셋을 디스플레이한다. 예를 들어, 상기 큰 영역 데이터가 지도이면, 디스플레이된 서브셋은 사용자가 입력한 검색 쿼리의 검색 결과인 주소를 중심으로하는 주변 지도의 일부가 될 수 있다. 프로세스는 박스(404)에서 사용자로부터 패닝 입력을 수신한다. 그러한 입력은 일반적으로 터치 스크린 디스플레이의 표면을 가로질러 손가락 또는 스타일러스(stylus)를 이동하는 사용자로부터 수신될 수 있다.
상기 프로세스는 데이터의 전체 영역 사이즈에 비교한 디스플레이의 상대 사이즈를 결정한 후에 상기 디스플레이에 패닝 컨트롤을 보여줌으로써, 박스(406)에서의 사용자 입력에 반응한다. 컨트롤을 디스플레이하기 전에 디스플레이의 상대적인 사이즈를 우선 결정함으로써, 만약 데이터의 영역이 디스플레이의 사이즈 또는 이 디스플레이보다 약간 더 큰 사이즈인 경우 컨트롤이 보여지지 않는 것을 보장할 수 있다. 그러한 경우에 있어, 패닝은 동작하지 않거나, 가속화된 패닝을 제공하기 위해 사용될 수 있는 특수한 컨트롤을 필요로 하지 않고 상기 데이터 상에서 직접적이고 쉽게 완료될 수 있다.
컨트롤의 디스플레이는 사용자 입력의 속도와 방식에 의존적일 수 있다. 예를 들어, 사용자가 디스플레이를 가로질러 천천히 드래그하면, 프로세스는 사용자가 데이터의 먼 부분까지 내비게이트하는데 관심이 없다고 가정하고, 컨트롤을 디스플레이하는 것을 거절할 수 있다. 유사하게, 사용자가 그들의 행동 끝에도 디스플레이에 손가락을 남겨놓으면, 그러한 입력은 사용자가 멀리 패닝하는 것에 관심이 없고 따라서 가속화된 패닝 컨트롤이 필요 없다는 표시로서 받아들여질 수 있다. 대조적으로, 사용자가 "던지기(fling)" 입력을 만들기 위해 빠르게 이동하고 마지막에 손가락을 들면, 그러한 입력은 사용자가 긴 경로를 패닝하려 하므로 이 경우에 컨트롤이 생성되어야 한다는 신호로 받아들여질 수 있다.
박스(408)에서, 프로세스는 "던지기(fling)" 패닝 입력과 같은 사용자 입력, 또는 후속하는 패닝 입력들에, 입력 컨트롤의 부각을 증가시킴으로써 반응한다. 그러한 행동은 컨트롤의 크기나 밝기의 증가, 또는 예컨대 상기 컨트롤을 진동(pulse)시키는 것을 포함할 수 있다. 컨트롤의 부각은 예컨대 두 번째 패닝 입력을 수신했을 때 한번에 증가되거나, 다수의 증가 양상들을 거쳐 최대점에 도달할 수 있다. 컨트롤의 부각을 증가시키는 의도는 가속화된 패닝 컨트롤의 사용 옵션에 대하여 사용자의 주의를 끌기 위한 것이고, 사용자가 주제 자체를 패닝하려고 많이 노력할 수록, 사용자가 패닝할 가능성은 높아지고, 또한, 사용자는 컨트롤로부터 도움을 더욱 필요로 한다.
박스(410)에 있어, 사용자는 컨트롤을 주목하고, 사용자 디스플레이의 가속화된 패닝을 제공하도록 그 컨트롤을 선택한다. 프로세스는 컨트롤에 대한 사용자 조작에 따라서 데이터를 빠르게 패닝하여 반응한다. 예를 들어, 사용자가 아래쪽으로 컨트롤을 슬라이드하면, 디스플레이는 사용자가 보기에 과대한 속도로 지도나 아이템 리스트를 가로질러 아래쪽으로 이동할 수 있다. 휴지 시간― 사용자가 컨트롤을 선택하지 않거나 및/또는 사용자가 보통은 컨트롤을 띄우는 디스플레이 상의 패닝 모션을 하지 않음― 후에 박스(412)에서 도시된 것처럼, 컨트롤은 사라질 수 있다. 예를 들어, 컨트롤은 사용자가 그 컨트롤 아래에 위치한 임의 데이터를 볼 수 있도록 서서히 희미해질 수 있다.
나중에 사용자가 플릭 행동을 반복하면, 컨트롤은 다시 띄워질 수 있고 상기 단계들이 반복된다. 하지만 컨트롤은 일반적으로 데이터 영역에 대한 사용자의 현재 뷰를 반영하는 곳에 위치된다. 예를 들어, 사용자가 자신의 디바이스에 저장된 비디오 리스트의 중반부를 보고 있다면, 컨트롤은 디스플레이의 상부와 하부의 중간쯤에서 디스플레이의 측면에 생성될 수 있다.
도 4b는 연락처의 이름, 음악 아티스트 또는 별개의 데이터 요소들의 다른 유사한 그룹처럼, 그래픽으로 표현된 아이템 리스트에 대하여 가속화된 패닝 컨트롤을 생성하기 위한 프로세스를 도시한다. 일반적으로, 이 프로세스는 도 4a에 도시된 프로세스와 유사하지만 사용자 입력에 대해 더 특별한 응답을 포함한다.
프로세스는 박스(420)에서 시작하며, 사용자로부터 긴 리스트에 대한 플릭 입력(예컨대, 빠르게 이동한 후 손가락 또는 스타일러스를 들어올림)을 수신한다. 프로세스는 리스트의 길이를 확인하고(박스 422, 424), 리스트가 길지 않으면(예컨대, 디바이스 디스플레이보다 길지 않거나, 또는 디바이스 디스플레이보다 수배 긴 것처럼 디바이스 디스플레이보다 실질적으로 길지는 않음), 프로세스는 사용자로부터 입력을 계속 수신한다.
상기 리스트가 길면, 얇은 패닝 컨트롤이 디바이스의 디스플레이 상에 디스플레이될 수 있다(박스 428). 이 패닝 컨트롤은 예컨대 디스플레이의 한 가장자리(리스트에서 왼쪽-맞춤된 텍스트를 가리는 것을 피하기 위해 일반적으로 오른쪽 가장자리)를 따라 있는 스크롤링 핸들의 형태를 취한다. 게다가, 리스트는 플릭에 응답하여 스크롤 될 수 있고, 이 스크롤의 속도와 거리는 물리적 객체의 이동을 나타낼 수 있어서, 마치 리스트가 마찰적으로 아래로 드래그되고 있는 것처럼, 리스트는 플릭 후에 스크롤을 지속한 후 점차 느려진다. 또한 컨트롤은 디스플레이의 측면을 따라 이동하여, 디스플레이의 상부와 하부 사이에 있는 자신의 위치로 리스트의 상부와 하부 사이에 있는 사용자의 위치(즉, 디스플레이의 위치)를 반영한다.
박스(430)에서, 프로세스는 사용자로부터 두번째 플릭 입력을 수신하고, 리스트는, 상기 첫번째 플릭 입력 후에 했던 것처럼, 다시 스크롤할 수 있다. 게다가, 사용자가 두 번 플릭한 사실은 사용자가 리스트를 아주 멀리 아래 또는 위로 가기 원한다는 것을 가리킨다. 결과적으로, 박스(432)에서, 프로세스는 컨트롤이 사용자에게 더 시각적으로 두드러지도록 컨트롤의 디스플레이를 두껍게 한다. 시스템은 박스(434)에서 사용자가 컨트롤을 선택하는지 여부를 또한 확인하고(비록, 컨트롤이 초기에 디스플레이된 후 그러한 입력에 대한 확인은 일반적으로 언제든지 가능하지만), 컨트롤은 사용자가 자신을 선택하지 않거나, 결정된 기간 동안 주제(subject matter)에 대하여 플릭을 수행하면 사라진다(박스 436). 사용자가 컨트롤을 선택하면, 프로세스는 사용자가 더욱 쉽게 조작할 수 있도록 컨트롤을 더 두껍게 하고, 컨트롤에 대한 사용자의 조작에 따라서, 앞에서 설명한 다양한 방식으로 디스플레이를 패닝한다.
도 4c 내지 4d는 모바일 디바이스의 모션에 따라 디스플레이를 업데이트하기 위한 예시적인 프로세스의 플로우차트이다. 도 4c는 예를 들어 모바일 디바이스가 자신의 감지된 모션에 응답할 수 있게 해주는 프로세스를 도시한다. 도 4d는 예를 들어 모바일 디바이스의 외부에 있는 추가적인 시스템이 수행할 수 있는 예시적인 행동들을 보여주는 프로세스를 도시하며, 이 예시적인 행동들은 모션을 감지하고 그 감지된 모션을 반영하기 위해 모바일 디바이스의 디스플레이를 업데이트하는데 사용될 수 있다. 일반적으로, 도 4c에 예시된 프로세스는 모바일 디바이스 또는 지도 애플리케이션을 참조하여 설명되고, 도 4d에 예시된 프로세스는 그 프로세스의 특정 단계를 어느 시스템이 담당하는지에 따라서 모바일 디바이스, 지도 서버 또는 스트리트뷰 서버를 참조하여 설명된다.
도 4c를 참조하면, 프로세스는 지도 애플리케이션이 시작되는 박스(440)에서 시작한다. 일부 구현에 있어, 지도 애플리케이션은 모바일 디바이스가 부팅되면 자동으로 시작된다. 예를 들어, 지도 애플리케이션은 모바일 디바이스의 초기화 경로로 부트스트랩될 수 있다. 일부 구현에 있어, 지도 애플리케이션은 사용자에 의해 시작될 수 있다. 예를 들어, 사용자는 지도 애플리케이션을 시작하기 위해 모바일 디바이스의 디스플레이 상에 있는 애플리케이션 아이콘을 선택할 수 있다. 일부 구현에 있어, 다른 프로세스 또는 애플리케이션은 지도 애플리케이션을 시작할 수 있다. 예를 들어, 소셜 네트워킹 애플리케이션(social networking application)은, 그 소셜 네트워킹 애플리케이션이 사용자에게 특정 친구들의 위치들을 제시할 때 지도 애플리케이션을 시작한다.
박스(442)에서, 지도 애플리케이션이 시작되면 지도 애플리케이션은 주소를 수신한다. 이것은 여러 가지 방법으로 이루어질 수 있다. 예를 들어, 사용자는 수동으로 주소를 입력할 수 있다. 다른 예로서, 모바일 디바이스에 장착된 GPS 디바이스가 자동으로 주소를 제공할 수 있다.
박스(444)에서, 지도 애플리케이션은 수신된 주소 주변의 지도 타일을 불러와서 디스플레이할 수 있다. 예를 들어, 지도 애플리케이션은 빌딩, 공원, 거리, 또는 그 밖의 위치들을 보여주는 하나 이상의 타일을 모바일 디바이스 상에 디스플레이할 수 있다.
박스(446)에서, 모바일 애플리케이션은 스트리트뷰 이미지들을 불러와 디스플레이할 수 있다. 일반적으로 스트리트뷰 이미지는 거리 레벨에서 사람, 차량 등의 입장으로부터 얻은 이미지이다. 그러므로 일부 구현에 있어서, 지도 애플리케이션의 사용자는, 그 지도 애플리케이션이 스트리트뷰 이미지를 불러와 디스플레이할 거리를 특정할 필요가 있다. 관련 지점에 있고, 모바일 디바이스가 향하는 현재 방향에 일치하는 방사 각으로 향하고 있는 카메라가 촬영한 디지털 이미지를 나타내는 제1 이미지가 디스플레이될 수 있다.
박스(448)에서, 지도 애플리케이션은 모바일 디바이스의 모션을 감지할 수 있다. 일반적으로, 모션의 감지는 모바일 디바이스에 포함되고 또한 모션을 검출할 수 있는 하나 이상의 시스템 또는 모듈과 통신함으로써 달성된다. 예를 들어, 지도 애플리케이션은 모바일 디바이스의 모션을 감지하기 위해 가속도계, 나침반, 또는 다른 모듈들과 통신할 수 있다.
박스(450)에서, 지도 애플리케이션은 사용자의 방위(즉, 모바일 디바이스의 방위)와 매칭되도록 스트리트뷰 이미지를 패닝한다. 예를 들어, 도 2b를 참조하면, 스트리트뷰 이미지는 사용자의 방위(224a 내지 224c)에 따라 모바일 디바이스(200)의 디스플레이(222a 내지 222c) 상에 제시된다.
그러므로, 이러한 프로세스에 의해, 모바일 디바이스의 사용자는 사용자가 방문할 계획인 쇼핑 지역 또는 사용자가 여행하기로 작정한 친구 집 부근과 같은 영역의 뷰를 신속하게 얻을 수 있다. 사용자는 디바이스 상의 이미지가 사용자의 모션과 매칭되도록 패닝하는 동안 자신 앞에 모바일 디바이스를 유지하고, 원으로 회전함으로써 상기 위치에 더욱 몰입적인 경험을 얻을 수 있다. 결과적으로, 사용자는 영역이 어떻게 보일지 빠르게 알 수 있고, 그곳에 갈지 말지를 결정할 수 있고, 또는 사용자가 그곳에 도착할 때 그 영역을 더 쉽게 인지할 수 있다.
도 4d를 참조하면, 프로세스는 모바일 디바이스가 지도 검색 박스를 시작하는 박스(452)에서 시작한다. 일반적으로, 검색 박스는 입력 컨트롤의 유형이고, 프로세스 사용자는 검색 박스를 통해, 쿼리 형태의 일부 정보를 제공할 수 있다. 예를 들어, 검색 박스는 편집가능한 텍스트 박스 또는 그 밖의 사용자 인터페이스 구성요소가 될 수 있다.
박스(454)에서, 모바일 디바이스는 검색 박스로부터 주소 입력을 수신한다. 일부 구현에 있어, 사용자는 주소(예컨대, "HHH Metrodome" 또는 "123 Main Street, anytown, CA")를 검색 박스에 입력할 수 있다. 다른 구현에 있어, 자동화된 프로세스는 주소를 자동적으로 제공할 수 있다. 예를 들어, 지도 애플리케이션은 임의의 미리정의된 주소들(예컨대, 사용자의 직장, 사용자의 집, 또는 그 밖의 주소)로 구성되고, 요청이 있을 때 지도 애플리케이션은 그 주소를 모바일 디바이스에 자동으로 제공할 수 있다. 또 다른 예로서, GPS 모듈은 GPS 연산에 따라 모바일 디바이스의 주소를 결정할 수 있다.
박스(456)에서, 모바일 디바이스는 포맷된 지도 쿼리를 제출한다. 일반적으로, 이 지도 쿼리는 많은 애플리케이션 프로그램 인터페이스(API)를 위해 포맷될 수 있다. 포맷의 예로는, 수많은 데이터베이스 쿼리 포맷, 공통 게이트웨이 인터페이스(CGI) 요청 포맷, 하이퍼텍스트 마크업 언어(HTML) 포맷, 또는 쿼리를 제출하기 위한 그 밖의 기존 포맷을 포함하지만, 이에 제한되지 않는다.
박스(458)에서, 지도 서버는 쿼리를 수신하고 하나 이상의 결과를 생성한다. 예를 들어, 일부 경우에 있어, 상기 주소는 일의적으로 결정되지 않을 수 있다. 즉, 모바일 디바이스로부터 수신한 것과 실질적으로 유사한 주소를 갖는 하나 이상의 위치가 있을 수 있다. 그래서 일부 구현에 있어, 지도 서버는 결과마다 하나씩, 다수의 결과들을 생성하고, 결과들을 명확히 하도록 돕기 위해 모바일 디바이스(및 사용자)로 피드백을 제공할 수 있다. 다른 구현에 있어, 지도 서버는 결과를 생성하기 전에 먼저 주소를 명확히 할 수 있다.
박스(460)에서, 일단 지도 서버가 특정 결과를 결정하면, 지도 서버는 관련 지도 타일 및 그 밖의 데이터를 모바일 디바이스에 전송한다. 예를 들어, 지도 서버는 HHH Metrodome과 연관된 지도 타일과 데이터(예컨대, 이미지, 광고 또는 그 밖의 데이터)를 전송할 수 있다.
박스(462)에서, 모바일 디바이스는 제출된 주소 주변의 지도를 디스플레이한다. 예를 들어, 상기 모바일 디바이스는 HHH Metrodome 주변의 빌딩, 거리, 공원, 또는 그 밖의 지리적 다른 측면들을 디스플레이할 수 있다.
박스(464)에서 지도가 일단 디스플레이되면, 모바일 디바이스는 스트리트뷰 위치의 사용자 입력을 수신하고, 위치 데이터를 전송할 수 있다. 예를 들어, 사용자는 모바일 디바이스에 디스플레이된 특정 거리를 스트리트뷰 위치로서 선택할 수 있다. 또 다른 예로서, GPS 모듈은 모바일 디바이스가 현재 있는 거리를 스트리트뷰 위치로서 자동으로 제공할 수 있다. 위치 데이터는 쿼리로서 전송될 수 있다. 예를 들어, 모바일 디바이스는 스트리트뷰 위치와 연관된 하나 이상의 이미지들을 위한 쿼리를 포맷할 수 있다.
박스(466)에서, 스트리트뷰 서버는 쿼리를 수신하고 결과를 생성한다. 일반적으로, 스트리트뷰 서버는 하나 이상의 이미지 저장소에 접근하여, 수신된 쿼리와 연관된 하나 이상의 이미지들을 포함하는 데이터를 생성할 수 있다.
박스(468)에서, 스트리트뷰 서버는 관련 실제 세상 카메라 이미지(아마도 주석과 함께)를 전송한다. 예를 들어, 도 2b를 참조하여, 스트리트뷰 서버는 HHH Metrodome의 실제 세상 카메라 이미지들을, 특정 거리(예컨대, "Kirby Puckett PI") 및 그 거리가 뻗은 방향(예컨대, "NE"와 "SW" 화살표에 의해 표현됨)을 위한 주석과 함께 전송한다. 일부 구현에 있어, 이미지는 다수의 연결된 이미지 파일들로 구성된다.
박스(470)에서, 모바일 디바이스는 모션을 감지하고 그 모션을 반영하도록 디스플레이를 갱신한다. 예를 들어, 모바일 디바이스를 흔드는 사용자에 대응하여, 모바일 디바이스는 검출된 진동의 양에 따라 이미지 공간에서 앞으로 이동할 수 있다. 또 다른 예로서, 모바일 디바이스가 감지한 나침반 판독에 따라, 이미지는 지리적 위치 주위에서 옆으로 패닝될 수 있다. 상기 반영된 모션에 따라 다른 갱신들도 가능하며 일부는 상기 설명된 것과 같다. 일부 구현에 있어, 예를 들어, 모바일 디바이스가 감지된 모션에 부합한 어떠한 이미지도 보유하고 있지 않으면, 모바일 디바이스는 추가적인 이미지를 요청할 수 있다. 예를 들어, 모바일 디바이스가 소정 지점을 넘어 옆으로 패닝되면, 모바일 디바이스는 추가적인 이미지들을 수신하기 위해 스트리트뷰 서버와 통신할 필요가 있다.
박스(472)에서, 스트리트뷰 서버는 모바일 디바이스가 요청한 추가적인 이미지 데이터를 생성하여 전송한다. 일부 구현에 있어, 스트리트뷰 서버는 모바일 디바이스가 감지한 추가적인 모션이 있을 것으로 기대하고, 이미지 저장소로부터 소정의 이미지를 미리 불러오기 위해 이전의 쿼리들을 사용할 수 있다. 즉, 스트리트뷰 서버는 장래에 언젠가 모바일 디바이스가 사용할 수 있는 추가적인 이미지들을 모바일 디바이스의 현재 모션에 따라 결정하고, 그 추가적인 이미지 데이터를 현재 요청과 함께 전송할 수 있다. 일반적으로, 박스(470)와 박스(472) 및 그들 각자의 통신은 몇 번이고 일어날 수 있다.
도 5를 참조하면, 본 명세서에서 상기 사용자 인터페이스 특성들을 구현하는 예시적 디바이스(500)의 외형을 예시한다. 요약하면, 무엇보다도, 디바이스(500)는 디바이스(500) 상에 이벤트에 관련하는 통지들을 디스플레이하고, 사용자가 통지에 관련된 이벤트에 대한 상세 내용을 이벤트의 확대 보기로 편리하게 "풀 다운(pull down)"하도록 허용하도록 구성된 프로세서를 포함한다.
보다 상세하게, 디바이스(500)의 하드웨어 환경은 사용자에게 텍스트, 이미지, 및 비디오를 디스플레이하는 디스플레이(501); 텍스트 데이터와 사용자 명령을 디바이스(500)에 입력하는 키보드(502); 디스플레이(501) 상에 디스플레이된 객체를 포인팅하고, 선택하고, 및 조정하는 포인팅 디바이스(504); 안테나(505); 네트워크 연결(506); 카메라(507); 마이크로폰(509); 및 스피커(510)을 포함한다. 디바이스(500)가 외장 안테나(5050)를 나타내고 있지만, 디바이스(500)는 사용자가 볼 수 없는 내장 안테나를 포함할 수 있다.
디스플레이(501)은 디바이스(500)에 의해 사용되는 소프트웨어 애플리케이션 및 디바이스(500)를 동작시키기 위해 사용되는 운영 체제 프로그램을 위한 사용자 인터페이스를 구성하는 비디오, 그래픽, 이미지, 및 텍스트를 디스플레이할 수 있다. 디스플레이(501) 상에 디스플레이될 수 있는 가능 요소에는, 사용자에게 새로운 메시지의 존재를 경보하는 새메일 표시자(511); 전화 호가 수신, 발신, 또는 발생 중임을 표시하는 활성 호 표시자(512); 데이터를 전송 및 수신하기 위해서 디바이스(500)가 현재 사용하는 데이터 표준을 표시하는 데이터 표준 표시자(514); 예를 들어, 신호 세기 바를 사용하여 안테나(505)를 경유하여 수신되는 신호의 세기의 크기를 표시하는 신호 세기 표시자(515); 잔여 배터리 수명의 크기를 표시하는 배터리 수명 표시자(516); 또는 현재 시간을 출력하는 시계(517)가 있다.
또한, 디스플레이(501)는 사용자에게 이용가능한 다양한 애플리케이션을 나타내는 애플리케이션 아이콘을 도시하는데, 그 애플리케이션 아이콘은 예를 들어 웹 브라우저 애플리케이션 아이콘(519), 전화 애플리케이션 아이콘(520), 탐색 애플리케이션 아이콘(521), 접촉 애플리케이션 아이콘(522), 매핑 애플리케이션 아이콘(524), 이메일 애플리케이션 아이콘(525), 또는 다른 애플리케이션 아이콘이다. 하나의 예시적 구현예에서, 디스플레이(501)은 16 비트 또는 그보다 양호한 색을 수용할 수 있는 쿼터 비디오 그래픽스 어레이(QVGA) 박막 트랜지스터(TFT) 액정 표시 장치(LCD)이다.
사용자는 경보 통지에 대한 응답과 메시지 등(및 또한 터치 스크린)에 대한 응답을 제공하는 애플리케이션과 운영 체제를 동작시키고 제어하기 위한 명령 및 데이터를 입력하기 위해서 키보드(또는 "키패드")(502)를 사용한다. 키보드(502)는 단독으로 선택되었을 때 알파벳 문자 "Q" 와 "W"에 연관되나, 키(529)와 조합되어 눌렸을 경우에는 "*"와 "1"에 연관될 수 있는 키(526, 527)와 같은, 알파벳 문자와 연관되는 키들 또는 표준 키보드 버튼을 포함한다. 단일 키(single key)는 운영 체제의 상태 또는 운영 체제에 의해 호출되는 애플리케이션의 상태에 근거하여 특정 문자, 또는 레이블이 부여되지 않은 기능을 포함하는 기능과 연관될 수 있다. 예를 들어, 애플리케이션이 숫자의 입력을 요구하면, 키(627)의 단독 선택은 "1"로 입력된다.
영숫자 키패드와 연관되는 통상적인 키에 더하여, 키보드(502)는 그 밖의 특별 기능 키들을 포함할 수 있다. 예컨대, 특별 기능 키에는, 수신된 전화에 응답하거나 새로운 호를 발생시키는 호-확립 키(530); 활성 호를 종료시키는 종료키(531); 메뉴가 디스플레이(501) 내에 나타나도록 하는 드롭다운 메뉴 키(532); 이전에 액세스했던 네트워크 주소에 다시 액세스시키는 후방 탐색 키(534); 활성 웹 페이지를 선호 사이트의 북마트 폴더에 위치시키거나, 또는 북마크 폴더가 나타나게 하는 선호 키(535); 디바이스(500) 상에 호출된 애플리케이션이 미리 결정된 네트워크 주소로 이동하도록 하는 홈 페이지 키(536); 또는 다중 방향 내비게이션, 애플리케이션 선택, 및 전원과 음량 제어를 제공하는 다른 키와 같은 다른 특정 기능 버튼을 포함할 수 있다.
사용자는 디스플레이된 그래픽과 텍스트 객체를, 디바이스(500) 및 디바이스(500) 상에 호출된 애플리케이션과 상호 작용하고 또한 제어하는 것의 일부로서, 선택 및 조정하기 위해 포인팅 디바이스(504)를 사용한다. 포인딩 디바이스(504)는 포인팅 디바이스에 대해 임의의 적절한 타입이며, 조이스틱, 트랙볼, 터치패드, 카메라, 음성 입력 디바이스, 디스플레이(501)와 조합되어 구현되는 터치 스크린 디바이스, 또는 임의의 다른 입력 디바이스일 수 있다.
외부 안테나 또는 내부 안테나일 수 있는 안테나(505)는, 점대점(point-to-point) 무선 통신, 무선 LAN(Local Area Network) 통신, 또는 위치 확인(location determination)을 구현하는 무선주파수(RF, Radio Frequency)의 전송 및 수신을 위해 사용되는 지향성(directional) 또는 무지향성(omni-directional) 안테나이다. 안테나(505)는 SMR(Specialized Mobile Radio), 셀룰라, 또는 PCS(Personal Communication Service) 주파수 대역을 사용하여 점대점 무선 통신을 수행할 수 있고, 임의 개수의 데이터 표준을 사용하여 데이터 전송을 구현할 수 있다. 예를 들어, 안테나(505)를 통해 데이터가 디바이스(500)와 기지국간에 전송되며, 이러한 전송에는, 예를 들어, WiBro(Wireless Broadband), WiMAX(Worldwide Interoperability for Microwave ACCess), 5GPP LTE(Long Term Evolution), UMB(Ultra Mobile Broadband), HIPERMAN(High Performance Radio Metropolitan Network), iBurst 또는 HC-SDMA(High Capacity Spatial Division Multiple Access), HSOPA(High Speed OFDM Packet Access), HSPA(High-Speed Packet Access), HSPA 에볼루션(Evolution), HSPA+, HSUPA(High Speed Upload Packet Access), HSDPA(High Speed Downlink Packet Access), GAN(Generic Access Network), TD-SCDMA(Time Division-Synchronous Code Division Multiple Access), EVDO(Evolution-Data Optimized(또는 Evolution-Data Only)), TD-CDMA(Time Division-Code Division Multiple Access), FOMA(Freedom of Mobile Media Access), UMTS(Universal Mobile Telecommunications System), W-CDMA(Wideband Code Division Multiple Access), EDGE(Enhanced Data rates for GSM Evolution), EGPRS(Enhanced GPRS), CDMA2000(Code Division Multiple Access-2000), WiDEN(Wideband Integrated Dispatch Enhanced Network), HSCSD(High-Speed Circuit-Switched Data), GPRS(General Packet Radio Service), PHS(Personal Handy-Phone System), CSD(Circuit Switched Data), PDC(Personal Digital Cellular), CDMAone, D-AMPS(Digital Advanced Mobile Phone System), IDEN(Integrated Digital Enhanced Network), GSM(Global System for Mobile communication), DataTAC, 모비텍스(Mobitex), CDPD(Cellular Digital Packet Data), Hicap, AMPS(Advanced Mobile Phone system), NMP(Nordic Mobile Phone), ARP(Autoradiopuhelin), 오토텔(Autotel) 또는 PLAM(Public Automated Land Mobile), MTD(Mobiltelefonisystem D), OLT(Offentlig Landmobil Telefoni), AMTS(Advanced Mobile Telephone System), IMTS(Improved Mobile Telephone Service), MTS(Mobile Telephone System), PTT(Push-To-Talk), 또는 그 밖의 기술을 사용할 수 있다. W-CDMA, HSUPA, GSM, GPRS, 및 EDGE 네트워크를 통한 통신은 예를 들어, QUALCOMM RTR6285TM 트랜스시버(transceiver)와 PM7540TM 전원 관리 회로가 탑재된 QUALCOMM MSM7200A 칩셋을 사용하여 수행될 수 있다.
유선 또는 무선 컴퓨터 네트워트 접속(506)은 모뎀 연결, 이더넷(Ethernet)을 포함한 근거리 네트워크(LAN) 연결, 또는 디지털 가입자 회선(DSL, Digital Subscriber Line)과 같은 광역 네트워크(WAN), 케이블 고속 인터넷 접속, 다이얼업 접속, T-1 라인, T-3 라인, 광 섬유 접속, 또는 위성 접속일 수 있다. 네트워크 접속(506)은 LAN 네트워크, 회사 또는 정부 WAN 네트워크, 인터넷, 전화 네트워크, 또는 그 밖의 네트워크에 접속할 수 있다. 네트워크 접속(506)은 유선 또는 무선 접속자(connector)를 사용한다. 예시적 무선 접속자는 예를 들어, IrDA(INFRARED DATA ASSOCIATION) 무선 접속자, Wi-Fi 무선 접속자, 광 무선 접속자, IEEE(INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS) 표준 802.11 무선 접속자, 블루투스 무선 접속자(예컨대, 블루투스 버전 1.2 또는 5.0 접속자), NFC(Near Field Communications) 접속자, OFDM(Orthogonal Frequency Division Multiplexing) UWB(ultra wide band) 무선 접속자, TM-UWB(Time-Modulated Ultra Wide Band) 무선 접속자, 또는 그 밖의 무선 접속자를 포함할 수 있다. 예시적 유선 접속자는, 예를 들어, IEEE-1394 FIREWIRE 접속자, USB(Universal Serial Bus) 접속자(미니-B USB 인터페이스 접속자를 포함함), 직렬 포트(serial port) 접속자, 병렬 포트(parallel port) 접속자 또는 그 밖의 유선 접속자를 포함한다. 다른 구현예에서, 네트워크 접속(506)과 안테나(505)의 기능은 단일 구성요소로 통합된다.
카메라(507)는 디바이스(500)가 디지털 이미지를 획득하도록 하고, 스캐너, 디지털 스틸 카메라, 디지털 비디오 카메라, 그 밖의 디지털 입력 장치일 수 있다. 하나의 예시적 구현예에서, 카메라(507)는 CMOS(Complementary Metal-Oxide Semiconductor)를 이용하는 5 메가 픽셀(MP, Mega-pixel) 카메라이다.
마이크로폰(509)은 디바이스(500)가 음향(sound)을 획득하도록 하고, 무지향성 마이크로폰, 단방향성 마이크로폰, 양방향성 마이크로폰, 집음 마이크로폰(shotgun microphone), 또는 음향을 전기적 신호로 변환하는 다른 형태의 장치일 수 있다. 마이크로폰(509)은 예를 들어, 디바이스(500)를 통해 전화 통화를 하는 동안 사용자가 다른 사용자에게 얘기하는 경우 사용자에 의해 생성되는 음향을 획득하기 위해 사용될 수 있다. 반대로, 스피커(510)는 디바이스가 전기적 신호를 전화 애플리케이션 프로그램에 의해 생성된 다른 사용자로부터의 음성, 또는 링톤(ring tone) 애플리케이션 프로그램에 의해 생성된 링톤과 같은 음향으로 변환하도록 한다. 더욱이, 디바이스(500)는 휴대형 디바이스로 도 5에 예시되었지만, 디바이스(500)의 다른 구현에서는, 랩탑(laptop), 워크스테이션(workstation), 중형 컴퓨터(midrange computer), 메인프레임, 임베디드 시스템, 전화, 데스크탑 PC, 태블릿 컴퓨터(tablet computer), PDA, 또는 그 밖의 형태의 컴퓨팅 디바이스일 수 있다.
도 6은 디바이스(500)의 내부 구조(600)를 도시하는 블록도이다. 이 구조는 운영 체제 또는 애플리케이션을 구성하는 컴퓨터 명령어가 실행되는 중앙 제어 장치(CPU)(601); 디스플레이(501) 상에 비디오, 그래픽, 이미지, 및 텍스트를 표현하기 위한 통신 인터페이스 및 프로세싱 기능을 제공하고, 내장 컨트롤(예컨대, 버튼, 텍스트, 및 리스트들)의 세트를 제공하고, 다양한 화면 크기를 지원하는 디스플레이 인터페이스(602); 키보드(602)로의 통신 인터페이스를 제공하는 키보드 인터페이스(604); 포인팅 디바이스(504)로의 통신 인터페이스를 제공하는 포인팅 디바이스 인터페이스(605); 안테나(505)로의 통신 인터페이스를 제공하는 안테나 인터페이스(606); 컴퓨터 네트워크 접속(506)을 통해 네트워크로의 통신 인터페이스를 제공하는 네트워크 접속 인터페이스(607); 카메라(507)로부터 디지털 이미지를 획득하기 위한 처리 기능과 통신 인터페이스를 제공하는 카메라 인터페이스(608); 마이크로폰(509)을 사용하여 음향을 전기적 신호로 변환하고, 스피커(510)를 사용하여 전기적 신호를 음향으로 변환하기 위한 통신 인터페이스를 제공하는 음향 인터페이스(609); CPU(601)에 의해 처리되는 컴퓨터 명령어와 데이터가 휘발성 메모리 디바이스에 저장되는 RAM(Random Access Memory;601); 기본 입력 및 출력(I/O), 스타트업, 또는 키보드(502)로부터의 키입력 수신과 같은 기본 시스템 기능을 위한 불변의 로우-레벨 시스템 코드(low-level systems code) 또는 데이터가 비휘발성 메모리 디바이스에 저장되는 ROM(Read-Only Memory;611); 운영 체제(614), 애플리케이션 프로그램(615)(예를 들어, 필요에 따라서, 웹 브라우저 애플리케이션, 위젯 또는 가젯 엔진, 및/또는 그 밖의 애플리케이션을 포함함) 및 데이터 파일(616)을 포함하는 파일들이 저장되는 저장 매체(612) 또는 그 밖의 적합한 형태의 메모리(예컨대, RAM, ROM, PROM(Programmable Read-Only Memory), EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 마그네틱 디스크, 광 디스크, 플로피 디스크, 하드 디스크, 착탈형 카트리지, 플래쉬 드라이브); 디바이스(500)의 실제 세계(real-world) 또는 상대적 위치 또는 지리적 위치를 제공하는 내비게이션 모듈(617); 전원 구성요소에 적절한 교류(AC) 또는 직류(DC)를 제공하는 전원부(619); 및 디바이스(500)가 전화 네트워크를 경유하여 음향을 전송 및 수신하도록 하는 전화 서브시스템(620)을 포함한다. 구성 디바이스 및 CPU(601)는 버스(621)를 경유하여 서로 통신한다.
CPU(601)는 많은 컴퓨터 프로세서 중 하나일 수 있다. 일 방식에서, 컴퓨터 CPU(601)는 하나 이상의 처리 유닛이다. RAM(610)은 컴퓨터 버스(621)와 인터페이스하여, 운영 체제, 애플리케이션 프로그램과 같은 소프트웨어 프로그램이 실행되는 동안 빠른 RAM 저장을 CPU(601)와 디바이스 구동부에 제공한다. 보다 구체적으로는, CPU(601)는 소프트웨어 프로그램을 실행시키기 위해서 컴퓨터 실행 가능 프로세스 단계를 저장 매체(612) 또는 다른 미디어에서 RAM(610)의 필드로 로딩한다. 데이터는 RAM(610)에 저장되고, 실행되는 동안 컴퓨터 CPU(601)에 의해 액세스된다. 일 예시적 구성에서, 디바이스(500)는 적어도 128MB의 RAM, 및 256MB의 플래시 메모리를 포함한다.
저장 매체(612) 자신은 RAID(Redundant Array of Independent Disks), 플로피 디스크 드라이브, 플레쉬 메모리, USB 플래쉬 드라이브, 외장 하드 디스크 드라이브, 썸(thumb) 드라이브, 펜(pen) 드라이브, 키 드라이브, HD-DVD(High-Density Digital Versatile Disc) 광학 디스크 드라이브, 내장 하드 디스크 드라이브, 블루레이(Blu-Ray) 광학 디스크 드라이브, 또는 HDDS(Holographic Digital Data Storage) 광학 디스크 드라이브, 외장 미니-DIMM(Dual In-line Memory Module) SDRAM(Synchronous Dynamic Random Access Memory), 또는 외장 마이크로-DIMM SDRAM과 같은 복수의 물리적 드라이브 유닛을 포함할 수 있다. 이러한 컴퓨터 판독가능 저장매체에 의해, 디바이스(500)는 착탈식 및 비착탈식 메모리 매체에 저장된 컴퓨터 실행가능 프로세스 단계, 애플리케이션 프로그램 등을 액세스하여, 데이터를 디바이스(500)로부터 오프-로딩하거나 디바이스(500)에 업로드할 수 있다.
컴퓨터 프로그램 제품은 기계 판독가능 저장 매체(machine-readable storage medium)인 저장 매체(612)에 유형적으로(tangibly) 구체화된다. 컴퓨터 프로그램 제품은 명령어를 포함하고, 이 명령어는 기계에 의해 판독되면, 데이터 처리 장치로 하여금 이미지 데이터를 모바일 디바이스에 저장하게 한다. 일부 구현예에서, 컴퓨터 프로그램 제품은 디바이스상에 메시지 신규 도착과 같은 경보에 관한 통지를 생성하는 명령어들을 포함한다.
운영 체제(614)는 구글(GOOGLE) 모바일 디바이스 플랫폼와 같은 리눅스-기반 운영 체제; 애플 맥 운영 체제 X(APPLE MAC OS X); 마이크로소트프 윈도우 NT/원도우 2000/윈도우 XP/윈도우 모바일; 다양한 유닉스-기반형 운영 체제(UNIX-flavored operating system); 또는 컴퓨터 또는 임베디드 시스템용 전용 운영 체제일 수 있다. 운영 체제(614)용 애플리케이션 개발 플랫폼 또는 프레임워크는, BREW(BINARY RUNTIME ENVIRONMENT FOR WIRELESS); 자바(JAVA) 플랫폼, 마이크로 에디션(JAVA ME) 또는 자바 2 플랫폼, 썬마이크로시스템스 자바스크립트 프로그램 언어를 이용하는 마이크로 에디션(J2ME); PYTHONTM 플레쉬 라이트(FLASH LITE), 또는 MICROSOFT.NET 컴팩, 또는 그 밖의 적절한 환경일 수 있다.
디바이스는 운영 체제(614) 및 애플리케이션 프로그램(615)용 컴퓨터 실행가능 코드(computer-executable code)를 저장한다. 예를 들어, 애플리케이션 프로그램에는 이메일, 인스턴스 메시지, 비디오 서비스 애플리케이션, 매핑 애플리케이션, 워드 프로세싱, 스프레드쉬트, 프리젠테이션, 게임, 매핑, 웹 브라우징, 자바스크립트 엔진, 또는 그 밖의 애플리케이션이 있다. 예를 들어, 일부 구현예에서 사용자는 구글 지메일(GOOGLE GMAIL) 이메일 애플리케이션, 구글 토크(GOOGLE TALK) 인스턴스 메시징 애플리케이션, 유투브(YOUTUBE) 비디오 서비스 애플리케이션, 구글 맵(GOOGLE MAPS) 또는 구글 어스(GOOGLE EARTH) 매핑 애플리케이션, 또는 구글 피카사(GOOGLE PICASA) 이메징 편집 및 프리젠테이션 애플리케이션을 액세스할 수 있다. 또한, 애플리케이션 프로그램(615)은 위젯 또는 가젯 엔진을 포함할 수 있다. 예를 들어, 위젯 또는 가젯 엔진에는, TAFRI 위젯 엔진, 윈도우 사이드바(WINDOWS SIDEBAR) 가젯 엔진 또는 KAPSULES 가젯 엔진과 같은 마이크로소프트 가젯 엔진, KONIFABULTOR 위젯 엔진과 같은 야후! 위젯 엔진, 애플 데쉬보드(APPLEDASHBOARD) 위젯 엔진, 구글 가젯 엔진, 클립폴리오(KLIPFOLIO) 위젯 엔진, OPERA 위젯 엔진, WIDSETS 위젯 엔진, 전용 위젯 또는 가젯 엔진, 또는 데스크 탑에 물리적으로 인스파이어(inspire)된 애플릿(applet)에 대한 호스트 시스템 소프트웨어를 제공하는 그 밖의 위젯 또는 가젯 엔진이 있다.
상술한 구현예를 사용하여 메시지 및 다른 이벤트와의 상호 동작과 통지가 가능한데, 본 명세서에서 설명된 기능을, 팍스파이어(FOXFIRE) 웹 브라우저, 애플 사파리(APPLE SAFARI) 웹 브라우저 또는 마이크로소프트 인터넷 익스플로러(MICROSOFT INTERNET EXPLORER) 웹 브라우저와 같은 인터넷 웹 브라우저와 같은 그 밖의 애플리케이션 프로그램에 대한 플러그-인으로서, 또는 DLL(Dynamic Link Library)로서 또한 구현할 수 있다.
내비게이션 모듈(617)은 GPS(Global Position System) 신호, GLONASS(GLObal NAvigation Satellite System), 갈릴레오 위치 시스템(Galileo positioning system), 북두 위성 항법 및 위치 시스템(Beidou Satellite Navigation and Positioning System), 관성 항법 시스템(inertial navigation system), 추측 항법 시스템(dead reckoning system)을 사용하거나, 데이터베이스에서 주소, IP(Internet Protocol) 주소, 또는 위치 정보를 액세스함으로써 디바이스의 절대적 또는 상대적 위치를 결정할 수 있다. 또한, 내비게이션 모듈(617)은 하나 이상의 가속도계를 사용함으로써, 디바이스(500)의 각도 변위, 방위, 또는 속도를 측정하기 위해 사용될 수 있다.
도 7은 운영 체제(614)가 구글 모바일 디바이스 플랫폼인 경우에 디바이스(500)에 의해 사용되는 운영 체제(614)의 예시적인 구성요소를 도시한 블록도이다. 운영 체제(614)는, 연관된 전화 애플리케이션이 반응하는 것을 보장하고, 또한, 불안정한 애플리케이션이 운영 체제의 고장(또는 기능 정지(crash))을 야기하지 않는 것을 보장하면서, 다중 프로세스를 호출한다. 운영 체제(614)는 작업 전환을 사용하여, 각 연관된 애플리케이션의 상태 손실없이, 전화를 하는 동안 애플리케이션이 전환되도록 한다. 운영 체제(614)는 구성요소의 재사용을 조장하기 위해 애플리케이션 프레임워크를 사용할 수 있고, 포인팅 디바이스와 키보드 입력을 조합하고, 피보팅(pivoting)을 허용함으로써 스케일러블 사용자 경험(scalable user experience)을 제공할 수 있다. 따라서 그 운영 체제는 고급, 표준 기반 웹 브라우저를 사용하더라도, 풍부한 그래픽 시스템과 미디어 경험을 제공할 수 있다.
운영 체제(614)는 6개의 구성요소; 커널(700), 라이브러리(701), 운영 체제 런타임(702), 애플리케이션 라이브러리(704), 시스템 서비스(705), 및 애플리케이션(706)으로 조직화된다. 커널(700)은 운영 체제(614) 및 애플리케이션 프로그램(615)과 같은 소프트웨어가 디스플레이 인터페이스(602)를 경유하여 디스플레이(501)와 상호 작용하도록 하는 디스플레이 구동부(707); 소프트웨어가 카메라(507)와 상호 작용하도록 하는 카메라 구동부(709); 블루투스 구동부(710); M-시스템 구동부(711); 바인더(IPC) 구동부(712); USB 구동부(714); 소프트웨어가 키보드 인터페이스(604)를 경유하여 키보드(502)와 상호 작용하도록 하는 키패드 구동부(715); WiFi 구동부(716); 소트프웨어가 음향 인터페이스(609)를 경유하여 마이크로폰(509) 및 스피커(510)와 상호 작용하도록 하는 오디오 구동부(717); 소프트웨어가 전원부(619)와 상호 작용하고 전원부(719)를 관리할 수 있도록 하는 전원 관리 구성요소(719)를 포함한다.
일 구현예에서는 리눅스 기반 운영 체제용 블루즈 블루투스 스택(BlueZ BLUETOOTH stack)에 근거하는 블루투스 구동부는, 헤드셋(headset) 및 핸드 프리 디바이스(hands-free device), 다이얼-업 네트워킹, PAN(Personal Area Networking), 또는 오디오 스트리밍(예컨대, A2DP(Advance Audio Distribution Profile) 또는 AVRCP(Audio/Video Remote Control Profile)에 의함)을 지원하는 프로파일을 제공한다. 블루투스 구동부는 스캐닝, 페어링(pairing) 및 언페어링(unparing), 및 서비스 쿼리를 위한 자바 바인딩을 제공한다.
라이브러리(701)는, 표준 비디오, 오디오 및 정지-프레임 형식(예컨대, MPEG(Moving Picture Experts Group)-4, H.264, MPEG-1 오디오 계층-3(MP3), AAC(Advanced Audio Coding), AMR(Adaptive Multi-Rate), JPEG(Joint Photographic Experts Group) 등)을 효율적인 자바 API(Application Programming Interface) 계층을 사용하여 지원하는 미디어 프레임워크(720); 표면 관리자(721); 2차원 애플리케이션 그리기를 위한 SGL(Simple Graphics Library, 722); 게이밍 및 3차원 랜더링(rendering)을 위한 OpenGL ES(Open Graphics Library for Embedded System, 724); LIBC(C Standard library, 725); LIBWEBCORE 라이브러리(726); 자유 형태(free type) 라이브러리(727); SSL(729); 및 SQ라이트(SQLite) 라이브러리(730)를 포함한다.
운영 체제 런타임(702)은 코어 자바 라이브러리(731)와 달빅(Dalvik) 가상 머신(732)을 포함한다. 달빅 가상 머신(732)은 맞춤형 파일 포맷(.DEX)을 실행하는 맞춤 가상 머신이다.
또한, 운영 체제(614)는 도 7에 도시된 바와 같이, MIDP JSRs(JAVA Specification Requests) 구성요소와 같은 MIDP(Mobile Information Device Profile) 구성요소, MIDP 런타임, 및 MIDP 애플리케이션을 포함할 수 있다. MIDP 구성요소는 디바이스(500)상에서 실행되는 MIDP 애플리케이션을 지원할 수 있다.
그래픽 랜더링에 관해서는, 시스템 광역 조정자(system-wide-composer)는 OpenGL ES(724) 및 그 요소에 대해 2차원 하드웨어 가속기를 사용하여, 표면 및 프레임 버퍼를 관리하고 원도우 천이를 처리한다.
달빅 가상 머신(732)은 런타임 메모리를 매우 효율적으로 사용하고, CPU-최적화 바이트코드 인터프리터(CPU-optimized bytecode interpreter)를 구현하고, 디바이스 당 다중 가상 머신 프로세스를 지원하므로, 임베디스 환경에서 사용될 수 있다. 런타임 효율을 위해 맞춤 파일 포맷(.DEX)은, 메모리를 감소시키기 위한 공유 상수 풀(constant pool), 교차 프로세스 공유(cross-process sharing)를 개선하기 위한 읽기 전용 구조, 분석 시간(parse time)을 감소시키는 간결하고, 고정 폭인 명령어를 사용하여 설계되므로, 인스톨된 애플리케이션은 빌드 시점(build-time)에서 맞춤 파일 형식으로 번역된다. 연관된 바이트코드는 신속한 해석을 위해 설계되는데, 스택-기반이 아닌 레지스터-기반 명령어는 메모리 및 디스패치 오버 헤드를 감소시키고, 고정폭 명령어를 사용하는 것은 분석을 단순화시키고, 16 비트 코드 유닛은 판독을 최소화시키기 때문이다.
애플리케이션 라이브러리(704)는 뷰 시스템(734), 리소스 관리자(735), 및 컨텐츠 제공자(737)를 포함한다. 시스템 서비스(705)는 상태 바(739), 애플리케이션 시작자(740); 모든 인스톨된 애플리케이션을 위한 정보를 유지 보수(maintain)하는 패키지 관리자(741); 애플리케이션 레벨 자바 인터페이스를 전화 서브시스템(620)에 제공하는 전화 관리자(742); 모든 애플리케이션이 예를 들어, 상술한 실시예에서 설명된 방식으로 상태 바와 온-스크린 통지(notification)에 액세스할 수 있도록 하는 통지 관리자(744); 다중 윈도우를 갖는 다중 애플리케이션이 디스플레이(501)을 공유할 수 있도록 하는 윈도우 관리자(745); 및 분리된 프로세스로 각 애플리케이션을 실행하고, 애플리케이션 라이프 사이클을 관리하고, 교차-애플리케이션 이력을 유지 보수하는 활동 관리자(746)를 포함한다.
애플리케이션(706)은 홈 애플리케이션(747), 다이얼 애플리케이션(749), 접촉 애플리케이션(750), 및 브라우저 애플리케이션(751)을 포함한다. 각각의 애플리케이션은 장기 밀착 상호작용을 할지 말지의 그래픽 요소들을 생성할 수 있다. 상기 설명된 것처럼, 장기 밀착 상호작용을 하지 않는 애플리케이션은 처음 밀착된 때즉각적인 시각 피드백을 제공하지 않고, 반면에 그러한 상호작용을 하는 애플리케이션들은 그들이 처음 밀착된 때와 장기 밀착 기간의 만기 사이에서 강조(highlighting)된다. 또한 상기 강조는 단지 아이템의 탭핑이 상기 애플리케이션을 강조하지 않도록 하기 위해 실제로 밀착 위에서 일어날 수 없다.;대신에, 상기 강조는, 탭을 위한 기간보다 조금 길지만 장기 밀착 기간보다는 상당히 짧은 단기 밀착 기간의 만기에 일어날 수 있다.
전화 관리자(742)는 이벤트 통지(예컨대, 전화 상태, 네트워크 상태, SIM(Subscriber Identity Module) 상태, 또는 음성메일 상태)를 제공하고, 상태 정보(예컨대, 네트워크 정보, SIM 정보, 또는 음성메일 존재)에 대한 액세스를 허용하고, 호를 개시하고, 및 호 상태를 질의 및 제어한다. 브라우저 애플리케이션(751)은, 내비게이션 기능을 포함하는 완전한 데스크탑형 관리자(desktop-like manager)에서 웹 페이지를 랜더링한다. 더욱이, 브라우저 애플리케이션(751)은 단일 컬럼, 소형 스크린 랜더링을 허용하고, 다른 애플리케이션으로 HTML 뷰(view)의 내장(embedding)을 지원한다.
도 8은 운영 체제 커널(800)에 의해 구현되는 예시적인 프로세스를 도시하는 블록도이다. 일반적으로, 애플리케이션 및 시스템 서비스는 개별 프로세스에서 실행되며, 활동 관리자(746)는 각 애플리케이션을 개별 프로세스에서 실행하고, 애플리케이션 라이프 사이클을 관리한다. 애플리케이션은 자신의 고유 프로세스에서 실행된다. 하지만, 많은 활동 또는 서비스가 동일한 프로세스에서 실행될 수 있다. 프로세스는 애플리케이션의 구성요소를 실행하기 위해, 필요에 따라 시작 및 정지되며, 프로세스는 리소스가 재이용될 수 있도록 종료될 수 있다. 각 애플리케이션은 자신의 프로세스를 할당받는데, 할당받는 프로세스의 이름은 애플리케이션의 패키지 이름이며, 애플리케이션의 개별적 부분은 다른 프로세스 이름을 할당받을 수 있다.
일부 프로세스는 지속될 수 있다. 예를 들어, 디바이스(500)에 전원이 공급되는 동안, 표면 관리자(816), 윈도우 관리자(814), 또는 활동 관리자(810)와 같은 코어 시스템 구성요소와 연관되는 프로세스는 지속적으로 실행될 수 있다. 부가적으로, 일부 애플리케이션-특정 프로세스도 또한 지속될 수 있다. 예를 들어, 다이얼 애플리케이션(821)과 연관되는 프로세스는 지속될 수 있다.
운영 체제 커널(800)에 의해 구현되는 프로세스는 일반적으로 시스템 서비스 프로세스(801), 다이얼 프로세스(802), 브라우저 프로세스(804), 지도 프로세스(805)로서 분류될 수 있다. 시스템 서비스 프로세스(801)는 상태 바(739)와 연관된 상태 바 프로세스(806); 애플리케이션 시작자(740)와 연관되는 애플리케이션 시작 프로세스(807); 패키지 관리자(741)와 연관된 패키지 관리자 프로세스(809); 활동 관리자(746)와 연관된 활동 관리 프로세스(810); 그래픽, 국소화된(localized) 스트링, 및 XML 레이아웃 설명으로의 액세스를 제공하는 리소스 관리자(735)와 연관된 리소스 관리 프로세스(811); 통지 관리자(744)와 연관된 통지 관리 프로세스(812); 윈도우 관리자(745)와 연관된 윈도우 관리자 프로세스(814); 코어 자바 라이브러리(731)와 연관된 코어 자바 라이브러리 프로세스(815); 표면 관리자(721)와 연관된 표면 관리자 프로세스(816); 및 달빅 가상 머신(732)과 연관된 달빅 가상 머신 프로세스(817); LIBC 라이브러리(725)와 연관된 LIBC 프로세스(819)를 포함할 수 있다.
다이얼 프로세스(802)는 다이얼 애플리케이션(749)과 연관된 다이얼 애플리케이션 프로세스(821); 전화 관리자(742)와 연관된 전화 관리자 프로세스(822); 코어 자바 라이브러리(731)와 연관된 코어 자바 라이브러리 프로세스(824); 달빅 가상 머신(732)과 연관된 달빅 가상 머신 프로세스(825); 및 LIBC 라이브러리(725)와 연관된 LIBC 프로세스(826)를 포함한다. 브라우저 프로세스(804)는 브라우저 애플리케이션(751)에 연관된 브라우저 애플리케이션 프로세스(827); 코어 자바 라이브러리(731)와 연관된 코어 자바 라이브러리 프로세스(829); 달빅 가상 머신(732)과 연관된 달빅 가상 머신 프로세스(830); LIBWEBCORE 라이브러리(725)와 연관된 LIBWEBCORE 프로세스(831); 및 LIBC 라이브러리(725)와 연관된 LIBC 프로세스(832)를 포함한다.
지도 프로세스(805)는 지도 애플리케이션 프로세스(834), 코어 자바 라이브러리 프로세스(835), 달릭 가상 머신 프로세스(836), 및 LIBC 프로세스(837)를 포함한다. 특히, 달릭 가상 머신 프로세스와 같은 일부 프로세스는 시스템 서비스 프로세스(801), 다이얼 프로세스(802), 브라우저 프로세스(804), 및 지도 프로세스(805) 중 하나 이상에 존재할 수 있다.
도 9는 일반적인 컴퓨팅 디바이스(900)와 본 명세서에서 설명된 기술을 사용할 수 있는 일반적인 모바일 컴퓨팅 디바이스(950)의 예시를 나타낸다. 컴퓨팅 디바이스(900)는 랩탑, 데스트탑, 워크스테이션, PDA, 서버, 블레이드(blade) 서버, 메인프레임, 및 그 밖의 적절한 컴퓨터들과 같은 다양한 형태의 디지털 컴퓨터를 나타내기 위해 사용된다. 컴퓨팅 디바이스(950)는 PDA, 셀룰라 전화, 스마트폰, 및 그 밖의 유사한 컴퓨팅 디바이스와 같은 다양한 형태의 모바일 디바이스를 나타내기 위해 사용된다. 본 명세서에서 나타낸 구성요소, 그들의 접속 및 관계, 및 그들의 기능들은 단지 예시적인 것을 의미하고, 본 명세서에서 설명하거나 또는 청구된 발명의 구현예를 제한하는 것을 의미하지 않는다.
컴퓨팅 디바이스(900)는 프로세서(902), 메모리(904), 저장 디바이스(906), 메모리(904)에 접속하는 고속 인터페이스(908)와 고속 확장 포트(910), 및 저속 버스(914)와 저장 디바이스(906)에 접속하는 저속 인터페이스(912)를 포함한다. 각 구성요소(902, 904, 906, 908, 910, 및 912)는 다양한 버스들을 사용하여 서로 접속되고, 일반적인 마더보드 또는 적절한 경우 다른 방식으로 탑재될 수 있다. 프로세서(902)는 컴퓨팅 디바이스(900) 내에서 실행하기 위한 명령어를 처리할 수 있으며, 이러한 명령어에는, 고속 인터페이스(908)에 연결된 디스플레이(916)와 같은 외장 입/출력 디바이스상에서 GUI용 그래픽 정보를 디스플레이하기 위해, 메모리(904) 또는 저장 디바이스(906)에 저장되는 명령어가 포함된다. 다른 구현예에서, 다중 프로세서 및/또는 다중 버스는 적절한 경우, 다중 메모리 및 메모리 타입과 함께 사용될 수 있다. 또한, 다중 컴퓨팅 디바이스(900)는 각 디바이스가 필요 동작의 부분을 제공하는 형태(예를 들어, 서버 뱅크, 블레이드 서버의 그룹, 또는 다중 프로세서 시스템)로 접속될 수 있다.
메모리(904)는 컴퓨팅 디바이스(900)내에 정보를 저장한다. 일 구현예에서, 메모리(904)는 휘발성 메모리 유닛 또는 유닛들이다. 또 다른 구현에서, 메모리(904)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(904)는 마그네틱 또는 광 디스크와 같은 다른 형태의 컴퓨터 판독가능 매체일 수 있다.
저장 디바이스(906)는 컴퓨팅 디바이스(900)를 위한 대용량 저장소(mass storage)를 제공할 수 있다. 일 구현예에서, 저장 디바이스(906)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테입 디바이스, 플래쉬 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성에 존재하는 디바이스를 포함하는 디바이스 어레이일 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어(information carrier) 내에 유형적으로 구체화될 수 있다. 또한, 컴퓨터 프로그램 제품은 실행될 때, 상술한 것과 같은 하나 이상의 방법을 수행하는 명령어를 포함할 수 있다. 정보 캐리어는 메모리(904), 저장 디바이스(906), 프로세서(902)상의 메모리, 또는 전파된 신호와 같은 컴퓨터 또는 기계 판독가능 매체이다.
저속 제어부(912)가 저대역-집약적 동작(lower bandwidth-intensive operations)을 관리하는 반면, 고속 제어부(908)는 컴퓨팅 디바이스(900)에 대한 대역-집약적 동작을 관리한다. 이러한 기능들의 배치는 단지 예시적인 것이다. 일 구현예에서, 고속 제어부(908)는 메모리(904), 디스플레이(916)(예를 들어, 그래픽 프로세서 또는 가속기를 통함)에 연결되고, 다양한 확장 카드(도시되지 않음)을 수용할 수 있는 고속 확장 포트(910)에 연결된다. 일부 구현예에서는, 저속 제어부(912)는 저장 디바이스(906) 및 저속 확장 포트(914)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입/출력 디바이스들에 연결되거나, 또는 예컨대 네트워크 어댑터를 통하여, 스위치나 라우터와 같은 네트워킹 디바이스에 연결될 수 있다.
컴퓨팅 디바이스(900)는 도면에 도시된 바와 같이, 복수의 다른 형태로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(900)는 표준 서버(920)로 구현되거나 이러한 서버들의 그룹에서 여러 번(multiple time) 구현될 수 있다. 또한, 컴퓨팅 디바이스(900)는 랙 서버 시스템(924)의 부분으로서 구현될 수 있다. 이에 더하여, 컴퓨팅 디바이스(900)는 랩탑 컴퓨터(922)와 같은 개인용 컴퓨터내에 구현될 수 있다. 선택적으로, 컴퓨팅 디바이스(900)로부터의 구성요소는 디바이스(950)와 같은 모바일 디바이스(도시되지 않음)내 다른 구성요소와 조합될 수 있다. 이러한 디바이스 각각은 하나 이상의 컴퓨팅 디바이스(900, 950)를 포함하고, 전체 시스템은 서로 통신하는 다중 컴퓨팅 디바이스(900, 950)로 구성될 수 있다.
컴퓨팅 디바이스(950)는 여러 구성요소 중에서 프로세서(952), 메모리(964), 디스플레이(954)와 같은 입/출력 디바이스, 통신 인터페이스(966), 및 트랜스시버(968)를 포함한다. 또한, 디바이스(950)에는 추가적인 저장소를 제공하기 위하여, 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 각 구성요소(950, 952, 964, 954, 966, 및 968)는 다양한 버스를 이용하여 서로 접속되고, 구성요소의 몇몇은 통상의 마더보스에 탑재되거나 적절한 다른 방법으로 탑재될 수 있다.
프로세서(952)는 컴퓨팅 디바이스(950) 내에서 명령어를 실행하며, 이 명령어에는 메모리(964)에 저장된 명령어가 포함된다. 프로세서는 개별적이고 다중의 아날로그 및 디지털 프로세서를 포함하는 칩들의 칩 세트로서 구현될 수 있다. 프로세서는, 예를 들어, 사용자 인터페이스의 컨트롤, 디바이스(950)에 의해 실행되는 애플리케이션, 및 컴퓨팅 디바이스(950)에 의한 무선 통신과 같은 디바이스(950)의 다른 구성요소들 사이에 조정을 제공할 수 있다.
프로세서(952)는 제어 인터페이스(958) 및 디스플레이(954)에 연결된 디스플레이 인터페이스(956)를 통해 사용자와 통신할 수 있다. 디스플레이(954)는, 예를 들어, TFT LCD(Thin-Film-Tansistor Liquid Crystal Display) 또는 OLED(Organic Light Emitting Diode) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(956)는 그래픽 및 다른 정보를 사용자에게 나타내기 위해 디스플레이(954)를 구동하는 적절한 회로를 포함할 수 있다. 제어 인터페이스(958)는 사용자로부터 명령들을 수신하고, 프로세서(952)에 제출하기 위해 그 명령들을 변환한다. 더욱이, 확장 인터페이스(962)는 디바이스(950)와 다른 디바이스들간에 근거리 통신이 가능하도록 하기 위해, 프로세서(952)와의 통신에 제공될 수 있다. 확장 인터페이스(962)는, 예를 들어, 일부 구현예에서는 유선 통신을 제공하고 다른 구현예에서 무선 통신을 제공하며, 또한 다중 인터페이스가 사용될 수 있다.
메모리(964)는 컴퓨팅 디바이스(950)내에 정보를 저장한다. 메모리(964)는 컴퓨터 판독가능 매체 또는 미디어, 휘발성 메모리 유닛 또는 유닛들, 또는 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 또한, 확장 메모리(974)가 제공되어, 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함하는 확장 인터페이스(1074)를 통해 디바이스(1050)에 접속될 수 있다. 이러한 확장 메모리(974)는 디바이스(950)를 위한 여분의 저장 공간을 제공할 수 있고, 또한 애플리케이션 또는 디바이스(950)를 위한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(974)는 상술된 프로세스를 실행하거나 보조하기 위한 명령어를 포함하고, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(974)는 디바이스(1050)용 보안 모듈(security module)로서 제공될 수 있고, 디바이스(1050)의 안전한 사용을 가능하게 하는 명령어로 프로그램될 수 있다. 더욱이, 보안 애플리케이션은, 해킹할 수 없는 방식(non-hackable manner)으로 SIMM 카드상에 식별 정보를 위치시킨 것과 같은 추가적 정보와 함께 SIMM 카드를 통해 제공될 수 있다.
메모리는 아래에서 논의되는 것과 같이 예를 들어, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 구체화된다. 컴퓨터 프로그램 제품은 실행될 때, 상술된 것과 같은 하나 이상의 방법을 수행하는 명령어를 포함한다. 정보 캐리어는 메모리(964), 확장 메모리(974), 프로세서(952)상의 메모리, 또는 예를 들어 트랜스시버(968) 또는 확장 인터페이스(962)를 통해 수신될 수 있는 전달된 신호와 같은 컴퓨터-또는 기계-판독가능 매체이다.
디바이스(950)는 디지털 신호 처리 회로를 필요에 따라 포함하는 통신 인터페이스(966)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(966)는 GSM 음성 호, SMS, EMS, 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS 등과 같은 다양한 모드 또는 프로토콜 하에서의 통신을 제공할 수 있다. 이러한 통신은 예를 들어, 무선-주파수 트랜스시버(968)를 통해 수행될 수 있다. 또한, 단거리(short range) 통신은 예를 들어, 블루투스, WiFi, 또는 다른 이러한 트랜스시버(도시되지 않음)를 사용하여 수행될 수 있다. 이에 더하여, GPS(Global Position System) 수신기 모듈(970)은 추가적인 항법- 및 위치- 관련 무선 데이터를 디바이스(950)에 제공할 수 있다. 이 무선 데이터는 디바이스(950)에서 실행중인 애플리케이션에 의해 적절하게 사용될 수 있다.
또한, 디바이스(950)는 사용자로부터의 발화 정보(spoken information)를 수신하고, 그 발화 정보를 사용가능한 디지털 정보로 변환하는 오디오 코덱(960)을 이용하여, 청취가능하게(audibly) 통신할 수 있다. 또한, 오디오 코덱(960)은 예를 들어, 디바이스(950)의 핸드셋 내의 스피커를 통하는 것과 같이 해서, 사용자가 들을 수 있는 음향을 생성한다. 이러한 음향은 음성 전화 호로부터의 음향을 포함할 수 있고, 녹음된 음향(예를 들어, 음성 메시지, 음악 파일 등)을 포함할 수 있고, 또한 디바이스(950)상에서 동작하는 애플리케이션에 의해 생성된 음향을 포함할 수 있다.
컴퓨팅 디바이스(950)는 도면에 도시된 바와 같이, 복수의 다양한 형태로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(950)는 셀룰러 폰(980)으로서 구현될 수 있다. 또한, 컴퓨팅 디바이스(950)는 스마트폰(982), PDA, 또는 다른 유사한 모바일 디바이스의 부분으로서 구현될 수 있다.
디바이스(950)는 또한 모션을 감지할 수 있는 하나 이상의 다른 디바이스들을 포함한다. 예로서 가속도계 및 나침반을 포함하고, 이에 한정되지는 않는다. 모션 또는 위치를 검출할 수 있는 가속도계와 나침반, 또는 다른 디바이스들은 많은 상인들로부터 이용가능하고 다양한 방식으로 모션을 감지할 수 있다. 예를 들어, 나침반이 각자 자성의 N극 또는 S극으로의 방위에서 변화를 검출할 수 있는 반면 가속도계는 가속도에서의 변화를 검출할 수 있다. 모션에서 이러한 변화들은 디바이스(950)에 의해 검출되고 여기 설명된 프로세스와 기술에 따라 각자의 디바이스(950)의 디스플레이를 갱신하기 위해 사용된다.
본 명세서에 기재된 시스템의 다양한 구현예와 기술은 디지털 전자 회로, 집적 회로, 특별하게 설계된 ASICs(Application Specific Intergrated Circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 그것의 조합물로 실현될 수 있다. 이러한 다양한 구현예는 하나 이상의 컴퓨터 프로그램으로 된 구현예를 포함하며, 이 컴퓨터 프로그램은 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행가능하고 및/또는 해석가능하다. 또한, 전용 또는 범용 프로세서일 수 있는 이 프로그램 가능한 프로세서는 데이터와 명령어를 송수신하기 위해, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 수신 디바이스에 연결된다.
컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 또는 코드로 알려짐)은 프로그램 가능한 프로세서를 위한 기계 명령어를 포함하고, 고레벨 절차 및/또는 객체 지향 프로그램 언어(object-oriented programming language) 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "기계 판독가능 매체(machine-readable medium)"와 "컴퓨터 판독가능 매체(computer-readable medium)"는 기계 명령어 및/또는 데이터를 프로그램 가능한 프로세서에 제공하기 위해 이용되는 임의의 컴퓨터 프로그램 제품, 장치, 및/또는 디바이스(예를 들어, 마그네틱 디스크, 광학 디스크, 메모리, PLDs(Programmable Logic Devices))를 가리키며, 기계 판독가능 신호와 같은 기계 명령어를 수신하는 기계 판독가능 매체를 포함한다. 용어 "기계 판독가능 신호(machine-readable signal)"는 기계 명령어 및/또는 데이터를 프로그램 가능한 프로세서에 제공하기 위해 사용되는 임의의 신호를 가리킨다.
사용자와의 상호 작용을 제공하기 위하여, 본 명세서에 기술된 시스템과 기술은, 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터)와 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 구비한 컴퓨터상에서 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위하여 다른 종류의 디바이스가 또한 사용될 수 있다; 예를 들어, 사용자에게 제공되는 피드백(feedback)은 임의 형태의 감각 피드백(예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백)일 수 있고, 사용자로부터의 입력은 음향적인(acoustic), 음성(speech) 또는 촉각(tactile) 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에서 설명한 시스템과 기술은, 백 엔드(back end) 구성요소(예를 들어, 데이터 서버와 같은), 또는 미들웨어 구성요소(예를 들어, 애플리케이션 서버), 또는 프론트 엔드(front end) 구성요소(예를 들어, 본 명세서에서 설명된 시스템 및 기술의 구현예와 사용자가 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹브라우저를 구비한 클라이언트 컴퓨터), 또는 이러한 백 엔드, 미들웨어, 또는 프론트 엔드 구성요소들의 임의 조합을 포함하는 컴퓨팅 시스템으로 구현될 수 있다. 시스템의 구성요소는 디지털 데이터 통신의 임의 형태 또는 매체(예를 들어, 통신 네트워크)에 의해 상호 접속될 수 있다. 통신 네트워크의 예로서, 근거리 네트워크(LAN), 광역 네트워크(WAN), 및 인터넷이 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 떨어져 있으며, 일반적으로는 통신 네트워크를 통하여 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 실행되고 상호 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의하여 발생한다.
복수의 구현예가 설명되었다. 그럼에도 불구하고, 설명된 구현예의 정신과 범위를 벗어나지 않는 다양한 변형이 만들어질 수 있다. 예를 들어, 본 명세서의 대부분이 텔레비전 광고물에 관련하여 설명되었지만, 그러나 미래의 다른 형태인 라디오 광고물 및 온라인 비디오 광고물과 같은 시청차-기반 광고물이 검토될 수 있다.
더욱이, 도면에서 묘사된 로직 흐름은 희망하는 결과를 달성하기 위해, 도시된 특정 순서 또는 시계열적 순서일 필요는 없다. 다른 단계들이 제공되거나, 그로부터 단계들이 제거될 수 있으며, 다른 구성요소들이 설명된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서 다른 실시예는 후술하는 청구범위의 범위 내에 속한다.

Claims (21)

  1. 컴퓨터-구현 비주얼 내비게이션 방법으로서,
    무선 모바일 디바이스로부터, 공중 무선 네트워크를 통해, 상기 무선 모바일 디바이스로부터 원격으로 위치한 서버에 지리적 위치를 식별하는 정보를 제공하는 단계;
    상기 지리적 위치에서의 한 위치로부터 캡쳐(capture)된 디지털 이미지들의 이미지 데이터를 상기 서버로부터 응답으로 수신하는 단계;
    상기 지리적 위치 주위의 이미지 공간의 이미지로서, 상기 모바일 디바이스의 사용자에게 상기 이미지 데이터를 디스플레이하는 단계; 및
    상기 무선 모바일 디바이스의 사용자 모션에 응답하여 자동으로 이미지 공간 안에서 상기 이미지를 패닝(panning)하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서,
    상기 이미지를 패닝하는 단계는, 사용자가 상기 무선 모바일 디바이스를 흔드는 것(shaking)에 응답하여 상기 이미지 공간에서 앞으로 이동하는 단계를 포함하는 방법.
  3. 청구항 1에 있어서,
    상기 이미지를 패닝하는 단계는, 상기 모바일 디바이스에 의해 감지된 나침반 판독에 따라 상기 지리적 위치 주위에 상기 이미지를 횡으로 패닝하는 단계를 포함하는 방법.
  4. 청구항 3에 있어서,
    상기 무선 모바일 디바이스에 의해 감지된 나침반 판독을 상기 지리적 위치에서 나침반 방향과 매칭하는 단계를 더 포함하는 방법.
  5. 청구항 1에 있어서,
    상기 이미지는 다수의 연결된 이미지 파일로 구성되는 방법.
  6. 청구항 1에 있어서,
    상기 이미지를 패닝하는 단계는, 상기 무선 모바일 디바이스에 의해 감지된 가속도계 측정들에 응답하여 상기 이미지를 아래위로 패닝하는 단계를 포함하는 방법.
  7. 청구항 1에 있어서,
    상기 이미지 데이터는 스트리트뷰(streetview) 이미지 데이터와 실질적으로 유사한 방법.
  8. 청구항 1에 있어서,
    사용자로부터 주소 정보를 수신하는 단계;
    상기 주소 정보의 수신에 응답하여 상기 주소 주위의 지도를 디스플레이하는 단계; 및
    상기 지도에서 사용자 선택을 기반으로 지리적 위치를 식별하는 상기 정보를 제공하는 단계를 더 포함하는 방법.
  9. 청구항 8에 있어서,
    상기 사용자로부터 검색 쿼리를 수신하는 단계;
    상기 주소 정보에 상응하는 것으로서 상기 검색 쿼리를 식별하는 단계; 및
    상기 사용자로부터 상기 주소 정보를 수신하는 단계 전에 상기 사용자에게 주소 정보를 표시하는 단계를 포함하는 방법.
  10. 청구항 9에 있어서,
    상기 주소 정보는 검색 결과로부터 하이퍼링크(hyperlink)로 부호화된 데이터를 포함하는 방법.
  11. 청구항 1에 있어서,
    상기 지리적 위치는 상기 무선 모바일 디바이스의 현재 위치와는 상이한 방법.
  12. 하나 이상의 기계들이 작업을 수행하도록 하기 위해 작동가능한 프로그램 코드를 저장하는 유형의 컴퓨터-판독 데이터 저장 매체를 포함하는 물품으로서, 상기 작업은,
    무선 모바일 디바이스로부터, 상기 무선 모바일 디바이스로부터 원격으로 위치한 서버에 지리적 위치를 식별하는 정보를 제공하는 단계;
    상기 지리적 위치 주위의 아이템들을 나타내는 이미지 데이터를 상기 서버로부터 응답으로 수신하는 단계;
    상기 지리적 위치 주위의 이미지 공간의 이미지로서, 상기 모바일 디바이스의 사용자에게 상기 이미지 데이터를 디스플레이하는 단계; 및
    상기 무선 모바일 디바이스의 사용자 모션에 응답하여 자동으로 이미지 공간 안에서 상기 이미지를 패닝하는 단계를 포함하는 물품.
  13. 청구항 12에 있어서,
    상기 이미지를 패닝하는 단계는, 상기 모바일 디바이스에 의해 감지된 나침반 판독에 따라 상기 지리적 위치 주위에 상기 이미지를 횡으로 패닝하는 단계를 포함하는 물품.
  14. 청구항 13에 있어서,
    상기 이미지를 패닝하는 단계는, 상기 무선 모바일 디바이스에 의해 감지된 나침반 판독을 상기 지리적 위치에서 나침반 방향과 매칭하는 단계를 더 포함하는 물품.
  15. 청구항 1에 있어서,
    상기 작업은, 사용자로부터 주소 정보를 수신하는 단계, 상기 주소 정보의 수신에 응답하여 상기 주소 주위의 지도를 디스플레이하는 단계, 및 상기 지도에서 사용자 선택을 기반으로 지리적 위치를 식별하는 상기 정보를 제공하는 단계를 더 포함하는 물품.
  16. 컴퓨터-구현 비주얼 내비게이션 시스템으로서,
    무선 모바일 컴퓨터를 위한 방위의 방향을 감지하는 나침반 모듈;
    지리적 위치들 주위의 다수 이미지들을 상기 서버로부터 수신하기 위해서 상기 시스템으로부터 원격으로 위치한 서버와 통신하는 무선 인터페이스;
    코드를 저장하는 메모리와 통신하는 프로세서를 포함하고, 상기 코드는 상기 나침반 모듈을 이용하여 상기 디바이스 방위의 방향을 결정하고, 상기 지리적 위치들 주위의 이미지들을 보여주는 이미지 데이터를 상기 서버로부터 얻고, 및 상기 무선 모바일 컴퓨터를 위한 방위의 방향에 상응하는 방위에서 상기 시스템의 사용자에 의해 식별된 지리적 위치에 상응하는 하나 이상의 이미지들을 디스플레이하기 위한 명령들을 구비하는 시스템.
  17. 청구항 16에 있어서,
    상기 코드는 상기 무선 모바일 컴퓨터를 위한 방위의 방향에서 변화를 감지하고, 및 상기 무선 모바일 컴퓨터상의 이미지로 상기 무선 모바일 컴퓨터를 위한 방위의 방향 변화를 매칭하기 위해 상기 무선 모바일 컴퓨터상에 이미지의 디스플레이를 변화시키기 위한 명령들을 더 구비하는 시스템.
  18. 청구항 16에 있어서,
    상기 무선 모바일 컴퓨터의 모션을 감지하기 위한 가속도계를 더 포함하고,
    상기 코드는 상기 무선 모바일 컴퓨터에 있는 이미지들의 디스플레이를 변화시키기 위한 명령들을 더 구비하는 시스템.
  19. 청구항 16에 있어서,
    상기 무선 모바일 컴퓨터를 위한 방위의 방향에 상응하는 방위에서 상기 시스템의 사용자에 의해 식별된 지리적 위치에 상응하는 하나 이상의 이미지들을 디스플레이하기 위한 코드는,
    상기 나침반 모듈에 의해 감지된 나침반 판독에 따라 상기 지리적 위치 주위에 디스플레이를 횡으로 패닝하기 위한 코드를 포함하는 시스템.
  20. 컴퓨터-구현 비주얼 내비게이션 시스템으로서,
    무선 모바일 컴퓨터를 위한 방위의 방향을 감지하는 나침반 모듈;
    상기 서버로부터 지리적 위치들 주위의 다수 이미지들을 수신하기 위해 상기 시스템으로부터 원격으로 위치한 서버와 통신하는 무선 인터페이스; 및
    상기 나침반 모듈에 의해 감지된 방향에 상응하는 지리적 위치에 관한 방향에서 상기 서버로부터 검색된 이미지를 디스플레이하기 위한 수단을 포함하는 시스템.
  21. 컴퓨터-구현 비주얼 내비게이션 방법으로서,
    무선 모바일 디바이스로부터, 공중 무선 네트워크를 통해, 상기 무선 모바일 디바이스로부터 원격으로 위치한 서버에 지리적 위치를 식별하는 정보를 제공하는 단계;
    상기 지리적 위치에서의 한 위치로부터 캡쳐(capture)된 디지털 이미지들의 이미지 데이터를 상기 서버로부터 응답으로 수신하는 단계;
    상기 지리적 위치 주위의 이미지 공간의 이미지로서, 상기 모바일 디바이스의 사용자에게 상기 이미지 데이터를 디스플레이하는 단계;
    상기 무선 모바일 디바이스의 사용자 모션에 응답하여 자동으로 이미지 공간 안에서 상기 이미지를 패닝하는 단계;
    상기 사용자 모션에 응답하여 팝업 그래픽 패닝 컨트롤(pop up graphical panning control)을 자동으로 생성하는 단계; 및
    상기 패닝 컨트롤에 대한 사용자 입력을 수신하고 상기 이미지 공간 안에서 상기 이미지의 패닝을 제공하는 단계를 포함하는 방법.
KR1020107029419A 2008-05-28 2009-05-28 모바일 컴퓨팅 디바이스에서의 모션-컨트롤 뷰 KR101534789B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5682308P 2008-05-28 2008-05-28
US61/056,823 2008-05-28
PCT/US2009/045522 WO2009155071A2 (en) 2008-05-28 2009-05-28 Motion-controlled views on mobile computing devices

Publications (2)

Publication Number Publication Date
KR20110038646A true KR20110038646A (ko) 2011-04-14
KR101534789B1 KR101534789B1 (ko) 2015-07-07

Family

ID=41434654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107029419A KR101534789B1 (ko) 2008-05-28 2009-05-28 모바일 컴퓨팅 디바이스에서의 모션-컨트롤 뷰

Country Status (9)

Country Link
US (6) US8291341B2 (ko)
EP (1) EP2318897B1 (ko)
JP (1) JP5658144B2 (ko)
KR (1) KR101534789B1 (ko)
CN (1) CN102187694A (ko)
AU (1) AU2009260486B2 (ko)
CA (1) CA2725542C (ko)
DE (1) DE202009019125U1 (ko)
WO (1) WO2009155071A2 (ko)

Families Citing this family (274)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093201B2 (en) * 2001-09-06 2006-08-15 Danger, Inc. Loop menu navigation apparatus and method
US8984440B2 (en) 2010-10-01 2015-03-17 Z124 Managing expose views in dual display communication devices
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
US7958456B2 (en) * 2005-12-23 2011-06-07 Apple Inc. Scrolling list with floating adjacent index symbols
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8607167B2 (en) * 2007-01-07 2013-12-10 Apple Inc. Portable multifunction device, method, and graphical user interface for providing maps and directions
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
US8302033B2 (en) 2007-06-22 2012-10-30 Apple Inc. Touch screen device, method, and graphical user interface for providing maps, directions, and location-based information
US8171432B2 (en) * 2008-01-06 2012-05-01 Apple Inc. Touch screen device, method, and graphical user interface for displaying and selecting application options
US8327272B2 (en) 2008-01-06 2012-12-04 Apple Inc. Portable multifunction device, method, and graphical user interface for viewing and managing electronic calendars
US20090235189A1 (en) * 2008-03-04 2009-09-17 Alexandre Aybes Native support for manipulation of data content by an application
US8155479B2 (en) 2008-03-28 2012-04-10 Intuitive Surgical Operations Inc. Automated panning and digital zooming for robotic surgical systems
US8808164B2 (en) 2008-03-28 2014-08-19 Intuitive Surgical Operations, Inc. Controlling a robotic surgical tool with a display monitor
JP4577428B2 (ja) * 2008-08-11 2010-11-10 ソニー株式会社 表示装置、表示方法及びプログラム
US20100058240A1 (en) * 2008-08-26 2010-03-04 Apple Inc. Dynamic Control of List Navigation Based on List Item Properties
US20100088640A1 (en) * 2008-10-08 2010-04-08 Belkin International, Inc. Method And Electrical Device For Displaying Data To A User
US8411046B2 (en) 2008-10-23 2013-04-02 Microsoft Corporation Column organization of content
US20100107100A1 (en) 2008-10-23 2010-04-29 Schneekloth Jason S Mobile Device Style Abstraction
US8310447B2 (en) * 2008-11-24 2012-11-13 Lsi Corporation Pointing device housed in a writing device
US8731533B2 (en) * 2009-03-03 2014-05-20 Peter Roach Methods and apparatuses for reconnecting calls with quality problems or reconnecting dropped calls
US20120057588A1 (en) * 2009-03-04 2012-03-08 Laird Technologies, Inc. Multiple antenna multiplexers, demultiplexers and antenna assemblies
US8689128B2 (en) 2009-03-16 2014-04-01 Apple Inc. Device, method, and graphical user interface for moving a current position in content at a variable scrubbing rate
US8238876B2 (en) 2009-03-30 2012-08-07 Microsoft Corporation Notifications
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
KR101578728B1 (ko) * 2009-05-22 2015-12-21 엘지전자 주식회사 휴대 단말기
US8836648B2 (en) 2009-05-27 2014-09-16 Microsoft Corporation Touch pull-in gesture
KR101567785B1 (ko) * 2009-05-28 2015-11-11 삼성전자주식회사 휴대단말에서 줌 기능 제어 방법 및 장치
US8464182B2 (en) * 2009-06-07 2013-06-11 Apple Inc. Device, method, and graphical user interface for providing maps, directions, and location-based information
US8740701B2 (en) * 2009-06-15 2014-06-03 Wms Gaming, Inc. Controlling wagering game system audio
US8968088B2 (en) 2009-07-07 2015-03-03 Wms Gaming, Inc. Controlling priority of wagering game lighting content
WO2011005797A1 (en) 2009-07-07 2011-01-13 Wms Gaming, Inc. Controlling gaming effects for gaming network nodes
WO2011014760A1 (en) 2009-07-31 2011-02-03 Wms Gaming, Inc. Controlling casino lighting content and audio content
US10269207B2 (en) 2009-07-31 2019-04-23 Bally Gaming, Inc. Controlling casino lighting content and audio content
CN101996021B (zh) * 2009-08-12 2013-02-13 幻音科技(深圳)有限公司 手持式电子设备及其控制显示内容的方法
US8622830B2 (en) * 2009-08-20 2014-01-07 Wms Gaming, Inc. Controlling sound distribution in wagering game applications
JP5464955B2 (ja) * 2009-09-29 2014-04-09 株式会社ソニー・コンピュータエンタテインメント パノラマ画像表示装置
JP4911389B2 (ja) * 2009-09-30 2012-04-04 Necビッグローブ株式会社 情報表示システム、サーバ、端末、及び方法
US8325187B2 (en) * 2009-10-22 2012-12-04 Samsung Electronics Co., Ltd. Method and device for real time 3D navigation in panoramic images and cylindrical spaces
KR101631912B1 (ko) * 2009-11-03 2016-06-20 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US8335522B2 (en) * 2009-11-15 2012-12-18 Nokia Corporation Method and apparatus for mobile assisted event detection and area of interest determination
US8442600B1 (en) 2009-12-02 2013-05-14 Google Inc. Mobile electronic device wrapped in electronic display
US9766089B2 (en) * 2009-12-14 2017-09-19 Nokia Technologies Oy Method and apparatus for correlating and navigating between a live image and a prerecorded panoramic image
US8613667B2 (en) 2009-12-21 2013-12-24 Wms Gaming, Inc. Position-based lighting coordination in wagering game systems
US8456297B2 (en) * 2010-01-06 2013-06-04 Apple Inc. Device, method, and graphical user interface for tracking movement on a map
US8438504B2 (en) * 2010-01-06 2013-05-07 Apple Inc. Device, method, and graphical user interface for navigating through multiple viewing areas
US8862576B2 (en) 2010-01-06 2014-10-14 Apple Inc. Device, method, and graphical user interface for mapping directions between search results
US8516063B2 (en) 2010-02-12 2013-08-20 Mary Anne Fletcher Mobile device streaming media application
US8365074B1 (en) 2010-02-23 2013-01-29 Google Inc. Navigation control for an electronic device
US9292161B2 (en) * 2010-03-24 2016-03-22 Microsoft Technology Licensing, Llc Pointer tool with touch-enabled precise placement
US8448084B2 (en) * 2010-04-08 2013-05-21 Twitter, Inc. User interface mechanics
CN102834729B (zh) * 2010-04-12 2015-01-07 诺基亚公司 选择相对定位方法
US9285988B2 (en) 2010-04-20 2016-03-15 Blackberry Limited Portable electronic device having touch-sensitive display with variable repeat rate
US8814673B1 (en) 2010-04-26 2014-08-26 Wms Gaming, Inc. Presenting lighting content in wagering game systems
US9367987B1 (en) 2010-04-26 2016-06-14 Bally Gaming, Inc. Selecting color in wagering game systems
US8840464B1 (en) 2010-04-26 2014-09-23 Wms Gaming, Inc. Coordinating media in a wagering game environment
US8912727B1 (en) 2010-05-17 2014-12-16 Wms Gaming, Inc. Wagering game lighting device chains
US9122707B2 (en) * 2010-05-28 2015-09-01 Nokia Technologies Oy Method and apparatus for providing a localized virtual reality environment
US8640020B2 (en) * 2010-06-02 2014-01-28 Microsoft Corporation Adjustable and progressive mobile device street view
JP2012002568A (ja) * 2010-06-15 2012-01-05 Brother Ind Ltd ナビゲーションシステム、携帯機器及び携帯機器用プログラム
US8249649B2 (en) 2010-07-02 2012-08-21 Google Inc. Mobile device configured to operate on multiple different networks
US8827805B1 (en) 2010-08-06 2014-09-09 Wms Gaming, Inc. Balancing community gaming effects
JP2012038271A (ja) * 2010-08-11 2012-02-23 Kyocera Corp 電子機器及びその制御方法
JP5514038B2 (ja) * 2010-08-16 2014-06-04 株式会社 ミックウェア ストリートビュー自動出力装置、地図自動出力装置、ストリートビュー自動出力方法、地図自動出力方法、およびプログラム
US20120050183A1 (en) 2010-08-27 2012-03-01 Google Inc. Switching display modes based on connection state
US20120084737A1 (en) 2010-10-01 2012-04-05 Flextronics Id, Llc Gesture controls for multi-screen hierarchical applications
US8797358B1 (en) 2010-11-02 2014-08-05 Google Inc. Optimizing display orientation
US8471869B1 (en) * 2010-11-02 2013-06-25 Google Inc. Optimizing display orientation
US9389774B2 (en) * 2010-12-01 2016-07-12 Sony Corporation Display processing apparatus for performing image magnification based on face detection
US8380427B2 (en) 2010-12-03 2013-02-19 Google Inc. Showing realistic horizons on mobile computing devices
US20130249792A1 (en) * 2010-12-03 2013-09-26 App.Lab Inc. System and method for presenting images
US8504114B1 (en) 2010-12-03 2013-08-06 Google Inc. Intelligent notifications with dynamic escalations
US20120159383A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Customization of an immersive environment
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US9423951B2 (en) * 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
CN103314394A (zh) * 2011-01-12 2013-09-18 界标制图有限公司 三维地球地层可视化
JP5769975B2 (ja) * 2011-01-18 2015-08-26 京セラ株式会社 携帯電子機器
JP5656661B2 (ja) * 2011-01-18 2015-01-21 京セラ株式会社 携帯電子機器
US8904305B2 (en) * 2011-03-11 2014-12-02 Google Inc. Automatically hiding controls
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US8810598B2 (en) 2011-04-08 2014-08-19 Nant Holdings Ip, Llc Interference based augmented reality hosting platforms
US20120262540A1 (en) * 2011-04-18 2012-10-18 Eyesee360, Inc. Apparatus and Method for Panoramic Video Imaging with Mobile Computing Devices
US8818706B1 (en) 2011-05-17 2014-08-26 Google Inc. Indoor localization and mapping
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US20120304132A1 (en) 2011-05-27 2012-11-29 Chaitanya Dev Sareen Switching back to a previously-interacted-with application
US8164599B1 (en) * 2011-06-01 2012-04-24 Google Inc. Systems and methods for collecting and providing map images
JP5918618B2 (ja) 2011-06-03 2016-05-18 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
CN102209259B (zh) * 2011-06-03 2014-06-25 Tcl集团股份有限公司 一种动态生成电影封面墙的方法及系统
US20120314899A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Natural user interfaces for mobile image viewing
JP5802450B2 (ja) * 2011-06-24 2015-10-28 オリンパス株式会社 撮像装置、無線システム
JP5753009B2 (ja) 2011-06-24 2015-07-22 オリンパス株式会社 撮像装置、無線システム
US20130007672A1 (en) * 2011-06-28 2013-01-03 Google Inc. Methods and Systems for Correlating Head Movement with Items Displayed on a User Interface
US20130006953A1 (en) * 2011-06-29 2013-01-03 Microsoft Corporation Spatially organized image collections on mobile devices
US8810533B2 (en) 2011-07-20 2014-08-19 Z124 Systems and methods for receiving gesture inputs spanning multiple input devices
US20130021376A1 (en) * 2011-07-20 2013-01-24 Motorola Mobility, Inc. Changing Orientation of Displayed Data Responsive to Window Resizing
US8687023B2 (en) 2011-08-02 2014-04-01 Microsoft Corporation Cross-slide gesture to select and rearrange
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US9317196B2 (en) 2011-08-10 2016-04-19 Microsoft Technology Licensing, Llc Automatic zooming for text selection/cursor placement
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US20130060395A1 (en) * 2011-09-02 2013-03-07 Hunt Energy Iq, Lp Automated field provisioning for energy management systems
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US8933952B2 (en) 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US20130074015A1 (en) * 2011-09-20 2013-03-21 Paul William Watkinson System to scroll text on a small display screen
US20130076653A1 (en) 2011-09-27 2013-03-28 Mohammed Selim Displaying of charging status on dual screen device
US9121724B2 (en) * 2011-09-30 2015-09-01 Apple Inc. 3D position tracking for panoramic imagery navigation
US9569066B2 (en) * 2011-10-03 2017-02-14 Google Inc. Interface for navigating imagery
US8738284B1 (en) 2011-10-12 2014-05-27 Google Inc. Method, system, and computer program product for dynamically rendering transit maps
US9239246B2 (en) 2011-10-19 2016-01-19 Google Inc. Method, system, and computer program product for visual disambiguation for directions queries
US8589075B1 (en) * 2011-10-19 2013-11-19 Google Inc. Method, system, and computer program product for visualizing trip progress
KR20130049293A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 사용자 디바이스에서 스크롤링 방법 및 장치
US20130143657A1 (en) * 2011-11-14 2013-06-06 Amazon Technologies, Inc. Input Mapping Regions
US9870429B2 (en) * 2011-11-30 2018-01-16 Nokia Technologies Oy Method and apparatus for web-based augmented reality application viewer
US9158520B2 (en) 2011-12-07 2015-10-13 Yahoo! Inc. Development of platform independent applications
US9197720B2 (en) 2011-12-07 2015-11-24 Yahoo! Inc. Deployment and hosting of platform independent applications
US9268546B2 (en) 2011-12-07 2016-02-23 Yahoo! Inc. Deployment and hosting of platform independent applications
US9235398B2 (en) * 2011-12-07 2016-01-12 Yahoo! Inc. Development of platform independent applications
US8880496B2 (en) 2011-12-18 2014-11-04 Microsoft Corporation Map-based selection of query component
US9223472B2 (en) 2011-12-22 2015-12-29 Microsoft Technology Licensing, Llc Closing applications
US9569057B2 (en) * 2012-01-05 2017-02-14 Sony Corporation Information processing apparatus and method for outputting a guiding operation to a user
US9128605B2 (en) 2012-02-16 2015-09-08 Microsoft Technology Licensing, Llc Thumbnail-image selection of applications
USD747711S1 (en) 2012-02-24 2016-01-19 Samsung Electronics Co., Ltd. Portable electronic device
USD733123S1 (en) 2012-02-24 2015-06-30 Samsung Electronics Co., Ltd. Portable electronic device
USD702219S1 (en) 2012-02-24 2014-04-08 Samsung Electronics Co., Ltd. Portable electronic device
USD702220S1 (en) 2012-02-24 2014-04-08 Samsung Electronics Co., Ltd. Portable electronic device
US9170113B2 (en) 2012-02-24 2015-10-27 Google Inc. System and method for mapping an indoor environment
US9280526B1 (en) * 2012-04-13 2016-03-08 Joingo, Llc Mobile application utilizing accelerometer-based control
CN102693089A (zh) * 2012-04-21 2012-09-26 上海量明科技发展有限公司 通过截图实现放大功能的方法及客户端
JP5906135B2 (ja) * 2012-05-21 2016-04-20 株式会社ゼンリンデータコム 地図画像生成装置及びプログラム
US9322665B2 (en) * 2012-06-05 2016-04-26 Apple Inc. System and method for navigation with inertial characteristics
US9146666B2 (en) * 2012-06-21 2015-09-29 Sharp Laboratories Of America, Inc. Touch sensor navigation
US20140089850A1 (en) * 2012-09-22 2014-03-27 Tourwrist, Inc. Systems and Methods of Using Motion Control to Navigate Panoramas and Virtual Tours
US9507513B2 (en) * 2012-08-17 2016-11-29 Google Inc. Displaced double tap gesture
USD700165S1 (en) 2012-08-28 2014-02-25 Samsung Electronics Co., Ltd. Portable electronic device
USD761772S1 (en) 2012-08-28 2016-07-19 Samsung Electronics Co., Ltd. Portable electronic device
USD728612S1 (en) * 2012-09-07 2015-05-05 Apple Inc. Display screen or portion thereof with graphical user interface
US8678903B1 (en) * 2012-09-13 2014-03-25 Chia-Yen Lin Mobile device having a virtual spin wheel and virtual spin wheel control method of the same
US20140085311A1 (en) * 2012-09-24 2014-03-27 Co-Operwrite Limited Method and system for providing animated font for character and command input to a computer
US9020845B2 (en) 2012-09-25 2015-04-28 Alexander Hieronymous Marlowe System and method for enhanced shopping, preference, profile and survey data input and gathering
US9292151B1 (en) * 2012-09-28 2016-03-22 Inkling Systems, Inc. Mobile computing device user interface for interactive electronic works
US9743242B2 (en) * 2012-10-01 2017-08-22 International Mobile Iot Corp. Earth positioning system
TWI487931B (zh) * 2012-10-01 2015-06-11 Internat Mobile Iot Corp 地表定位系統
US9124795B2 (en) 2012-10-26 2015-09-01 Nokia Technologies Oy Method and apparatus for obtaining an image associated with a location of a mobile terminal
US9229632B2 (en) 2012-10-29 2016-01-05 Facebook, Inc. Animation sequence associated with image
US9286285B1 (en) 2012-10-30 2016-03-15 Google Inc. Formula editor
US8826178B1 (en) 2012-11-06 2014-09-02 Google Inc. Element repositioning-based input assistance for presence-sensitive input devices
US9235321B2 (en) 2012-11-14 2016-01-12 Facebook, Inc. Animation sequence associated with content item
US9684935B2 (en) 2012-11-14 2017-06-20 Facebook, Inc. Content composer for third-party applications
US9696898B2 (en) 2012-11-14 2017-07-04 Facebook, Inc. Scrolling through a series of content items
US9606695B2 (en) 2012-11-14 2017-03-28 Facebook, Inc. Event notification
US9607289B2 (en) 2012-11-14 2017-03-28 Facebook, Inc. Content type filter
US9081410B2 (en) 2012-11-14 2015-07-14 Facebook, Inc. Loading content on electronic device
US9547416B2 (en) 2012-11-14 2017-01-17 Facebook, Inc. Image presentation
US9507483B2 (en) 2012-11-14 2016-11-29 Facebook, Inc. Photographs with location or time information
US9606717B2 (en) 2012-11-14 2017-03-28 Facebook, Inc. Content composer
US9507757B2 (en) 2012-11-14 2016-11-29 Facebook, Inc. Generating multiple versions of a content item for multiple platforms
US9547627B2 (en) 2012-11-14 2017-01-17 Facebook, Inc. Comment presentation
US9245312B2 (en) * 2012-11-14 2016-01-26 Facebook, Inc. Image panning and zooming effect
US9218188B2 (en) 2012-11-14 2015-12-22 Facebook, Inc. Animation sequence associated with feedback user-interface element
US9111011B2 (en) 2012-12-10 2015-08-18 Google Inc. Local query suggestions
US10372808B1 (en) 2012-12-12 2019-08-06 Google Llc Passing functional spreadsheet data by reference
US9606709B2 (en) * 2012-12-27 2017-03-28 Google Inc. System and method for geographic data layer management in a geographic information system
TWI494581B (zh) * 2013-01-15 2015-08-01 Ind Tech Res Inst 基於磁場特徵之方位測定方法與系統
US9215448B2 (en) * 2013-01-31 2015-12-15 Here Global B.V. Stereo panoramic images
CN103116444B (zh) * 2013-02-07 2016-05-11 腾讯科技(深圳)有限公司 电子地图控制方法及电子地图装置
JP5805685B2 (ja) * 2013-02-27 2015-11-04 京セラ株式会社 電子機器、制御方法、及び制御プログラム
US9031783B2 (en) * 2013-02-28 2015-05-12 Blackberry Limited Repositionable graphical current location indicator
US9377940B2 (en) * 2013-02-28 2016-06-28 Facebook, Inc. Predictive pre-decoding of encoded media item
US20140282143A1 (en) * 2013-03-14 2014-09-18 Michael Matas Modifying Content of Components in a User Interface
US9450952B2 (en) 2013-05-29 2016-09-20 Microsoft Technology Licensing, Llc Live tiles without application-code execution
DE102013006026A1 (de) * 2013-04-08 2014-10-09 Audi Ag Orientierungszoom in Navigationskarten bei Darstellung auf kleinen Bildschirmen
US9910579B2 (en) 2013-04-15 2018-03-06 Microsoft Technology Licensing, Llc Detection of pan and scaling during multi-finger touch interactions
KR20140124179A (ko) * 2013-04-16 2014-10-24 삼성전자주식회사 관심 지역의 이미지에 광고 컨텐츠를 합성하는 전자 장치 및 방법
KR102131358B1 (ko) * 2013-06-17 2020-07-07 삼성전자주식회사 유저 인터페이스 장치 및 유저 인터페이스 장치의 동작 방법
US9311289B1 (en) 2013-08-16 2016-04-12 Google Inc. Spreadsheet document tab conditional formatting
KR102222336B1 (ko) * 2013-08-19 2021-03-04 삼성전자주식회사 맵 화면을 디스플레이 하는 사용자 단말 장치 및 그 디스플레이 방법
US10289301B2 (en) * 2013-09-14 2019-05-14 Changwat TUMWATTANA Gesture-based selection and manipulation method
US9891812B2 (en) * 2013-09-14 2018-02-13 Changwat TUMWATTANA Gesture-based selection and manipulation method
US9176657B2 (en) * 2013-09-14 2015-11-03 Changwat TUMWATTANA Gesture-based selection and manipulation method
US8823734B1 (en) * 2013-10-14 2014-09-02 Google Inc. Indicating availability of indoor content on a digital map
US9582516B2 (en) 2013-10-17 2017-02-28 Nant Holdings Ip, Llc Wide area augmented reality location-based services
GB201319333D0 (en) * 2013-11-01 2013-12-18 Microsoft Corp Controlling display of video data
US10126913B1 (en) * 2013-11-05 2018-11-13 Google Llc Interactive digital map including context-based photographic imagery
CN103785169A (zh) * 2013-12-18 2014-05-14 微软公司 混合现实的竞技场
KR20150096956A (ko) * 2014-02-17 2015-08-26 삼성전자주식회사 전자 장치에서 정보를 표시하는 방법 및 장치
US9619927B2 (en) * 2014-02-21 2017-04-11 International Business Machines Corporation Visualization of objects along a street
WO2015149347A1 (en) 2014-04-04 2015-10-08 Microsoft Technology Licensing, Llc Expandable application representation
CN105378582B (zh) 2014-04-10 2019-07-23 微软技术许可有限责任公司 计算设备的可折叠壳盖
KR20160143784A (ko) 2014-04-10 2016-12-14 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 컴퓨팅 디바이스용 슬라이더 커버
USD763882S1 (en) * 2014-04-25 2016-08-16 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with animated graphical user interface
USD765110S1 (en) * 2014-04-25 2016-08-30 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with animated graphical user interface
USD758386S1 (en) * 2014-04-29 2016-06-07 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with an animated graphical user interface
DE102014106007A1 (de) * 2014-04-29 2015-10-29 Targeteam Services Und It Gmbh Verfahren zum Anzeigen und Aktualisieren von an einer Benutzerschnittstelle angezeigten Dokumenten
US9959265B1 (en) 2014-05-08 2018-05-01 Google Llc Populating values in a spreadsheet using semantic cues
US10474671B2 (en) 2014-05-12 2019-11-12 Google Llc Interpreting user queries based on nearby locations
KR102201095B1 (ko) 2014-05-30 2021-01-08 애플 인크. 하나의 디바이스의 사용으로부터 다른 디바이스의 사용으로의 전환
CN104471519B (zh) 2014-06-16 2020-09-25 华为技术有限公司 移动终端中呈现全景照片的方法和装置、以及移动终端
FR3022369A1 (fr) * 2014-06-17 2015-12-18 Orange Procede de selection d’un element dans une liste
US9483868B1 (en) 2014-06-30 2016-11-01 Kabam, Inc. Three-dimensional visual representations for mobile devices
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US9684425B2 (en) 2014-08-18 2017-06-20 Google Inc. Suggesting a target location upon viewport movement
CN106537381B (zh) 2014-08-20 2019-08-20 谷歌有限责任公司 基于装置定向解释用户查询
EP3189413A4 (en) * 2014-09-04 2018-04-25 Urban Engines, Inc. Stack of maps
US10642365B2 (en) 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
US10074401B1 (en) * 2014-09-12 2018-09-11 Amazon Technologies, Inc. Adjusting playback of images using sensor data
CN106662891B (zh) 2014-10-30 2019-10-11 微软技术许可有限责任公司 多配置输入设备
US10372319B2 (en) * 2014-11-13 2019-08-06 Here Global B.V. Method, apparatus and computer program product for enabling scrubbing of a media file
WO2016095176A1 (en) * 2014-12-18 2016-06-23 Nokia Technologies Oy Interacting with a perspective view
JP6312866B2 (ja) * 2015-01-23 2018-04-18 マクセル株式会社 表示装置および表示方法
USD784366S1 (en) * 2015-02-25 2017-04-18 Lg Electronics Inc. Display panel with animated graphical user interface
US9361011B1 (en) 2015-06-14 2016-06-07 Google Inc. Methods and systems for presenting multiple live video feeds in a user interface
USD803241S1 (en) 2015-06-14 2017-11-21 Google Inc. Display screen with animated graphical user interface for an alert screen
US10133443B2 (en) 2015-06-14 2018-11-20 Google Llc Systems and methods for smart home automation using a multifunction status and entry point icon
USD809522S1 (en) 2015-06-14 2018-02-06 Google Inc. Display screen with animated graphical user interface for an alert screen
USD807376S1 (en) 2015-06-14 2018-01-09 Google Inc. Display screen with animated graphical user interface for smart home automation system having a multifunction status
USD797131S1 (en) 2015-06-14 2017-09-12 Google Inc. Display screen with user interface for mode selector icons
USD796540S1 (en) * 2015-06-14 2017-09-05 Google Inc. Display screen with graphical user interface for mobile camera history having event-specific activity notifications
USD812076S1 (en) 2015-06-14 2018-03-06 Google Llc Display screen with graphical user interface for monitoring remote video camera
US9652125B2 (en) * 2015-06-18 2017-05-16 Apple Inc. Device, method, and graphical user interface for navigating media content
EP3124915A1 (en) 2015-07-30 2017-02-01 Robert Bosch GmbH Method for operating a navigation device
US9769367B2 (en) 2015-08-07 2017-09-19 Google Inc. Speech and computer vision-based control
US9679413B2 (en) 2015-08-13 2017-06-13 Google Inc. Systems and methods to transition between viewpoints in a three-dimensional environment
US9928029B2 (en) 2015-09-08 2018-03-27 Apple Inc. Device, method, and graphical user interface for providing audiovisual feedback
US9990113B2 (en) 2015-09-08 2018-06-05 Apple Inc. Devices, methods, and graphical user interfaces for moving a current focus using a touch-sensitive remote control
US11009939B2 (en) 2015-09-10 2021-05-18 Verizon Media Inc. Methods and systems for generating and providing immersive 3D displays
US9836484B1 (en) 2015-12-30 2017-12-05 Google Llc Systems and methods that leverage deep learning to selectively store images at a mobile image capture device
US9838641B1 (en) 2015-12-30 2017-12-05 Google Llc Low power framework for processing, compressing, and transmitting images at a mobile image capture device
US9836819B1 (en) 2015-12-30 2017-12-05 Google Llc Systems and methods for selective retention and editing of images captured by mobile image capture device
US10225511B1 (en) 2015-12-30 2019-03-05 Google Llc Low power framework for controlling image sensor mode in a mobile image capture device
US10732809B2 (en) 2015-12-30 2020-08-04 Google Llc Systems and methods for selective retention and editing of images captured by mobile image capture device
USD797133S1 (en) * 2016-01-07 2017-09-12 Invisalert Solutions, LLC Display screen with graphical user interface
US10521101B2 (en) * 2016-02-09 2019-12-31 Microsoft Technology Licensing, Llc Scroll mode for touch/pointing control
CN105606114B (zh) * 2016-02-23 2019-11-22 腾讯科技(深圳)有限公司 一种车载导航方法、交互系统服务器、终端以及系统
US10637986B2 (en) 2016-06-10 2020-04-28 Apple Inc. Displaying and updating a set of application views
US10303352B2 (en) 2016-06-30 2019-05-28 Microsoft Technology Licensing, Llc Navigating long distances on navigable surfaces
US10263802B2 (en) 2016-07-12 2019-04-16 Google Llc Methods and devices for establishing connections with remote cameras
USD882583S1 (en) 2016-07-12 2020-04-28 Google Llc Display screen with graphical user interface
US20180063205A1 (en) * 2016-08-30 2018-03-01 Augre Mixed Reality Technologies, Llc Mixed reality collaboration
AU2017326335B2 (en) 2016-09-14 2022-03-10 Invisalert Solutions, LLC Tamper resistant clasp and wristband apparatus and associated patient monitoring system and method of use
US10386999B2 (en) 2016-10-26 2019-08-20 Google Llc Timeline-video relationship presentation for alert events
US11238290B2 (en) 2016-10-26 2022-02-01 Google Llc Timeline-video relationship processing for alert events
USD843398S1 (en) 2016-10-26 2019-03-19 Google Llc Display screen with graphical user interface for a timeline-video relationship presentation for alert events
USD819681S1 (en) * 2017-01-18 2018-06-05 Google Llc Display screen with graphical user interface
US10635275B2 (en) 2017-04-07 2020-04-28 Motorola Solutions, Inc. Multi-dimensional zone selection method in a communication device
US10972685B2 (en) 2017-05-25 2021-04-06 Google Llc Video camera assembly having an IR reflector
US10352496B2 (en) 2017-05-25 2019-07-16 Google Llc Stand assembly for an electronic device providing multiple degrees of freedom and built-in cables
US10819921B2 (en) 2017-05-25 2020-10-27 Google Llc Camera assembly having a single-piece cover element
CN107239531B (zh) * 2017-05-31 2020-08-25 国电南瑞科技股份有限公司 一种扩展GeoServer发布自定义瓦片WMS服务的实现方法
US20190007672A1 (en) 2017-06-30 2019-01-03 Bobby Gene Burrough Method and Apparatus for Generating Dynamic Real-Time 3D Environment Projections
KR101856548B1 (ko) * 2017-08-23 2018-05-11 링크플로우 주식회사 스트리트 뷰 서비스 방법 및 이러한 방법을 수행하는 장치
DE102018000459A1 (de) 2018-01-22 2019-07-25 Joachim Becker Verfahren und Vorrichtung zur Anzeige von nutzereigenen Vektorgraphiken mit intelligenten Infopunkten aus einem cloudbasierten CAD-Archiv auf Mobilgeräten, tragbaren oder stationären Computern
US11567627B2 (en) 2018-01-30 2023-01-31 Magic Leap, Inc. Eclipse cursor for virtual content in mixed reality displays
US10540941B2 (en) 2018-01-30 2020-01-21 Magic Leap, Inc. Eclipse cursor for mixed reality displays
US11922006B2 (en) 2018-06-03 2024-03-05 Apple Inc. Media control for screensavers on an electronic device
WO2019236344A1 (en) * 2018-06-07 2019-12-12 Magic Leap, Inc. Augmented reality scrollbar
USD906359S1 (en) 2018-07-05 2020-12-29 Invisalert Solutions, Inc. Display screen with graphical user interface
CN109289197A (zh) * 2018-08-22 2019-02-01 深圳点猫科技有限公司 一种在图形化编程平台下的跨屏显示方法及电子设备
US10671271B2 (en) 2018-10-22 2020-06-02 Nio Usa, Inc. Jog dial user interface device
US11046182B2 (en) 2018-10-22 2021-06-29 Nio Usa, Inc. System and method for providing momentum scrolling via a rotary user interface device
JP7193797B2 (ja) * 2018-11-06 2022-12-21 任天堂株式会社 ゲームプログラム、情報処理システム、情報処理装置、および、ゲーム処理方法
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11822761B2 (en) 2021-05-15 2023-11-21 Apple Inc. Shared-content session user interfaces
US11829710B2 (en) 2022-01-25 2023-11-28 Adobe Inc. Deriving global intent from a composite document to facilitate editing of the composite document
US20230359325A1 (en) * 2022-05-05 2023-11-09 Adobe Inc. User interface for editing of a composite document through intelligently zoomed previews

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7021A (en) * 1850-01-15 Substitute for the clevis
JP2813728B2 (ja) * 1993-11-01 1998-10-22 インターナショナル・ビジネス・マシーンズ・コーポレイション ズーム/パン機能付パーソナル通信機
US5754348A (en) * 1996-05-14 1998-05-19 Planetweb, Inc. Method for context-preserving magnification of digital image regions
US5999169A (en) * 1996-08-30 1999-12-07 International Business Machines Corporation Computer graphical user interface method and system for supporting multiple two-dimensional movement inputs
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7760187B2 (en) * 2004-07-30 2010-07-20 Apple Inc. Visual expander
US6266442B1 (en) * 1998-10-23 2001-07-24 Facet Technology Corp. Method and apparatus for identifying objects depicted in a videostream
US6400376B1 (en) 1998-12-21 2002-06-04 Ericsson Inc. Display control for hand-held data processing device
FR2801158B1 (fr) * 1999-11-17 2002-03-08 Sagem Appareil portable comportant des moyens d'orientation procede d'utilisation d'un tel appareil et procede d'orientation correspondant
US20020015064A1 (en) * 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
US7308653B2 (en) * 2001-01-20 2007-12-11 Catherine Lin-Hendel Automated scrolling of browser content and automated activation of browser links
US6956590B1 (en) 2001-02-28 2005-10-18 Navteq North America, Llc Method of providing visual continuity when panning and zooming with a map display
US6798429B2 (en) 2001-03-29 2004-09-28 Intel Corporation Intuitive mobile device interface to virtual spaces
FI117488B (fi) 2001-05-16 2006-10-31 Myorigo Sarl Informaation selaus näytöllä
US6452544B1 (en) 2001-05-24 2002-09-17 Nokia Corporation Portable map display system for presenting a 3D map image and method thereof
JP2003005912A (ja) * 2001-06-20 2003-01-10 Hitachi Ltd タッチパネル付きディスプレイ装置及び表示方法
US7075513B2 (en) 2001-09-04 2006-07-11 Nokia Corporation Zooming and panning content on a display screen
US7324085B2 (en) 2002-01-25 2008-01-29 Autodesk, Inc. Techniques for pointing to locations within a volumetric display
US7576756B1 (en) * 2002-02-21 2009-08-18 Xerox Corporation System and method for interaction of graphical objects on a computer controlled system
US7107285B2 (en) 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
GB2387519B (en) 2002-04-08 2005-06-22 Canon Europa Nv Viewing controller for three-dimensional computer graphics
JP3893539B2 (ja) * 2002-04-23 2007-03-14 株式会社日立ハイテクノロジーズ 形状測定方法及びその装置
US20030210281A1 (en) * 2002-05-07 2003-11-13 Troy Ellis Magnifying a thumbnail image of a document
JP2004005272A (ja) 2002-05-31 2004-01-08 Cad Center:Kk 仮想空間移動制御装置及び制御方法並びに制御プログラム
JP2004053351A (ja) 2002-07-18 2004-02-19 Fujitsu Ten Ltd ナビゲーション装置
US7242387B2 (en) 2002-10-18 2007-07-10 Autodesk, Inc. Pen-mouse system
US6975959B2 (en) * 2002-12-03 2005-12-13 Robert Bosch Gmbh Orientation and navigation for a mobile device using inertial sensors
US7369102B2 (en) * 2003-03-04 2008-05-06 Microsoft Corporation System and method for navigating a graphical user interface on a smaller display
KR100703444B1 (ko) * 2003-06-03 2007-04-03 삼성전자주식회사 네비게이션 시스템에서 위치 정보에 관련된 영상의 다운로드 및 표시 장치 및 방법
US7383123B2 (en) * 2003-06-03 2008-06-03 Samsung Electronics Co., Ltd. System and method of displaying position information including an image in a navigation system
US20050015731A1 (en) * 2003-07-15 2005-01-20 Microsoft Corporation Handling data across different portions or regions of a desktop
US7366995B2 (en) * 2004-02-03 2008-04-29 Roland Wescott Montague Combination tool that zooms in, zooms out, pans, rotates, draws, or manipulates during a drag
JP4297804B2 (ja) 2004-02-19 2009-07-15 任天堂株式会社 ゲーム装置及びゲームプログラム
US7865301B2 (en) * 2004-03-23 2011-01-04 Google Inc. Secondary map in digital mapping system
US20060002590A1 (en) 2004-06-30 2006-01-05 Borak Jason M Method of collecting information for a geographic database for use with a navigation system
US7434173B2 (en) * 2004-08-30 2008-10-07 Microsoft Corporation Scrolling web pages using direct interaction
US7720436B2 (en) 2006-01-09 2010-05-18 Nokia Corporation Displaying network objects in mobile devices based on geolocation
US7236882B2 (en) * 2005-01-26 2007-06-26 Broadcom Corporation Downloading map segment(s) to a cell phone based upon its GPS coordinates and mobility
US20060271281A1 (en) 2005-05-20 2006-11-30 Myron Ahn Geographic information knowledge systems
JP5063871B2 (ja) 2005-06-15 2012-10-31 株式会社デンソー 携帯機用地図表示システム
US7626599B2 (en) * 2005-07-12 2009-12-01 Microsoft Corporation Context map in computer display magnification
CN1900888A (zh) * 2005-07-22 2007-01-24 鸿富锦精密工业(深圳)有限公司 显示装置及其显示控制方法
US7900158B2 (en) * 2005-08-04 2011-03-01 Microsoft Corporation Virtual magnifying glass with intuitive use enhancements
US7847792B2 (en) 2005-08-15 2010-12-07 Tektronix, Inc. Simple integrated control for zoom/pan functions
JP4783603B2 (ja) 2005-08-26 2011-09-28 株式会社デンソー 地図表示装置、地図表示方法、地図表示プログラム、及びそのプログラムを記録した記録媒体
JP4404830B2 (ja) 2005-09-28 2010-01-27 シャープ株式会社 操作システム
US7274377B2 (en) * 2005-10-28 2007-09-25 Seiko Epson Corporation Viewport panning feedback system
US20090295830A1 (en) * 2005-12-07 2009-12-03 3Dlabs Inc., Ltd. User interface for inspection of photographs
US7643673B2 (en) 2006-06-12 2010-01-05 Google Inc. Markup language for interactive geographic information system
JP4736996B2 (ja) * 2006-07-31 2011-07-27 株式会社デンソー 地図表示制御装置および地図表示制御プログラム
US7712052B2 (en) * 2006-07-31 2010-05-04 Microsoft Corporation Applications of three-dimensional environments constructed from images
US7889212B2 (en) * 2006-09-07 2011-02-15 Apple Inc. Magnifying visual information using a center-based loupe
US8277316B2 (en) * 2006-09-14 2012-10-02 Nintendo Co., Ltd. Method and apparatus for using a common pointing input to control 3D viewpoint and object targeting
US8698735B2 (en) 2006-09-15 2014-04-15 Lucasfilm Entertainment Company Ltd. Constrained virtual camera control
US8570278B2 (en) * 2006-10-26 2013-10-29 Apple Inc. Portable multifunction device, method, and graphical user interface for adjusting an insertion point marker
US20080134088A1 (en) * 2006-12-05 2008-06-05 Palm, Inc. Device for saving results of location based searches
US20080189650A1 (en) * 2007-02-05 2008-08-07 Sherryl Lee Lorraine Scott Method and system for cueing panning
KR101406289B1 (ko) * 2007-03-08 2014-06-12 삼성전자주식회사 스크롤 기반 아이템 제공 장치 및 방법
US7895533B2 (en) * 2007-03-13 2011-02-22 Apple Inc. Interactive image thumbnails
US8688368B2 (en) * 2007-04-09 2014-04-01 Microsoft Corporation Image-based localization for addresses
RU2009148311A (ru) * 2007-06-04 2011-07-20 Томтом Интернэшнл Б.В. (Nl) Устройство обработки данных местоположения и способ импортирования информации о местоположении
US8204684B2 (en) * 2007-06-28 2012-06-19 Apple Inc. Adaptive mobile device navigation
US8238662B2 (en) * 2007-07-17 2012-08-07 Smart Technologies Ulc Method for manipulating regions of a digital image
US20090109243A1 (en) * 2007-10-25 2009-04-30 Nokia Corporation Apparatus and method for zooming objects on a display
US20090119614A1 (en) * 2007-11-07 2009-05-07 Nokia Corporation Method, Apparatus and Computer Program Product for Heirarchical Navigation with Respect to Content Items of a Media Collection
US20090131081A1 (en) * 2007-11-19 2009-05-21 Research In Motion Limited Adjusting wlan scanning parameters based on rate of change of location of mobile device
US8504945B2 (en) * 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
US7952596B2 (en) * 2008-02-11 2011-05-31 Sony Ericsson Mobile Communications Ab Electronic devices that pan/zoom displayed sub-area within video frames in response to movement therein
US20090241059A1 (en) * 2008-03-20 2009-09-24 Scott David Moore Event driven smooth panning in a computer accessibility application
US8170186B2 (en) * 2008-04-07 2012-05-01 Sony Mobile Communications Ab Electronic device with motion controlled functions
WO2009128899A1 (en) 2008-04-14 2009-10-22 Google Inc. Swoop navigation
US20090303251A1 (en) 2008-06-10 2009-12-10 Andras Balogh Displaying, processing and storing geo-located information
US8700301B2 (en) 2008-06-19 2014-04-15 Microsoft Corporation Mobile computing devices, architecture and user interfaces based on dynamic direction information
JP2012501016A (ja) 2008-08-22 2012-01-12 グーグル インコーポレイテッド モバイルデバイス上の3次元環境内でのナビゲーション
KR20100041006A (ko) 2008-10-13 2010-04-22 엘지전자 주식회사 3차원 멀티 터치를 이용한 사용자 인터페이스 제어방법
KR20100050103A (ko) 2008-11-05 2010-05-13 엘지전자 주식회사 맵 상에서의 3차원 개체 제어방법과 이를 이용한 이동 단말기
US8788977B2 (en) 2008-11-20 2014-07-22 Amazon Technologies, Inc. Movement recognition as input mechanism
US8294766B2 (en) 2009-01-28 2012-10-23 Apple Inc. Generating a three-dimensional model using a portable electronic device recording
US20100188397A1 (en) 2009-01-28 2010-07-29 Apple Inc. Three dimensional navigation using deterministic movement of an electronic device
US20100208033A1 (en) 2009-02-13 2010-08-19 Microsoft Corporation Personal Media Landscapes in Mixed Reality
US20110205229A1 (en) 2010-02-23 2011-08-25 Google Inc. Portable Globe Creation for a Geographical Information System
US8683387B2 (en) 2010-03-03 2014-03-25 Cast Group Of Companies Inc. System and method for visualizing virtual objects on a mobile device
US8321166B2 (en) 2010-03-17 2012-11-27 Qualcomm Incorporated Methods and systems for wireless platform attitude determination
US9134799B2 (en) 2010-07-16 2015-09-15 Qualcomm Incorporated Interacting with a projected user interface using orientation sensors
WO2012018497A2 (en) 2010-07-25 2012-02-09 Raytheon Company ENHANCED SITUATIONAL AWARENESS AND TARGETING (eSAT) SYSTEM

Also Published As

Publication number Publication date
US10031656B1 (en) 2018-07-24
CA2725542A1 (en) 2009-12-23
US8584035B2 (en) 2013-11-12
DE202009019125U1 (de) 2016-12-05
AU2009260486B2 (en) 2014-08-21
US8291341B2 (en) 2012-10-16
US20100031186A1 (en) 2010-02-04
WO2009155071A3 (en) 2011-03-31
EP2318897A4 (en) 2014-12-17
US20090325607A1 (en) 2009-12-31
US9256355B1 (en) 2016-02-09
CN102187694A (zh) 2011-09-14
US20130007654A1 (en) 2013-01-03
CA2725542C (en) 2016-12-13
WO2009155071A2 (en) 2009-12-23
JP5658144B2 (ja) 2015-01-21
US8984436B1 (en) 2015-03-17
AU2009260486A1 (en) 2009-12-23
JP2011526707A (ja) 2011-10-13
EP2318897B1 (en) 2018-05-16
KR101534789B1 (ko) 2015-07-07
US8948788B2 (en) 2015-02-03
EP2318897A2 (en) 2011-05-11

Similar Documents

Publication Publication Date Title
US10031656B1 (en) Zoom-region indicator for zooming in an electronic interface
US8863041B1 (en) Zooming user interface interactions
JP5918144B2 (ja) 携帯用装置のユーザーインターフェース提供方法及び装置
JP5951781B2 (ja) 多次元インターフェース
US8266550B1 (en) Parallax panning of mobile device desktop
KR101668398B1 (ko) 터치 스크린과의 사용자 상호작용을 입력 커맨드로 번역
KR20210136176A (ko) 컴퓨팅 디바이스 인터렉션에 응답하여 비디오 미리보기
KR20100126718A (ko) 모바일 디바이스 이벤트의 통지
KR102343361B1 (ko) 전자 기기 및 이의 웹 페이지 디스플레이 방법
US10156979B2 (en) Method and apparatus for providing user interface of portable device
US20140365968A1 (en) Graphical User Interface Elements
CN109844709B (zh) 用于呈现信息的方法和计算机化系统
US10514826B2 (en) Contextual command bar
US9886167B2 (en) Display apparatus and control method thereof

Legal Events

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

Payment date: 20180626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190625

Year of fee payment: 5