KR101633836B1 - 개인 정보를 주소좌표로 변환 - Google Patents

개인 정보를 주소좌표로 변환 Download PDF

Info

Publication number
KR101633836B1
KR101633836B1 KR1020117011633A KR20117011633A KR101633836B1 KR 101633836 B1 KR101633836 B1 KR 101633836B1 KR 1020117011633 A KR1020117011633 A KR 1020117011633A KR 20117011633 A KR20117011633 A KR 20117011633A KR 101633836 B1 KR101633836 B1 KR 101633836B1
Authority
KR
South Korea
Prior art keywords
location
map
user
data
personal
Prior art date
Application number
KR1020117011633A
Other languages
English (en)
Other versions
KR20110081863A (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 KR20110081863A publication Critical patent/KR20110081863A/ko
Application granted granted Critical
Publication of KR101633836B1 publication Critical patent/KR101633836B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3874Structures specially adapted for data searching and retrieval
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto

Abstract

주소좌표로 변환된 사용자 정보를 생성하기 위한 컴퓨터로 구현되는 방법에 대해 개시한다. 상기 방법은 위치-관련 정보를 가진 입력들을 다수의 다른 데이터 코퍼스들에 걸친 사용자 데이터에서 검색하는 단계 및 상기 위치-관련 정보에 대해 위치들을 결정하는 단계를 포함한다. 상기 방법은 상기 다수의 다른 데이터 코퍼스들로부터의 입력들에 대하여, 상기 결정된 위치들에서, 위치-관련 정보를 가진 상기 입력들의 표시들과 더불어 모바일 디바이스의 현재 위치를 보여주는 지도를 생성하는 단계를 포함한다.

Description

개인 정보를 주소좌표로 변환{GEOCODING PERSONAL INFORMATION}
본 출원은, 2008년 10월 22일에 출원되고 발명의 명칭이 "개인 정보를 주소좌표로 변환"인 미국 특허 출원 번호 12/256,078에 대한 우선권을 주장하며, 이 출원의 개시 내용은 그 전체가 참조로써 본 명세서에 통합된다.
본 명세서는 개인 데이터를 전자적 디스플레이에 포함시키는 것에 관한 것이다.
캘린더, 주소록 및 업무 리스트와 같은 개인 정보 관리(PIM; personal information management) 프로그램을 기초로 한 웹(web)의 등장과 함께, 집 또는 사무실에서 주로 많은 시간을 보내는 사람들은 그들의 일별 업무를 관리하기 위해 이러한 웹 어플리케이션에 의존해왔다. 사실상 온라인 또는 모바일 PIM 어플리케이션들은 대개, 일부 사용자들이 중요한 개인 정보를 기록하는 유일한 장소이다. 가끔 PDA(personal digital assistants)와 스마트폰과 같은 최신 휴대용 컴퓨팅 디바이스들은, 사용자가 특정한 위치에 구애되지 않고 인터넷 상에서 저장된 정보에 액세스(access)하도록 허용하지만, 일반적으로 PDA에 의하면 사용자는 외부와 단절된 상태에서 즉, 다른 디바이스들 또는 다른 인터넷 어플리케이션에 저장된 정보에 의해 제공된 상황 정보(context) 없이, 정보를 볼 수밖에 없다.
상황 정보는 예컨대, 사용자가 자동차를 운전할 때와 같이 사용자가 휴대용 컴퓨팅 디바이스 상에만 집중할 수 없을 때, 특히 중요할 수 있다. 예를 들어, 사용자가 운전하고 있을 때, 그 사용자는 내비게이션 시스템에 의해 제공된 방향으로 운전할 필요가 있고, 동시에 PDA에 의해 액세스할 수 있는 웹 어플리케이션에 저장된 연락처를 원할 수 있다. 도로, 내비게이션 시스템 및 PDA 사이에서 초점을 전환하는 것은 운전자뿐만 아니라 도로 위의 다른 사람들에게도 비참한 결과를 초래할 수 있다.
일반적으로, 본 명세서는 개인적인 데이터를 가진 비주얼 디스플레이 또는 다른 출력(예컨대, 청각적 또는 촉각적)들을 향상시키는 것에 대해 설명한다. 특히, 사용자의 많은 개인적인 어플리케이션에 있는 엔트리들과 관련된 위치-관련 데이터는 그러한 어플리케이션들로부터 스크랩될 수 있고, 그 엔트리들에 대한 아이콘들은 사용자의 휴대용 컴퓨팅 디바이스상의 지도 위에 겹쳐질 수 있다. 그러한 개인 어플리케이션들은 업무, 약속 또는 캘린더, 및 연락처 어플리케이션들을 포함할 수 있고, 위치-관련 정보는 연락처의 주소 또는 예정된 미팅에 대한 설명에 리스트화되어 있는 주소 정보와 같은 정보를 포함할 수 있다. 위치-관련 정보는 주소좌표로 변환될 수 있고, 각각의 엔트리에 대한 아이콘은 사용자의 현재 위치를 보여주는, 개인 내비게이션 디바이스(매핑 어플리케이션을 구동하는 모바일 스마트폰일 수도 있음) 상의 지도와 같은 지도 위에 디스플레이 될 수 있다.
예를 들어, 사용자는 하나 이상의 어플리케이션에 개인 데이터를 저장할 수 있고, 개인 데이터에 상응하는 물리적 위치들이 결정될 수 있다. 개인 데이터에 상응하는 물리적 위치들 중 하나 이상의 위치에 사용자가 다가감에 따라서, 사용자가 소유한 모바일 컴퓨팅 디바이스의 디스플레이는 물리적 위치에 관련된 개인 데이터의 표시(indication)를 포함하도록 업데이트될 수 있다. 원한다면, 사용자가 적절한 아이콘을 선택함으로써 디바이스에 디스플레이된 개인 데이터와 관련된 추가적인 정보를 얻을 수 있다.
일 구현에 있어서, 주소좌표로 변환된 사용자 정보(geocoded user information)를 생성하기 위한 컴퓨터로 구현되는 방법을 개시한다. 상기 방법은 위치-관련 정보를 가진 입력들을 다수의 다른 데이터 코퍼스들(corpuses)에 걸친 사용자 데이터에서 검색하는 단계; 상기 위치-관련 정보에 대해 위치들을 결정하는 단계; 및 상기 다수의 다른 데이터 코퍼스들로부터의 입력들에 대하여, 상기 결정된 위치들에서, 위치-관련 정보를 가진 상기 입력들의 표시들과 더불어 모바일 디바이스의 현재 위치를 보여주는 지도를 생성하는 단계를 포함하는 방법을 포함한다.
일부 측면에 있어서, 상기 지도를 디스플레이하기 위한 데이터는 원격 서버로부터 수신되고, 상기 입력들에 대한 데이터는 로컬 디바이스(local device)로부터 수신되어 지도 위에 오버레이(overlaid)된다. 또한, 상기 지도가 디스플레이하는 지리(geography)의 바깥 가장자리에서부터 결정된 거리에 있는 이벤트들을 위한 입력들을 나타내는 아이콘을 상기 지도 위에 디스플레이하는 단계를 더 포함한다. 추가로, 상기 위치-관련 정보에 대한 위치들을 결정하는 단계는, 설명적인(descriptive) 위치-기반 데이터를 원격 서버로 전송하는 단계 및 주소좌표로 변환된 정보를 응답으로 수신하는 단계를 더 포함한다. 임의의 측면에 있어서, 상기 사용자 데이터와 관련된 쿼리(query)를 원격 로컬 검색 엔진에 제출하는 단계 및 상기 쿼리에 응답하여 수신된 데이터를 나타내는 아이콘을 상기 입력들의 표시와 함께 디스플레이하는 단계를 더 포함한다.
또 다른 구현에 있어서, 명령들(instructions)이 기록되고 저장된 유형 매체로서, 상기 명령들은 실행되면 수행되는 동작에 대해 개시한다. 상기 동작은 위치-관련 정보를 가진 입력들을 다수의 다른 데이터 코퍼스들(corpuses)에 걸친 사용자 데이터에서 검색하는 단계, 상기 위치-관련 정보에 대해 위치들을 결정하는 단계, 및 상기 다수의 다른 데이터 코퍼스들로부터의 입력들에 대하여, 상기 결정된 위치들에서, 위치-관련 정보를 가진 상기 입력들의 표시들과 더불어 모바일 디바이스의 현재 위치를 보여주는 지도를 생성하는 단계를 포함한다.
임의의 측면에 있어서, 지도를 생성하기 위한 상기 명령은, 상기 지도가 디스플레이하는 지리의 바깥 가장자리에서부터 결정된 거리에 있는 이벤트들을 위한 입력들을 나타내는 아이콘을 상기 지도 위에 디스플레이하기 위한 명령을 더 포함한다. 또한 지도를 생성하기 위한 상기 명령은, 상기 지도상에서 패닝 동작을 수신하고, 상기 지도상의 새로운 위치에 매치하기 위해 상기 지도의 디스플레이 및 상기 입력들을 업데이트하기 위한 명령을 더 포함한다. 추가로, 상기 명령은 상기 지도상에서 패닝 동작을 수신하고, 상기 지도상의 새로운 위치에 매치하기 위해 상기 지도의 디스플레이 및 상기 입력들을 업데이트하기 위한 명령을 더 포함한다.
개인 정보를 주소좌표로 변환하는 하나 이상의 실시예에 대한 세부사항은 아래 도면 및 설명을 병합하여 설명한다. 개인 정보를 주소좌표로 변환하는 것에 대한 다른 특징 및 장점은 상세한 설명 및 도면, 및 청구항으로부터 나타날 것이다.
여기서 설명한 시스템 및 기술들은 후술하는 하나 이상의 장점들을 제공할 수 있다. 첫째로, 시스템은 다양한 어플리케이션들로부터 개인적 정보를 주소좌표로 변환할 수 있고, 공통 디스플레이에 다양한 타입의 정보를 병합하는 방식으로 사용자에게 정보를 디스플레이할 수 있다. 둘째로, 시스템은 시각적 디스플레이의 현재 범위 밖에 있는 엔트리들을 가리키는 것을 포함하여, 가까운 연락처 및 이벤트들로 전자적 디스플레이를 증대시킬 수 있다.
도 1은 주소좌표로 변환된 사용자 정보를 디스플레이할 수 있는 예시적인 매핑(mapping) 시스템의 개념도이다.
도 2a는 주소좌표로 변환된 사용자 정보를 디스플레이할 수 있는 예시적인 매핑 시스템의 블록도이다.
도 2b는 주소좌표로 변환된 사용자 정보를 디스플레이할 수 있는 매핑 시스템의 대안적인 구현을 도시한 것이다.
도 3a는 주소좌표로 변환된 사용자 정보를 포함하는 지도를 만들기 위한 예시적인 프로세스를 도시하는 플로우차트(flowchart)이다.
도 3b는 주소좌표로 변환된 사용자 정보를 포함하는 지도를 만들기 위한 대안적인 예시적 방법을 도시하는 플로우차트이다.
도 4a는 클라이언트-서버 환경에서 주소좌표로 변환된 사용자 정보를 포함하는 지도를 만들기 위한 예시적인 방법을 도시한다.
도 4b는 클라언트-서버 환경에서 주소좌표로 변환된 사용자 정보를 포함하는 지도를 만들기 위한 대안적인 예시적 방법을 도시한다.
도 5는 예시적인 매핑 시스템의 다양한 측면을 구현하는 예시적 디바이스의 외관을 도시한다.
도 6은 도 5의 디바이스의 내부 구조를 도시하는 블록도이다.
도 7은 운영 시스템이 구글(GOOGLE) 모바일 디바이스 플랫폼인 경우에 있어서, 디바이스에 의해 사용되는 운영 체계의 예시적 구성 요소를 도시하는 블록도이다.
도 8은 유저스페이스(userspace) 맨 위에서 운영 체계 커널로 실행되는 예시적 프로세스를 도시하는 블록도이다.
도 9는 본 명세서에서 설명되는 기술을 구현하기 위해 사용될 수 있는 일반적인 컴퓨터 디바이스와 일반적 모바일 컴퓨터 디바이스의 일 실시예를 도시한다.
여러 도면에 있어서 유사한 참조 부호는 유사한 요소를 가리킨다.
본 명세서는 주소좌표로 변환된 사용자 정보(geocoded user information)를 포함하는 지도들을 생성하기 위한 시스템 및 기술에 대해 설명한다. 사용자 데이터는 하나 이상의 데이터베이스로부터 선택되고, 선택된 데이터의 “현실 세계(real-world)” 위치가 결정된다. 다음으로, 선택된 데이터의 위치는 휴대용 컴퓨팅 디바이스 상에 디스플레이된 지도 위에 놓인 마커들(markers)에 의해 표시될 수 있다. 예를 들어, 한 직장 여성이 하나 이상의 웹 어플리케이션(web application)들에 연락처, 약속 및 업무와 관련된 데이터를 저장할 수 있다. 그녀가 사무실에서 고객의 위치로 운전해감에 따라, 그녀가 있는 부근의 저장 데이터를 표시하는 아이콘들이 그녀의 PDA 스크린 상에 디스플레이될 수 있다. 만약 그녀가 예를 들어, 마커가 놓인 스크린 영역을 터치함으로써 연락처 또는 이벤트를 선택하면, 약속에 관한 설명 또는 연락처나 약속과 관련된 전화 번호와 같이, 그 연락처 또는 이벤트에 관한 세부 정보가 디스플레이될 수 있다. 그리고 나서, 예를 들어 사용자가 그 전화번호로 전화하기 위해 전화번호를 누르거나 음성 명령(voice command)으로 그 전화번호를 선택할 수 있다.
도 1은 주소좌표로 변환된 사용자 정보를 디스플레이할 수 있는 예시적인 매핑 시스템의 개념도이다. 일반적으로, 시스템은 수많은 데이터 코퍼스(corpus)들을 포함하는 데이터로부터 사용자 데이터를 추출하고, 그 추출된 정보를 주소좌표로 변환하여, 그 시스템에 의해 생성된 지도 위에 주소좌표로 변환된 정보를 디스플레이할 수 있다. 일 실시예에 있어서, 예시적인 매핑 시스템은 웹 어플리케이션들로부터 정보를 추출하고, 추출된 정보의 물리적 위치를 결정할 수 있다(즉, 정보를 주소좌표로 변환하거나(geocode) 위치정보로 변환함(geolocate). 사용자가 이동할 때, 매핑 시스템은 추출된 정보의 개별적인 물리적 위치들에 상응하는 지도상의 위치들에 놓인 마커들을 포함하는 지도를 생성할 수 있다.
예를 들어, 사용자는 컴퓨팅 디바이스를 이용하여 온라인 캘린더 또는 다이어리(appointment book), “할 일(to-do)" 또는 업무 리스트, 주소록 또는 연락처 등과 같은 웹 어플리케이션들에 개인 정보를 입력할 수 있다. 개인 정보는 데이터 중에서도 가족과 친구들의 주소, 마쳐야 할 심부름, 다가올 일과 사회적 이벤트를 포함할 수 있다. 사용자가 한 정소에서 다른 장소로 이동할 때, 온라인 어플리케이션에 포함된 정보는 PDA, 랩탑, 차량 내 내비게이션 시스템 또는 다른 적절한 컴퓨팅 디바이스와 같이 사용자와 함께 이동하는 컴퓨팅 디바이스 상의 지도 디스플레이를 채우기 위해 사용될 수 있다. 일부 경우에, 개인 정보는 다른 출력 유형들을 강화하기 위해 사용될 수 있다. 예를 들어, 온라인 어플리케이션에 포함된 개인 정보는 사용자가 개인 정보에 상응하는 위치에 접근할 때 음성 리마인더(voice reminder)를 동작시키거나 컴퓨팅 디바이스가 진동하도록 만들기 위해 사용될 수 있다.
더욱 구체적으로 도 1을 참조하면, 이미지(102)는 주소좌표로 변환된 사용자 정보를 디스플레이할 수 있는 예시적인 매핑 시스템에 의해 제작된 디스플레이의 스크린샷(screenshot)이다. 일 실시예로서, 주소좌표로 변환된 정보는 이벤트(122) 및 연락처(118)의 마커들 또는 아이콘들에 의해 표시될 수 있다. 일부 구현에 있어, 마커들(118, 122)은 웹 어플리케이션 또는 온라인 데이터 저장소에 포함된 사용자 데이터와 관련될 수 있다. 예를 들어, 사용자 데이터는 구글 캘린더(GOOGLE CALENDAR), 구글 맵스(GOOGLE MAPS), 구글 독스(GOOGLE DOCS), 또는 다른 적절한 웹-기반 프로그램들처럼 하나 이상의 웹 어플리케이션들 내에 존재할 수 있다. 다른 구현들에 있어, 각각의 마커(118, 122)는 PDA, 개인 컴퓨터(PC), 랩탑, 셀룰러 전화 등과 같은 컴퓨팅 디바이스에 저장된 정보 또는 모바일 디바이스에 저장되고 중앙 서버 시스템에 있는 데이터베이스와 동기화된 정보에 부합할 수 있다.
일 실시예로서, 사용자의 정보는 다른 적절한 데이터 관리 어플리케이션 중에서 캘린더(108), 주소록(104), 및 업무 리스트(106)를 포함하는 하나 이상의 어플리케이션 내에 저장될 수 있다. 예를 들어, 이벤트 마커(122)는 캘린더(108)에 스케쥴되어 있는 다가올 진료 예약을 표시할 수 있는 한편, 연락처 마커(188)는 주소록(104)에 리스트된 동료를 상징할 수 있다. 이벤트(122) 및 연락처(118) 마커들 모두의 위치는 마커들(188, 122)에 의해 표시된 이벤트 또는 연락처의 특정 공간과 관련된(geospatial) 위치에 의해 결정될 수 있다. 상기 설명한 예에 있어서, 이벤트(122) 및 연락처(188) 마커들의 배치는 각각 그 의사의 사무실 및 연락처의 집에 대한 실제 위치에 부합할 수 있다.
이벤트 또는 연락처에 대한 위치는 어플리케이션으로부터 텍스트 정보(textual information)를 주소좌표로 변환함으로써 결정된다. 예를 들어, 연락처 입력은 주소 필드에 “01 Broadway, St. Louis Park, MN”과 같은 주소를 포함할 수 있고, 어플리케이션은 주소필드를 체크한 후, 예컨대, 위도/경도 쌍과 같은 주소좌표로 변환된 코드 또는 다른 적절한 포맷으로 주소좌표로 변환된 정보로 응답하도록 프로그램된 서버에 텍스트 정보를 제출함으로써, 그러한 정보를 주소좌표로 변환할 수 있다. 유사한 방식으로, 필터는 거리 이름과 같은 분명한 주소 정보 또는 레스토랑 이름과 같은 더 분명한 주소 정보(예컨대, “Spago에서 점심”)를 찾는 약속들에 대한 설명들을 리뷰(review)할 수 있다.
텍스트 주소 정보에 대한 그러한 처리(transaction)는 예컨대, 그러한 정보를 위해 사용자의 데이터 베이스들을 스크랩하는 제 1 서비스, 및 텍스트 정보를 주소좌표로 변환된 정보로 번역하는 제 2 서비스에 의해 일어날 수 있다. 또한 처리는 다양한 문맥상 요인들을 참작할 수 있다. 예를 들어, 점심 또는 저녁 시간에 있는 약속들에 대해, “레스토랑”이라는 용어가 검색 쿼리(search query) 추가될 수 있다. 유사한 방식으로, 검색은 먼저 비지니스의 목록들을 포함하는 데이터베이스 상에서 수행될 수 있고, 현재 사용자의 모바일 디바이스 주변에 있는 한 영역에서 지역 검색으로서 수행될 수 있다.
다른 구현에 있어, 이벤트 마커들(122)은 사용자 데이터베이스에 있는 특정 리스트된 위치들 외의 장소들에 부합할 수 있다. 예를 들어, 이벤트 마커(122)는 업무 리스트(106)에 있는 미완료 업무와 관련될 수 있다. 일 실시예에 따른 구현에 있어서, 시스템은 업무 리스트(106) 내에 있는 미결의 업무들을 분석하고, “식료품”, “우편” 및 “드라이클리닝”과 같은 하나 이상의 키워드나 문구를 선택할 수 있다. 다음으로, 시스템은 키워드에 대한 동의어들을 생성할 수 있고-이 예에서, 지도 시스템은 선택된 키워드들에 대해 각각 “슈퍼마켓”, “우체국”, 및 “세탁소”를 생성할 수도 있다-, 선택된 키워드나 키워드의 동의어 중에서 매치되는 개체들 및 사용자의 현재 위치에 대해 사전에 결정된 반경 내에 있는 개체들에 대한 참조 지도 데이터를 검색할 수 있다. 시스템은 이후에 이 데이터를 검색(retrieve)할 수 있다. 거리 주소 또는 매칭되는 개체들과 관련된 다른 정보를 사용하여, 지도 시스템은 매칭 개체들의 실제 위치에 부합하는 이벤트 마커들(122)로 지도를 채울 수 있다. 이 예에서, 사용자가 도시의 거리를 따라 이동할 때, 지도 시스템은 사용자에 대해 특정 거리 내에 있는 수많은 지역 식료품점, 우체국, 및 세탁소들에 부합하는 지도상의 이벤트 마커들(122)을 배치할 수 있다.
시스템은 캘린더에 스케쥴되어 있는 구체적인 위치-관련 정보가 부족한 이벤트들에 대해 유사한 프로세스를 실행할 수 있다. 일부 예에서, 사용자는 주소좌표로 변환하기에 너무 일반적인 위치 또는 위치를 전혀 포함하지 않고 캘린더 이벤트를 입력할 수 있다(예컨대, "2007년 11월 1일 오후 8시 영화 보기"). 상기 설명된 절차(입력 분석, 동의어 생성 및 검색)에 따라, 시스템은 사용자 부근에 있는 영화관을 찾아낼 수 있고 지도상에 상응하는 이벤트 마커들(122)을 포함할 수 있다.
사용자의 위치와 지도 마커(118, 122)에 의해 표시된 위치 사이의 공간적 관계에 대한 사용자의 이해를 용이하게 하기 위해, 시스템은 특정 마커들을 위한 컬러 또는 투명도 방식을 채택할 수 있다. 일부 환경에 있어서, 사용자가 그 사용자와 지도 마커(118, 122)에 의해 표시된 이벤트 또는 연락처 사이의 상대적인 거리를 결정하는 것은 어려울 수 있다. 예를 들어, 사용자가 자동차를 운전하고 있을 때, 사용자는 지도 시스템에 의해 디스플레이된 지도의 축척을 올바르게 인식하는 것이 어려울 수 있다. 다시 말해, 사용자는 디스플레이된 마커들(118, 122)이 사용자로부터 2마일 떨어져있는지, 20마일 떨어져있는지 판단하는 것이 불가능할 수 있다. 일부 구현에 있어, 사용자의 미리 조절한 거리 내의 마커들(118, 122)은 다른 마커들과 다른 컬러로 디스플레이될 수 있다. 예를 들어, 미리 조절한 거리 내의 마커들은 빨간색인 반면, 그 외 모든 마커들은 파란색일 수 있다; 하지만, 다른 컬러 방식들이 사용될 수도 있다. 유사한 방식으로, 마커들의 사이즈가 사용자의 모바일 디바이스의 현재 위치에 더 가까워짐에 따라 바뀔 수 있다.
다른 구현에 있어, 마커들(118, 122)은 사용자가 마커들(118, 122)쪽으로 또는 마커들로부터 멀리 이동할 때 점점 뚜렷해지거나(fade in) 점점 흐려지기(fade out) 시작할 수 있다. 예를 들어, 사용자가 직장에서 집으로 이동할 때, 직장에 표시된 마커(118)가 사용자가 사전에 결정된 영역 밖으로 이동함에 따라 점점 흐려질 수 있다(즉, 더 투명하게 됨). 이와 유사하게, 사용자의 집에 표시된 마커(118)는, 사용자가 그 또는 그녀의 집에 접근할 때 더 불투명하게 될 수 있다. 임의의 구현들에 있어, 컬러 및 투명도 방식은 결합될 수 있다. 예컨대, 사용자의 주변 영역 외에 있는 지도 마커들(118, 122)은 사용자가 그들의 물리적 위치로부터 멀리 이동함에 따라 파란색으로 흐려지게 될 수 있다; 가까운 마커들(118, 122)은 사용자가 마커의 실제 위치에 접근함에 따라 빨간색으로 덜 투명해지도록 될 수 있다.
일부 구현에 있어서, 마커들(118, 122)은 연락처 또는 이벤트와 연관된 이미지들일 수 있다. 예를 들어, 연락처는 연락처 정보가 웹 어플리케이션들 중 하나에 포함된 사람의 이미지로써 표시될 수 있고, 한편 이벤트는 이벤트가 개최되는 위치의 그림으로써 표시될 수도 있다. 다른 구현에 있어, 연락처와 이벤트는 동료, 가족, 친구, 일, 직장, 집, 체육관 등과 같은 넓은 카테고리로 나누어질 수 있다. 각각의 카테고리는 다른 이미지와 연관될 수 있다; 주어진 카테고리 내에 있는 연락처와 이벤트들은 지도 디스플레이상에 관련 이미지에 의해 표시될 수 있다. 또한, 도시된 바와 같이, 마커들은 관련 정보(예컨대, 연락처, 약속 또는 업무 리스트)가 검색되기 위한 코퍼스에 기초하여 간단하게 달라질 수 있다.
오프 스크린(off-screen) 마커들(112, 114)은 현재 디스플레이된 지도 섹션에 인접한 지도의 한 영역 내에 도시될 연락처(118) 및 이벤트(122) 마커들을 표시할 수 있다. 일부 구현에 있어, 매핑 시스템에 의해 디스플레이된 지도의 섹션은 사용자의 주소좌표로 변환된 정보 모두를 포함하지 않을 수 있다. 예를 들어, 시스템은 사용자의 반경 5마일 내 영역의 지도를 생성할 수 있다; 그 영역 밖에 있는 어떠한 이벤트(122) 또는 연락처(118) 마커는 스크린상에 나타나지 않을 수 있다. 일부 구현에 있어, 오프 스크린 마커들(118, 122)은 지도 디스플레이 아래의 가장자리 또는 오프 스크린 연락처 또는 이벤트의 방향을 표시하는 방향 화살표(110)의 측면에 놓일 수 있다. 각각의 오프 스크린 마커(112, 114)는 다음 지도 섹션에 디스플레이 될 수 있는, 디스플레이되지 않은 이벤트 또는 연락처들의 수를 가리키는 숫자를 각각 포함할 수 있다. 만약 디스플레이되는 오프 스크린 마커들이 없다면, 방향 화살표(110)는 사용자가 현재 이동 중인 방향을 표시할 수 있다.
연락처 또는 이벤트와 연관된 세부사항들은 연락처(118) 또는 이벤트(122) 마커로 연결된 정보 윈도우(116)에 디스플레이될 수 있다. 정보 윈도우(116)는 마커(120)에 인접할 수 있고, 또는 일부 구현에 있어 인접하지 않은 방식으로 관련 마커 가까이에 놓일 수도 있다. 세부사항은 하나 이상의 웹 어플리케이션들 또는 다른 적절한 소스들에 저장된 정보로부터 추출될 수 있다. 예를 들어, 마커(118, 122)가 연락처를 표시한다면, 정보 윈도우(116)에 디스플레이되는 세부사항은 연락처의 이름, 주소, 전화 번호 등을 포함할 수 있다.
디스플레이(102)에 도시된 마커들은 또한 잘 알려진 방식으로 필터링될 수 있다. 특히, 버튼은 디스플레이(102)상에 보여질 수 있고, 버튼이 선택되면 마커들의 특정 클래스들(예컨대, 업무 리스트, 연락처 또는 약속)이 나타나거나 사라질 수 있다. 그러한 상호작용은 사용자들이 구글 맵스와 같은 어플리케이션에 레이어(layer)들을 쉽게 추가할 수 있는 방식에 가까울 수 있다. 그러한 방식으로, 사용자는, 사용자의 디스플레이를 개인화하고, 현재 사용자와 관련되지 않은 정보들로 디스플레이가 어지럽혀지는 것을 방지하기 위한 기능을 제공받을 수 있다.
또한, 임의의 사용자 정보는 자동으로 필터링될 수 있다. 예를 들어, 마커들은 가까운 미래(예컨대, 당일)에 일어날 약속들과 관련된 약속 데이터에 대해서만 보여질 수 있다. 유사한 방식으로, 연락처에 대한 마커들은 친한 친구 또는 가족 구성원들에 대해서만으로 한정될 수 있다. 또한 연락처 정보는 소셜 네트워킹 어플리케이션으로부터 추출될 수 있고, 마커들은 일등급의 사회적 연락처에 대해서만 또는 유사한 제한 요소에 의해 한정될 수 있다.
일부 경우에 있어서, 디바이스는 그 디바이스의 위치를 모니터하고 사용자가 관심 장소에 가까워졌을 때 경보를 울릴 수 있다. 예를 들어, 사용자가 관련 장소(예컨대, 집 또는 직장)에 접근할 때 디바이스는 사용자에게 관심장소가 가깝다는 것을 알리기 위해 청각적(예컨대, 음성 리마인더) 또는 촉각적(예컨대, 진동) 지시를 시작할 수 있다. 일부 경우에 있어서, 이러한 경보들은 요구되는 위치 또는 이벤트에 물리적, 시간적 또는 행로의 근접에 의해 촉발(trigger)될 수 있다. 예를 들어, 사용자가 특정된 직장의 5마일 이내에 있을 때 경보가 촉발될 수 있다. 일부 구현에 있어, 경보는 이벤트가 시작될 때쯤에 촉발될 수 있다. 예를 들어, 디바이스는 영화 시작 시간의 15분 전에 진동을 울릴 수 있다. 다른 경우에 있어서, 경보는 요구되는 위치(예컨대, 식료품 가게)로의 출구가 가까워질 때 촉발될 수 있다. 일부 구현에 있어서, 이러한 청각적 또는 촉각적 리마인더들은 경보, 리마인더 또는 지도 디스플레이상에 나타날 수 있는 아이콘들에 대해 추가적인(또는 대신하는) 것일 수 있다.
일부 구현에 있어서, 이벤트를 촉발시키는 것은 사용자 지정(user specified)일 수 있다. 예를 들어, 사용자는 기상 예보 또는 현재 기상 상태, 가격 비교, 생일, 서핑 리포트 등에 기초하여 경보를 설정할 수 있다. 일부 경우에 있어서, 사용자는 경보를 형성하기 위해 하나 이상의 촉발 이벤트들 또는 경보 지시자들을 결합할 수 있다. 예를 들어, 사용자는 선택된 영화가 상영 시간 15분 전이고, 영화를 상영하는 영화관이 10마일 내에 있을 때, 디바이스는 구두 리마인더 및 적절한 지도 아이콘을 제공해야 하도록 지정할 수 있다.
대안적인 구현에 있어서, 촉발 이벤트는 사용자를 위해 자동으로 생성될 수 있다. 예를 들어, 사용자는 온라인 소매상들에 의해 일반적으로 채용된 것과 같은 추천 시스템으로부터 제안들을 수신하는 것을 선택할 수 있다. 이러한 추천 시스템들은 예를 들어, 다른 방법론들 중에서도, 유사한 소비자들이 관심을 가진 아이템들을 식별함으로써, 또는 사용자의 구매 히스토리(history)를 조사함으로써 관심 아이템들을 사용자에게 제안할 수 있다. 추천 시스템은 차례로 적절한 리마인더(예컨대, 지도 아이콘, 음성 리마인더 또는 촉각적 리마인더)를 생성할 수 있는 매핑 시스템으로 그 식별된 제안을 공급할 수 있다. 일 실시예에 있어서, 사용자는 구독자들에게 영화 추천을 공급할 수 있는 영화 렌탈 서비스를 구독할 수 있다. 상기 서비스는 그 사용자가 봤거나 다른 일부 평가 기준을 만족시키는 영화와 유사한 영화들에 대해 추천을 생성할 수 있다. 사용자가 서비스로부터 제안을 수신하는 것을 선택한다면, 서비스는 사용자의 지도 시스템에 이러한 추천들을 공급할 수 있다. 그리고 나서, 시스템은 추천들을 주소좌표로 변환할 수 있다. 예를 들어, 시스템은 추천된 영화를 보유하고 있는 영화 렌탈 가게의 위치를 표시하는 지도 아이콘을 생성할 수 있다. 또는, 추천된 영화가 현재 영화관에서 상영중이라면, 시스템은 영화를 상영하는 영화관의 위치를 표시하는 지도 아이콘들을 만들 수 있다. 일부 구현들에 있어서, 추천 서비스는 리마인더들을 만들고, 그 리마인더들을 매핑 시스템으로 전송할 수 있다. 비록 실시예의 추천 시스템이 영화 렌탈을 포함하고 있지만, 다른 추천 시스템들도 사용될 수 있다. 예를 들어, 사용자에게 관심있을 만한 상품 또는 서비스들을 제안하는 추천 시스템이 사용될 수 있다.
도 2a는 주소좌표로 변환된 사용자 정보를 디스플레이할 수 있는 예시적인 매핑 시스템의 블록도(200)이다. 시스템은 인터넷과 같은 네트워크(208)를 통해 지도 제작(cartography) 어플리케이션(202)과 통신할 수 있는 차량(206)과 연관된 원격 컴퓨팅 디바이스(204; 예컨대, 랩탑, PDA, 스마트폰, 휴대용 내비게이션 디바이스 등)를 포함할 수 있다. 지도제작 어플리케이션(202)은 사용자 데이터(220), 하나 이상의 어플리케이션들(218), 위치 분석 모듈(216), 위치 스크래퍼(214), 사용자 데이터 매핑 모듈(212), 및 인터페이스(210)를 포함할 수 있다.
일 실시예에 따른 구현에 있어, 지도 제작 어플리케이션(202)은 웹-기반 모듈들, 어플리케이션들, 및 온라인 데이터 저장소들의 컬렉션(collection)으로써 구현될 수 있다. 도 1을 참조하여 논의된 바와 같이, 사용자 데이터(220)는 다른 데이터 중에서도 사용자 캘린더(108), 업무 리스트(106), 및 주소록(104)에서 발견된 정보를 포함할 수 있다. 위치 스크래퍼(214)는 사용자 데이터(220)에서 위치 정보를 검색할 수 있다. 예를 들어, 위치 스크래퍼(214)는 장소 이름(예컨대, 백악관), 주소, 좌표 데이터, 또는 위치 정보의 다른 타입과 같은 구체적인 텍스트를 사전에 결정된 사용자 파일들에서 검색할 수 있다.
일부 구현에 있어서, 위치 스크래퍼(214)는 위치를 가리키는 텍스트를 위해 임의의 웹사이트들에서 검색하는 "웹 크롤러(web crawler)"로서 구현될 수 있다. 예를 들어, 위치 스크래퍼(214)는 직장 이름, 영역 이름, 주소 등을 선택된 웹사이트들에서 검색할 수 있다. 일부 구현에 있어, 위치 스크래퍼는 예컨대, 5개의 연속된 숫자(가능한 우편번호 코드), 하나 이상의 숫자들, 도시 및 주 이름 등의 뒤에 오는 "아파트" 또는 "Apt"와 같은 단어처럼 구체화된 포맷으로 된 데이터를 검색할 수 있다. 다른 구현에 있어, 위치 스크래퍼는 위치를 가리키는 텍스트로서, "워커 박물관", "딩키타운", 또는 "미네소타 대학"처럼 사전에 정의된 텍스트를 검색할 수 있다. 일부 환경에 있어서, 위치 스크래퍼(214)는 사전에 결정된 웹 어플리케이션들로부터 위치-기반 정보를 요청할 수 있고, 또는 상기 설명된 방식으로 위치-기반 정보를 어플리케이션들과 연관된 데이터에서 검색할 수 있다.
위치-기반 데이터를 사용자 데이터(220)에서 검색하는 것에 대안적으로, 대신하여, 또는 추가적으로, 사용자 또는 다른 개체가 지도 제작 어플리케이션(202)에 위치 정보를 제공할 수 있다. 일부 구현에 있어서, 사용자는 원격 컴퓨팅 디바이스(204)를 사용하여 지도 제작 어플리케이션(202)에 직접 위치 정보를 입력할 수 있다. 다른 구현에 있어서, 연락처 또는 이벤트는 또한 위치 정보를 어플리케이션(202)에 전송할 수 있다. 예시적인 구현에 있어서, 사용자가 임의의 연락처 또는 이벤트에 가까이 올 때, 연락처 또는 이벤트는 지도 제작 어플리케이션(202)에 그 위치와 관련된 정보를 보낼 수 있다. 예를 들어, 사용자가 가게의 특정 거리 내로 들어올 때, 가게의 컴퓨터 시스템은 사용자의 출현(예컨대, 디바이스가 그 가게로 신호를 전송함)에 대해 경보를 받을 수 있고, 이에 응답하여, 가게의 주소 또는 다른 정보(예컨대, 현재 가게의 판촉물에 대한 정보)를 어플리케이션(202)으로 전송할 수 있다. 유사한 방식으로, 사용자가 연락처의 인근에 있을 때, 연락처가 그 사용자에게 그 또는 그녀의 위치 정보를 보낼 수 있다.
사용자는 시스템 또는 다른 사용자들과 공유되는 그들의 위치에 관한 정보의 양을 제어할 수 있다. 특히, 정보의 공유는 시스템에 대한 디폴트(default)가 사용자 데이터에 대한 프라이버시(privacy)를 유지하도록 하기 위해, 그러한 공유에 동의하는 확인 단계들을 거친 사용자들에게만 허가될 수 있다.
위치 분석 모듈(216)은 위도/경도 쌍과 같은 지리적 데이터(geodata)로 위치의 설명을 변환할 수 있다. 위치 분석 모듈(216)은 다양한 잘 알려진 형식들을 취할 수 있고, 위치-기반의 설명적 정보를 분석할 수 있으며, 정보를 매치하는 하나 이상의 고유 위치들을 식별하는 분석 엔진에 정보를 공급할 수 있다. 이후에 모듈(216)은 둘 이상의 결과가 있으면 그 결과들에 하나 이상의 발견적인(heuristic) 규칙들에 적용할 수 있다. 예를 들어, 가장 높은 유사도를 가진 결과가 사용될 수 있고, 또는 사용자의 현재 위치에 가장 가까운 결과가 사용될 수 있다. 예를 들어, 설명 텍스트가 "123 Smith,"이고, 한 동네에 Smith Street 와 Smith Avenue 둘 다 존재한다면, 관련 위치는 123에 있는 집의 리스트를 포함하는 거리, 그 순간 사용자의 모바일 디바이스에 가장 가까운 거리, 한 위치(예컨대, Smith Avenue에 Ditalio's Pizzeria가 있다면, Ditalio's 또는 pizza라는 용어를 포함하는 약속)에 매치되는 다른 문맥상의 정보를 포함하는 리스트, 또는 일부 다른 파라미터와 매치되는 거리로써 선택될 수 있다.
디바이스의 현재 위치를 식별할 필요가 있을 때, 컴퓨팅 디바이스(204)는 네트워크(208)를 통해 지도 제작 어플리케이션(202)으로 디바이스의 위치를 전송할 수 있다. 이러한 상황에 있어서, 디바이스(204)상의 GPS 또는 다른 기술은 잘 알려진 방식으로 위치 식별자를 생성할 수 있다. 타워 삼각측량법(tower triangulation)이 사용될 때, 지도 제작 어플리케이션(202)은 디바이스(204)의 위치를 스스로 결정할 수 있다.
지도 제작 어플리케이션(202)이 사용자 데이터에 관한 정보로 지도를 채우는(populate) 임무를 가지면, 지도 제작 어플리케이션(202)은 일부 참조 지도 데이터가 디바이스(204)의 위치에 부합하는지를 결정할 수 있다. 예를 들어, 디바이스(204)는 적절한 통신 수단을 통해 현재 위치의 위도와 경도를 지도 제작 어플리케이션(202)에 전송할 수 있다. 지도 제작 어플리케이션(202)이 그 데이터를 수신한 후에, 지도 제작 어플리케이션(202)은 제공된 데이터에 부합하는 참조 지도 데이터 내에 있는 위치를 검색할 수 있다.
사용자 데이터 매핑 모듈(212)은 주소좌표로 변환된 사용자 정보를 포함하는 사용자의 현재 위치의 지도를 생성할 수 있다. 지도는 구글맵스에 의해 제공된 방식과 같이 다양한 방식으로 형성될 수 있다. 예를 들어, 지도에 대한 줌 레벨(zoom level)이 결정될 수 있고, 그 줌 레벨에서 사용자의 위치 주변에 있는 수많은 지도 타일들이 인출되고(fetch) 사용자에게 디스플레이되기 위해 디바이스(204)로 전송될 수 있다.
일부 구현에 있어서, 사용자 데이터 매핑 모듈(212)은 위치 스크래퍼(214)에 의해 수집된 데이터의 물리적 위치를 결정한다. 예를 들어, 위치 스크래퍼(214)는 스크랩되어 있는 각각의 관련 이벤트를 위해 거리 주소 또는 위도/경도 정보(예컨대, 위치 분석 모듈(216)에 의해 생성된 것처럼)를 사용자 데이터 매핑 모듈(212)에 제공할 수 있다. 다음으로, 사용자 데이터 매핑 모듈(212)은 참조 지도 데이터에 있는 주소를 찾아낼 수 있고, 찾아낸 지도 데이터와 관련시키도록 적절한 마커를 선택할 수 있다. 마지막으로, 매핑 모듈(212)이 사용자의 위치를 표시하는 마커로 지도 디스플레이를 만들고 채울 수 있다.
인터페이스(210)는 들어오는 데이터를 해석하고, 나가는 데이터는 디바이스(204)가 수신하도록 패키징할 수 있다. 일부 구현에 있어서, 컴퓨팅 디바이스(204)로부터 위치-기반 데이터를 수신할 때, 인터페이스(210)는 사용자 데이터 매핑 모듈(212)로 데이터를 제공한다. 사용자 매핑 모듈(212)은, 필요하다면, 지도 제작 어플리케이션(202)에 의해 사용하기 적절한 포맷으로(예컨대, 좌표 데이터) 그 데이터를 변환하기 위해 위치 분석 모듈(216)을 사용할 수 있다. 상기 논의한 바와 같이, 사용자 데이터 매핑 모듈(212)은 지금 디스플레이되는 지도상의 위치에 매치되는 포지션(position)들을 가진 입력들을 데이터에서 검색함으로써, 참조 지도 데이터에서 디바이스(204)의 위치를 결정할 수 있다.
일단 매핑 모듈(212)이 관련 참조 지도 데이터를 검색하면, 위치 스크래퍼(214)에 의해 얻은 정보는, 검색된 지도 데이터에 있는 주소좌표로 변환된 마커들의 배치를 결정하기 위해 매핑 모듈(212)에 의해 사용된다. 일부 구현에 있어, 사용자 데이터 매핑 모듈(212)은 위치 스크래퍼(214)에 의해 수집된 데이터의 물리적 위치를 결정한다. 예를 들어, 위치 스크래퍼(214)는 사용자 데이터 매핑 모듈(212)에 거리 주소를 제공할 수 있다. 다음으로, 사용자 데이터 매핑 모듈(212)은 예컨대 그 데이터를 위치 분석 모듈(216)로 전달함으로써, 그 주소에 대한 마커를 생성할 수 있다. 다른 데이터 형태들은 다른 프로세싱 기술들을 요구할 수 있다. 일부 구현에 있어, 위치 스크래퍼(214)에 의해 찾아낸 키워드 또는 문구들은 참조 지도 데이터 내에 상응하는 포지션을 결정하기 위해 일반적인 위치 이름 및 그것들과 관련된 좌표들의 리스트와 비교될 수 있다. 예를 들어, "Metrodome"이란 단어는 참조 지도 데이터에 있는 인기 위치들의 리스트와 비교될 수 있다. 만약 매칭되는 위치 이름이 발견되면―이 예에서는, 매칭되는 이름이 "Hubert H. Humphrey Metrodome"이다―,그 매칭되는 이름과 관련된 좌표 데이터가 플래그될(flagged) 수 있고, 이후에 그 위치를 표시하는 마커는 Metrodome의 물리적 위치에 부합하는 위치로 지도상에 디스플레이될 수 있다. 대안적인 구현에 있어서, 유사한 방식으로, 위치 스크래퍼(214)는 사용자 데이터(220)로부터 추출된 정보에 부합하는 참조 지도 데이터 내의 위치를 결정할 수 있다.
도 2b는 주소좌표로 변환된 정보를 디스플레이할 수 있는 매핑 시스템(240)의 대안적인 구현을 도시한다. 이 예에서, 그 기능의 대부분이 중앙 서버상에서 수행되는 도 2a와는 반대로, 더 많은 매핑 기능이 모바일 디바이스상에서 수행된다. 이러한 두 가지 시스템들은 오직 예시로서만 제공된 것이고 다른 배열 또한 채용될 수 있다.
도 2b를 참조하면, 매핑 시스템(240)은 컴퓨팅 디바이스(242), 원격 컴퓨팅 디바이스(248), 네트워크(246), 및 기지국(244)을 포함할 수 있다. 컴퓨팅 디바이스(242)는 어플리케이션 저장소(262), 사용자 데이터(260), 위치 스크래퍼(256), 위치-기반 데이터 저장소(258), 사용자 데이터 매핑 모듈(252), 위치 엔진(254), 및 인터페이스(250)를 포함할 수 있다. 어플리케이션 저장소(262)는 어플리케이션 및 그 어플리케이션과 관련된 데이터를 포함할 수 있다. 상기한 바와 같이, 그러한 어플리케이션은 캘린더, 업무 리스트, 주소록 등을 포함할 수 있다. 사용자 데이터(260)는 연락처, 업무, 이벤트 정보 등의 사용자 정보를 포함할 수 있다.
도 2a를 참조하여 상기한 바와 같이, 위치 스크래퍼(256)는 위치 정보를 사용자 데이터(260; 및 일부 구현에 있어서는 어플리케이션 저장소(262))에서 검색할 수 있다; 위치 스크래퍼(256)는 이후에 위치-기반 데이터 저장소(258) 내에 위치 정보를 저장할 수 있다. 이 예에서, 위치 스크래퍼(256)는 스마트폰과 같은 모바일 디바이스인 컴퓨팅 디바이스(242) 상에 저장된 파일들을 분석한다.
위치 엔진(254)은 컴퓨팅 디바이스(242)의 현재 위치를 결정하고, 위치 설명(예컨대, 주소)을 위치 식별자(예컨대, 위도/경도 좌표)로 변환할 수 있다. 위치 엔진(254)은 그러한 변환 자체를 만들거나, 서버(248)와 같은 원격 서버로 위치 기술자(descriptor)를 전달하여 그 응답으로 위치 식별자를 수신할 수 있다. 일부 구현에 있어서, 위치 엔진(254)은 디바이스(242)에 있는 GPS 수신기에 액세스함으로써 컴퓨팅 디바이스(242)의 포지션을 계산할 수 있다. 다른 구현에 있어, 위치 엔진(254)은 기지국(244)을 사용하여, 또는 다른 적절한 기술을 채용함으로써 디바이스(242)의 포지션을 측정할 수 있다. 위치 엔진(254)은 후술하는 사용자 데이터 매핑 모듈(252)로 위치 정보를 공급할 수 있고, 또는 위치-기반 데이터 저장소(258) 내에 디바이스의 위치를 저장할 수 있다.
일부 구현에 있어서, 또한 위치 엔진(254)은 위치-기반 데이터 저장소(258) 내에 저장된 위치-기반 데이터를 처리할 수 있다. 일부 구현에 있어서, 위치 엔진(254)은 위치-기반 데이터 저장소(258) 내에 포함된 위치-기반 데이터에 부합하는 지도 개체들을 위한 참조 지도 데이터를 검색할 수 있다. 예를 들어, 위치 엔진(254)은 키워드(예컨대, "Mount Rushmore"), 좌표 데이터, 거리 주소, 위치 이름, 또는 위치-기반 데이터 저장소(252)에서 발견된 다른 정보들과 관련된 개체들을 위한 지도 데이터를 검색한다. 위치 엔진(254)이 부합하는 개체를 찾으면, 그 개체의 좌표를 사용자 데이터 매핑 모듈(252)로 보낼 수 있다.
임의의 구현에 있어서, 사용자 데이터 매핑 모듈(252)은 주소좌표로 변환된 사용자 정보(예컨대, 사용자의 현재 위치 및 사용자와 관련된 이벤트)를 포함하는 사용자의 현재 위치에 관한 지도를 만들 수 있다. 매핑 모듈(252)은 사용자가 디바이스(242) 상의 내비게이션 어플리케이션을 시작하기 위해 디바이스(242)의 디스플레이상의 아이콘을 선택할 때 호출될(invoke) 수 있다. 또한 위치-기반 데이터는, 시설이나 주제(예컨대, "Tony's Pizza" 또는 "milk") 또는 주소(예컨대, "123 Main St., Anytown, CA")의 텍스트 표시로부터 위도/경도 좌표쌍과 같은 위치 식별자로 변환하기 위해 미리 위치 엔진(254)에 제공될 수 있다. 그러한 경우, 좌표 쌍은 위치-기반 데이터(258) 내에 저장될 수 있고, 매핑 모듈(252)은 그러한 데이터에 직접 액세스할 수 있다.
매핑 모듈(252)은 디바이스의 현재 위치 및 위치 스크래퍼(256)에 의해 수집된 위치-기반 데이터를 위치 엔진(254)에 요청할 수 있다. 매핑 모듈(252)이 위치-기반 데이터를 수신할 때, 매핑 모듈(252)은 도 1에 도시된 것과 유사한 방식으로 그 디바이스상에 디스플레이하기 위해서 디바이스(242)의 그래픽 유저 인터페이스(graphical user interface)로 정보를 제공할 수 있다. 예를 들어, 매핑 모듈(252)이 디바이스(242)의 현재 위치를 수신한 후에, 매핑 모듈은 적절한 영역에 대한 지도 타일들이 자신에게 반환되도록 하기 위해 그 위치를 서버(248)에 전송할 수 있고, 위치 스크래퍼(256)에 의해 추출된 위치-기반 데이터 중 어느 것이 디바이스(242)의 인근에 있는지 결정하고, 메모리로부터(예컨대, 사용자 저장소(260)로부터) 그 위치-기반 데이터를 로드할 수 있다.
일부 경우에 있어서, 도 2a 및 2b에 관하여 상기 설명한 기능은 컴퓨팅 디바이스들 사이에서 분리될 수 있다. 예를 들어, PDA, 랩탑 또는 휴대용 내비게이션 디바이스와 같은 원격 컴퓨팅 디바이스는 다른 것들 중에서도 특히 어플리케이션과 사용자 데이터를 포함할 수 있다. 예를 들어, 지도 제작 어플리케이션은 다른 구성요소들 중에서도, 위치 스크래퍼, 위치 분석 모듈 및 사용자 데이터 매핑 모듈을 포함할 수 있다. 이러한 구현에 있어, 원격 컴퓨팅 디바이스는 사용자 및 어플리케이션 데이터를 지도 제작 어플리케이션으로 전송하고, 이 어플리케이션은 주소좌표로 변환된 사용자 정보를 포함하는 지도를 생성할 수 있다. 다른 구현에 있어서, 원격 컴퓨팅 디바이스는 예컨대, 위치 스크래퍼, 위치 분석 모듈, 및 사용자 데이터 매핑 모듈을 포함할 수 있는 지도제작 어플리케이션을 포함할 수 있고, 반면 원격 서버는 특히 사용자 데이터를 포함할 수 있다. 이러한 구현에 있어, 원격 컴퓨팅 디바이스는 원격 서버에 의해 제공된 어플리케이션 및 사용자 데이터를 이용하여 주소좌표로 변환된 지도를 생성할 수 있다.
도 3a 및 3b는 주소좌표로 변환된 사용자 정보를 포함하는 지도를 생성하기 위한 예시적인 프로세스들(300, 320)의 플로우 차트이다. 예를 들어, 프로세스(300)는 시스템(200 및 240)과 같은 시스템에 의해 수행될 수 있고, 표시의 명료화를 위해, 후술하는 설명은 시스템(200 및 240) 및 개념도(100)를 사용하여 프로세스를 설명한다. 하지만 다른 시스템 또는 시스템들의 조합은 프로세스(300, 320)를 수행하는 데 사용될 수 있다. 일반적으로 도 3a의 프로세스(300)는 사용자를 위한 위치-기반 데이터를 식별하는 단계 및 어플리케이션으로 사용자의 위치를 트래킹(tracking) 단계를 포함하고, 이 어플리케이션은 사용자의 위치 주변의 데이터를 지도 위에 디스플레이한다. 도 3b는 유사한 프로세스(320)를 포함하지만, 사용자 위치의 트래킹은, 특수 목적의 위치 트래킹 모듈에 의해 수행되고, 이 모듈은 어플리케이션에 관련될 수 있는 이벤트들을 그 어플리케이션에 보고하여 그 어플리케이션이 사용자에게 그 디스플레이를 업데이트 할 수 있도록 한다.
도 3a를 참조하면, 플로우차트는 주소좌표로 변환된 사용자 정보를 포함하는 지도를 만들기 위한 예시적인 프로세스(300)를 도시한다. 단계 302에서, 사용자 데이터 파일이 식별된다. 일부 구현에 있어서, 위치 스크래퍼(214)는 위치-기반 데이터를 포함할 것 같은 사용자 파일들을 사용자 데이터(220)에서 검색할 수 있다. 일부 구현에 있어서, 위치 스크래퍼(214)는 특정된 파일 확장자, 특정 위치에 배치된 파일(예컨대, 특정 웹 주소에)을 가진 파일들을 검색할 수 있거나, 또는 사용자는 타겟 파일들을 검색할 위치 스크래퍼(214)에 지정할 수 있다. 일부 구현에 있어서, 예를 들어, 웹 어플리케이션은 어플리케이션의 웹 주소에 의해 지정될 수 있다.
데이터가 서버상에 저장되면, 위치 스크래퍼(214)는 웹 어플리케이션에게 사용자 정보를 포함할 수 있는 데이터 파일들을 보내도록 요청한다. 일부 환경 하에서, 사용자 스크래퍼(214)는 사전에 결정된 데이터 파일을 요청할 수 있고; 그 외에, 데이터 파일은 웹 어플리케이션에 의해 능동적으로 생성될 수 있다. 다른 경우, 위치 스크래퍼(214)는 어플리케이션의 웹사이트 및 관련된 데이터 저장소를 "크롤" 할 수 있고, 위치-기반 데이터를 추출할 수 있다. 예를 들어, 앞서 논의한 바와 같이, 위치 스크래퍼(214)는 좌표 데이터, 주소 등과 같은 위치 정보를 포함하는 텍스트 또는 다른 데이터를 위해, 어플리케이션 웹사이트 및 관련된 데이터 저장소에 액세스할 수 있다.
상기 방법은 위치-관련 데이터가 파일로부터 스크랩되는 단계 304로 진행한다. 소정의 구현에 있어, 위치 스크래퍼(214)는 위치-기반 데이터를 위한 사용자 데이터 파일들에서 검색할 수 있다. 예를 들어, 위치 스크래퍼(214)는 거리 주소, 도로 및 교차로 이름, 좌표 데이터(예컨대, 위도 및 경도), 및 위치 이름(예컨대, 직장, 도시, 마을, 주 등)를 사용자 데이터 파일들에서 검색하고 분석(parse)할 수 있다. 게다가, 위치 스크래퍼(214)는 키워드(예컨대, 호텔, 쇼핑몰, 신발 수리점 등), 키 문구(예컨대, LaGuardia 근처 호텔), 지리적 특성(예컨대, Dinkydome), 및 운전하는 방향(예컨대, 시카고에서 미니애폴리스로)를 데이터에서 검색할 수 있다. 그러한 확장자는 주지의 다양한 임의의 메카니즘에 따라 일어날 수 있다. 이 예에서 확장자는 연락처, 업무 리스트 및 약속과 같은 데이터에 대한 다수의 코퍼스들에 걸쳐 일어날 수 있다.
위치-관련 데이터가 파일 또는 파일들로부터 스크랩된 후에, 스크랩된 데이터는 단계 306에서 그룹들로 분류된다. 일부 환경에서는, 위치 스크래퍼(214)가 데이터 타입에 기초한 서로 다른 카테고리들로 위치-관련 데이터를 분류할 수 있다. 예를 들어, 데이터는 후술하는 카테고리들로 분류될 수 있다: 거리 주소, 도로 및 교차로 이름, 좌표 데이터, 위치 이름, 키워드, 키 문구, 지리학적 특성 및 운전 방향. 대안적인 구현에 있어서, 데이터는, 데이터가 매핑될 수 있기 전에 요구될 수 있는 프로세싱의 양에 의해 분류될 수 있다. 사용자 데이터 매핑 모듈(212)에 의해 사용될 수 있기 전에 조작이 요구되지 않는 데이터(예컨대, 좌표 데이터)는 매핑 모듈(212)에 의해 프로세싱될 필요가 있는 데이터(예컨대, 키워드 및 키 문구)로부터 분리될 수 있다.
이후에 데이터는 주소좌표로 변환된 버전의 데이터로 변환하기 위해 제출될 수 있다. 예를 들어, 모바일 디바이스는 위치에 대한 좌표 데이터 또는 위치-관련 정보에 부합하는 위치들로 반환할 수 있는 주소좌표 변환 서버에 스크랩된 위치-관련 정보를 제출할 수 있다. 정보가 데이터를 매핑할 필요가 있는 프로세싱의 양에 따라 사전에 분류되었지만, 임의의 데이터는 그러한 주소좌표로의 변환이 상대적으로 간단하면, 국지적으로 주소좌표로 변환될 수 있고, 다른 정보는 주소좌표로의 변환을 위한 원격 서버에 제출될 수 있다.
또한 프로세스(300)는 데이터가 획득된 코퍼스에 기초하는 것과 같이, 데이터에 의해 표시된 이벤트 타입에 기초하여 그룹들로 데이터를 더 분류할 수 있다. 일 예로서, 모든 약속들이 하나의 그룹에 놓이거나 특정 방식으로 플래그될 수 있는 반면, 모든 약속들이 다른 그룹에 놓일 수도 있다. 그러한 그룹화는, 다른 아이콘들이 다른 형태의 이벤트들의 디스플레이에 사용될 때처럼, 이벤트들의 후술할 디스플레이를 도울 수 있다.
단계 306에서 데이터가 그룹들로 분류된 후, 단계 308에서 컴퓨팅 디바이스(204)의 위치가 모니터(monitor)된다. 예를 들어, 매핑 어플리케이션은 디바이스(204)상의 GPS 모듈로부터 실질적으로 계속 정보를 수신할 수 있고, 또는 이와 달리 디바이스가 어느 지리(geography) 주변을 이동할 때 디바이스(204)로부터 업데이트된 위치 정보를 수신할 수 있다.
다음으로, 단계 310에서 현재 위치에서의 데이터가 식별되고 디스플레이된다. 예를 들어, 프로세스(300)는 디바이스(204)에 대한 위치 및 디바이스(204) 주변 지도에 대한 줌 레벨을 식별할 수 있다. 그러한 정보는 디스플레이될 지도와 동일한 사이즈이거나 그 지도보다 더 큰 바운딩 박스(bounding box)를 식별하는데 사용될 수 있다(예컨대, 그 지도의 가장자리에 떨어져 있는 이벤트가 지시될 때). 프로세스(300)는 테이블(테이블의 한 컬럼은 주소좌표로 변환된 이벤트들의 위치임) 내에 저장될 수 있는 모든 식별된 이벤트들(예컨대, 연락처, 약속 등)을 검색하고, 산출된 바운딩 박스 안에 있는 모든 이벤트들을 식별할 수 있다. 게다가, 사용자의 이벤트들 중 하나가 우유나 빵을 사는 것이라면 디바이스(204) 가까이에 있는 임의 식료품 가게들처럼, 쿼리는 적절한 영역에 있는 추가적인 아이템들을 찾기 위해 원격 서버에 제출될 수 있다. 그러한 쿼리에 대한 검색 결과는, 식별되어 지도상에서 오버레이(overlay)로서 디스플레이되는 데이터에 추가될 수 있다.
일부 구현에 있어서, 컴퓨팅 디바이스(204)의 위치는 적절한 매핑 데이터의 생성을 위해 사용자 데이터 매핑 모듈(212)로 전송될 수 있다. 위치-관련 데이터를 사용하여, 사용자 데이터 매핑 모듈(212)은 사용자의 현재 위치의 지도를 만들 수 있다. 예를 들어, 디바이스(204)의 현재 위치의 경도와 위도는 사용자 데이터 매핑 모듈(212)로 전송될 수 있다. 위치-기반 데이터를 수신한 후에, 매핑 모듈(212)은 분석 모듈(216)에 의해 제공된 좌표에 상응하는 참조 지도 데이터 내의 위치를 찾을 수 있고, 또는 그 위치에 대한 매핑 데이터로의 위치 분석을 위해 원격 서버로 위치를 제출할 수 있다. 참조 지도 데이터 내에서 디바이스의 위치를 찾았을 때, 매핑 모듈(212)은 특정된 반경(예컨대, 5 마일) 또는 바운딩 박스 내에 있는 모든 지도 데이터 포인트들(예컨대, 적절한 줌 레벨에서의 지도 타일들)을 메모리로부터 로드할 수 있고, 또는 나중의 프로세싱을 위해 데이터를 표시(mark)할 수 있다.
다음으로, 매핑 모듈(212)은 사용자 정보(존재하는 경우)가 매핑 모듈(212)에 의해 만들어진 사용자의 현재 위치의 지도 위에 디스플레이되어야 하는지를 결정하기 위해, 위치 스크래퍼(214)에 의해 제공된 위치-기반 데이터를 사용할 수 있다. 일부 구현에 있어서, 위치 스크래퍼(214)는 사용자 데이터(220)로부터 그 위치-관련 데이터에 대한 주소좌표로 변환된 데이터와 더불어, 추출된 위치-관련 데이터를 매핑 모듈(212)로 보낼 수 있다.
위치-관련 데이터가 수신되면, 매핑 모듈(212)은 위치 스크래퍼(214)가 제공한 위치-기반 데이터에 부합하는, 참조 지도 데이터 내에 있는 하나 이상의 위치들을 찾을 수 있다. 예를 들어, 매핑 모듈(212)은 자신이 만들 지도의 경계를 처음부터 정의할 수 있다; 예컨대, 매핑 모듈(212)이 사용자의 현재 위치의 반경 5마일 내에 지도 데이터 또는 특정 바운딩 박스 내부의 데이터만 디스플레이할 수 있다. 다음으로, 매핑 모듈은 위치 스크래퍼(214)에 의해 제공된 임의의 위치-기반 데이터가 지도 경계 내에 놓이는지 확인할 수 있다. 일부 구현에 있어, 매핑 모듈(212)은 가장 먼저, 위치 스크래퍼(214)로부터의 더 프로세싱할 필요가 없는 위치-기반 데이터(예컨대, 좌표 데이터)가 지도 경계 밖에 있는지; 만약 그렇다면, 위치-기반 데이터가 지도에서 제외되었는지를 결정할 수 있다. 그리고 나서, 매핑 모듈(212)은 추가적인 조작(예컨대, 키워드 또는 문구들)을 요구하는 위치-기반 데이터를 지도 경계와 비교할 수 있다; 상기한 것처럼, 지도 경계 밖의 위치-기반 데이터는 지도 안에 포함되지 않을 것이다. 예를 들어, 지도 스크래퍼(214)는 키워드 "호텔"을 매핑 모듈(212)에 제공할 수 있다. 매핑 모듈(212)은 "호텔"에 대한 동의어(예컨대, "여관" 또는 "모텔")를 생성하고, 하나 이상의 그러한 단어들을 포함하는 위치를 참조 지도 데이터에서 검색할 수 있다. 키워드나 동의어 중 하나를 포함하는 지도 데이터의 좌표는 미리 생성된 지도 경계와 비교될 수 있고, 경계 밖에 놓인 좌표 데이터는 그 지도에서 제외될 수 있다. 그러나 일반적으로 그러한 중의적인 위치-관련 데이터는 주소좌표로 변환되지 않을 것이고, 또는 이와 달리, 사용자가 움직일 때 지도를 보여주는 현재의 액티브 윈도우 내에 포함하기 위해 추적될 수 있도록 처음부터 진행될 것이다.
사용자 디바이스 및 관련 사용자 데이터 모두의 참조 지도 데이터 내의 위치가 결정되었을 때, 매핑 모듈(212)은 디바이스(204)와 같은 모바일 컴퓨팅 디바이스상에 지도를 생성하기 위해 데이터를 제공할 수 있다. 그러한 제공은 데이터가 디바이스(204) 자체에 모이면 국지적으로 일어날 수 있고, 또는 인터넷과 같은 네트워크를 통해, 매핑 서비스를 제공하는 서버로부터 컴퓨팅 디바이스(204)의 사용자에게로의 데이터 전송으로서 일어날 수 있다.
현재 위치에 있는 데이터가 식별되고 디스플레이되면, 그 방법은 단계 312로 진행된다. 단계 312에서는, 아이템의 선택(예컨대, 이벤트(122) 또는 연락처(118) 마커)이 사용자로부터 수신되고, 아이템 세부사항이 디스플레이된다. 임의의 구현에 있어서, 사용자가 마커(118, 122)와 관련된 정보를 요구할 때, 사용자는 마커를 선택할 수 있고, 이에 대한 응답으로 매핑 모듈(212)은 요구된 정보를 정보 윈도우(116) 내에 디스플레이할 수 있다. 예를 들어, 사용자는 사용자의 친구들 중 한명의 사진을 보여주는 아이콘을 선택할 수 있고―아이콘은 친구들의 연락처 파일 안에 주소 위에 디스플레이되어 있음―, 그 친구에 대한 상세한 연락처 정보가 팝-업(pop-up) 박스로 보여질 수 있다.
일부 구현에 있어서, 정보 윈도우(116)는 사용자가 이벤트 또는 연락처의 사전에 결정된 거리 내로 들어올 때 자동으로 디스플레이될 수 있다. 예를 들어, 아주 가까운 장래의 약속은 충분히 드물고 중요하므로, 사용자가 그러한 정보에 바로 관심을 가질 것이라는 가정 하에서, 정보 윈도우(116) 전체로 디스플레이할 수 있다. 대안으로, 정보 윈도우(116)는 예컨대, 키보드 스트로크, 스타일러스나 핑거 탭, 또는 다른 적절한 입력(예컨대, 음성)과 같이, 매핑 시스템과 사용자의 상호작용에 응답하여 디스플레이될 수 있다. 디스플레이될 때, 또한 정보 윈도우(116)는 아래에 있는 지도를 가리지 않기 위하여 부분적으로 투명할 수 있다.
임의의 구현에 있어, 정보 윈도우(116)는 연락처 또는 다른 이벤트에 연결될 수 있는 사용자 데이터(220)에 포함된 정보를 디스플레이할 수 있다. 예를 들어, 연락처에 대한 정보 윈도우(116)는 사용자 데이터(220)로부터 발췌된 다른 데이터들 중에서도 특히 연락처의 이름, 주소, 및 집과 직장 전화번호를 포함할 수 있다. 일부 구현에 있어서, 지도 시스템에 의해 수집된 정보는 사용자 데이터(220)에 포함된 정보에 추가적으로, 또는 대신하여 사용될 수 있다. 예를 들어, 지도 시스템은 연락처 또는 이벤트의 이름을 검색 엔진에 입력할 수 있고, 검색 결과, 또는 결과들의 요약을 정보 윈도우(116)에 디스플레이할 수 있다. 이와 같이, 이벤트가 "우유" 또는 유사한 키워드라면, 위치-관련 정보는 디바이스(204) 주변 영역에 있는 "우유" 또는 "식료품 가게"의 로컬 검색 쿼리에 응답하여 획득될 수 있고, 검색 결과로부터의 특정 상세한 정보(예컨대, 비지니스를 위한 주소 및 전화번호 정보)가 정보 윈도우(116) 내에 디스플레이될 수 있다.
대안적인 구현에 있어서, 정보 윈도우(116)는 연락처 또는 이벤트와 사용자의 관계와 관련된 데이터를 또한 디스플레이할 수 있다. 예를 들어, (디바이스 내의 GPS 수신기 및 가속도계와 같은 장치에 의해 제공될 수 있는) 디바이스의 현재 위치와 속도를 이용하여, 시스템(200)은 선택된 마커(118, 122)와 관련된 위치에서 사용자의 예상 도착 시간을 계산할 수 있다. 계산되면, 지도 시스템은 정보 윈도우(116)에 예상 도착 시간을 디스플레이할 수 있다.
매핑 모듈(212)(또는 다른 구현에 있어서, 컴퓨팅 디바이스(204))은 지도상에서 볼 수 있는 마커(118, 122)들의 수를 증가시키 것과 같은 방식으로 지도상에 정보 윈도우(116)를 배치할 수 있다. 일부 구현에 있어서, 정보 윈도우(116)는, 연락처 마커(120)의 정보 윈도우(116)로 예시된 바와 같이 윈도우(116)의 연관된 이벤트(122) 또는 연락처(118) 마커에 인접할 수 있다; 그러나 일부 상황에 있어서, 윈도우(116)가 관련 마커(118, 122)와 인접하면, 윈도우(116)는 다수의 다른 마커들(118, 122)을 시야에서 차단할 것이다. 스크린상에서 볼 수 있는 마커들(118, 122)의 수를 최대로 하기 위해, 매핑 시스템은 어떠한 마커(118, 122)도 포함하지 않거나 최소한의 마커(118, 122) 수를 포함하는 디스플레이 영역 내에 정보 윈도우(116)를 놓을 수 있다. 대안적으로, 시스템(200)은 윈도우(116)가 오버레이하는 마커들(118, 122)의 수를 감소시키기 위해, 윈도우(116)의 사이즈를 사전에 결정된 최소한의 위도우 사이즈로 감소시킬 수 있다. 또한 시스템(200)은 사용자 앞의 영역이 지도상에서 가리지 않도록 디바이스의 이동 방향으로부터 떨어진 영역 위에 윈도우(116)를 배치할 수 있다.
일부 예에 있어서, 정보 윈도우(116)는 이벤트 또는 연락처와 관련된 실시간 정보를 디스플레이할 수 있다. 예를 들어, 이벤트 마커(122)는 비행기 또는 기차 출발과 같이 일상적으로 지연이나 취소의 대상이 될 수 있는 이벤트를 표시할 수 있다. 임의의 구현에 있어서 시스템은 이벤트와 관련된 데이터 저장소에 쿼리하고, 정보 윈도우(116)에 이벤트의 상태를 디스플레이할 수 있다. 일 실시예에 있어서, 사용자가 공항으로 운전중일 때, 매핑 시스템은 업데이트된 상태 정보를 위해 항공사의 웹사이트를 주기적으로 체크할 수 있고, 정보 윈도우(116)에 그러한 정보(예컨대, 현재 스케쥴된 탑승 또는 출발 시간)를 포함할 수 있다.
도 3b를 참조하면, 플로우차트는 주소좌표로 변환된 사용자 정보를 포함하는 지도를 제작하기 위한 대안적인 예시적 방법(320)을 도시한다. 일반적으로, 그 방법은 도 3a의 방법(300)과 유사하지만, 디바이스에 대한 위치 정보를 모니터하기 위해 탑재된 위치 트래킹 모듈을 사용한다. 그러한 모듈은 디바이스상에서 운영 체제에 의해 제공된 서비스의 형태일 수 있는 매핑 어플리케이션으로부터 분리된 모듈일 수 있다. 다양한 어플리케이션들은 그 어플리케이션들이 추적하기 원하는 개체들의 위치 또는 바운딩 박스와 같은 위치-기반 데이터를 모듈에 등록할 수 있다. 트래킹 모듈은 그 개체를 등록한 어플리케이션의 지시자와 더불어 그러한 개체들 및 개체들의 위치 리스트를 저장할 수 있다. 이후에 모듈은 예컨대, GPS 모듈로부터 위치 정보를 지속적으로 수신할 수 있고, 저장된 개체들에 대한 위치 정보와 그 정보를 비교할 수 있다. 위치적으로 오버랩(overlap)되는 것이 있을 때, 모듈은 적절한 어플리케이션에 경고하고, 디바이스에 대한 현재 위치를 어플리케이션에 전달할 수 있다.
이러한 방식으로, 단일 모듈은 다수의 어플리케이션을 위한 위치 트래킹을 관리할 수 있다. 다수의 어플리케이션들은 각각 GPS 모듈로부터 정보를 요청할 필요가 없고, 따라서 시스템상의 프로세싱 비용 및 위치를 추적하기 위해 요청되는 전력을 더 낮출 수 있다. 동시에, 각각의 어플리케이션은 그들의 요구를 등록할 수 있고, 따라서 통지를 받고, 오직 필요할 때만 반응할 수 있다. 이러한 방식으로, 위치-기반 경보 및 업무의 효율적인 관리가 일어날 수 있다.
이제 방법(320)을 참조하면, 단계 322 및 324(사용자 데이터 파일들을 식별하는 단계 및 개별적으로 파일로부터 위치-기반 데이터를 스크랩하는 단계)는 도 3a의 단계 302 및 304와 동일하고, 상기 단계 302 및 304의 설명은 단계 322 및 324에 동일하게 적용가능하고 여기서 반복하지 않을 것이다. 단계 326에서, 위치-기반 데이터는 위치 트래킹 모듈에 등록된다. 예를 들어, 참조 지도 데이터에 있는 임의의 데이터가 위치-관련 데이터의 포지션을 가리키도록 표시될 수 있고, 즉, 등록될 수 있다. 일부 구현에 있어서, 위치 트래킹 모듈은 위치 분석 모듈(216)의 일부분일 수 있다; 다시 말해, 위치 트래킹 모듈은 위치 엔진(254) 또는 다른 적절한 하드웨어 또는 소프트웨어 어플리케이션의 일부분일 수 있다. 게다가, 등록된 위치-기반 데이터는 상응하는 물리적 위치를 입력한 사용자에 대한 응답으로 "핫 스팟(hot spots)" 즉, 지도 세그먼트들을 포함할 수 있고, 주소좌표로 변환된 사용자 정보의 디스플레이를 프롬프트(prompt)할 수 있다. 예를 들어, 사용자의 위치가 매핑 모듈(212)의 참조 지도 데이터에 있는 "핫 스팟" 내부의 한 영역에 부합할 때, 매핑 모듈(212)은 사용자의 현재 위치에 대한 지도를 주소좌표로 변환된 사용자 정보로 채울 수 있다.
위치-기반 데이터가 위치 트래킹 모듈에 등록된 후, 단계 328에서, 디바이스의 위치가 모니터된다. 일부 구현에 있어서, 위치 트래킹 모듈은 컴퓨팅 디바이스(204)로부터 위치 정보를 주기적으로 요청할 수 있다. 대안적인 구현에 있어, 위치 트래킹 모듈은 GPS 기술을 이용하거나, 기지국(244)의 위치를 이용한 삼변 측량법(trilateration)을 통해 디바이스의 위치를 계산할 수 있다.
단계 330에서, 사용자 데이터 위치가 트리거된다(triggered). 예를 들어, 사용자가 "핫 스팟"을 입력하고, 이에 대한 응답으로, 매핑 시스템은 생성된 다음 지도(next map)의 디스플레이가 주소좌표로 변환된 사용자 정보를 포함하도록 기록한 플래그 또는 다른 지시자를 설정할 수 있다. 그러한 트리거링은 디바이스의 위치에 관한 새로운 정보를 수신하는 매 시간마다 등록자의 위치 리스트를 확인하는 위치 트래킹 모듈에 의해 일어날 수 있다. 등록된 위치들의 리스트는 지금 디바이스의 현재 위치에 가장 가까운 위치들이 리스트의 맨 위에 배치되도록 위치 트래킹 모듈에 의해 분류될 수 있다. 이러한 방식으로 가장 많이 관련된 위치들이 쉽게 이용가능하도록 모듈에 만들어질 수 있다.
사용자 데이터 위치의 트리거링에 대한 응답으로, 시스템(200)은 단계 322에서 사용자 데이터 어플리케이션을 시작할 수 있고, 또는 이와 달리 어플리케이션을 활성시킬 수 있다. 일부 구현에 있어서, 사용자 데이터 어플리케이션은 사용자의 현재 위치를 포함하는 참조 지도 데이터를 수집할 수 있다. 예를 들어, 매핑 시스템은 일부 구현에 있어서 적절한 개체에 대해 디바이스(204)의 현재 위치를 요청할 수 있는 사용자 데이터 매핑 모듈(212)을 시작할 수 있고, 위치가 수신되면 현재 위치의 미리 설정된 반경 내에 있는 참조 데이터를 메모리로부터 로드할 수 있다. 따라서, 예를 들어 매핑 어플리케이션은 사용자가 매핑 어플리케이션에 관련된 어떤 것에 가까이 오지 않은 동안은 휴지상태(dormant)에 놓이지만, 관련 이벤트가 그 영역에 들어갈 때, 자동으로 트리거되고 사용자에게 자동으로 디스플레이될 수 있다.
마지막으로, 단계 334 및 336에서, 현재 위치에 있는 데이터는 식별되고 디스플레이될 수 있고, 아이템 선택에 응답하여 그 아이템에 대한 세부사항이 디스플레이될 수 있다. 단계 334 및 336을 수행하는 예시적인 방법은 도 3a의 단계 310 및 312의 논의를 참조한다.
또한, 본 명세서에서 지도에 대한 위치가 디바이스의 현재 위치에 대한 데이터에 의존하는 것으로 여기 지시되어 있더라도, 다른 위치-기반 데이터 또한 사용될 수 있다. 예를 들어, 사용자는 쿼리로서 위치를 입력할 수 있고, 디스플레이된 지도는 그 영역 주변의 지도일 수 있다. 그러므로, 예를 들어, 사용자가 한 영역으로 출장을 계획하고, 그녀의 컴퓨팅 디바이스로 그 영역에 대한 우편번호를 입력할 수 있다. 이후에 그녀는 지도상에 자동으로 오버레이된 영역에 있는 그녀의 다수의 연락처를 위한 아이콘들과 더불어 그 영역의 지도를 볼 수 있다. 또한 그녀의 현재 위치와는 별개로, 다양한 잘 알려진 방식으로 그 지도상에서 줌(zoom)하고 패닝(pan)할 수 있다.
도 4a는 클라이언트-서버 환경에서 주소좌표로 변환된 사용자 정보를 포함하는 지도를 만들기 위한 예시적인 방법을 도시한다. 클라이언트-서버 환경은 다중 서버 및 클라이언트로 구성될 수 있다. 임의의 구현에 있어서, 하나의 클라이언트는 개인 컴퓨터, 랩탑 또는 유사한 컴퓨팅 디바이스일 수 있고, 사용자는 서버에 나중에 저장되는 사용자 정보를 입력할 수 있다. 서버는 사용자 정보를 처리하고 저장할 수 있는 하나 이상의 웹 프로그램 및 온라인 데이터 저장소들을 포함할 수 있다. 제 2 클라이언트는 추가적인 프로세싱을 수행하고, 주소좌표로 변환된 사용자 정보를 포함하는 지도를 디스플레이할 수 있다. 예를 들어, 제 2 클라이언트는 PDA, 내비게이션 시스템, 또는 위치-트래킹 하드웨어 및/또는 소프트웨어를 포함하고, 다른 클라이언트 및 서버와 통신할 수 있는 다른 휴대용 컴퓨팅 디바이스일 수 있다.
상기 방법은 사용자 정보가 수신되는 단계 402를 시작한다. 일부 구현에 있어서, 사용자는 연락처, 약속 및 업무들을 웹 어플리케이션에 입력할 수 있다. 예를 들어, 사용자는 약속들을 구글 캘린더 또는 다른 적절한 프로그램과 같은 온라인 캘린더 프로그램에 입력할 수 있다. 대안적인 구현에 있어, 사용자 정보는 PDA, 랩탑, 내비게이션 시스템 등과 같은 컴퓨팅 디바이스에 입력될 수 있다.
단계 402에서 사용자 정보를 수신한 후에, 단계 404에서 사용자 정보가 등록된다. 단계 404에서, 정보는 특정 사용자 계정과 연관될 수 있다(즉, 등록될 수 있다). 예를 들어, 단계 404에서 사용자 정보를 입력한 후에, 정보(예컨대, 사용자 계정의 이름)를 식별하는 단계는 사용자 정보와 연결될 수 있다. 다음으로, 단계 406에서 사용자 정보가 서버상에 저장될 수 있다.
사용자 정보가 서버에 수신되어 저장되면, 그 방법은 사용자 정보가 위치 관련 정보를 스크랩하는 단계 408로 진행한다. 위치 스크래퍼(214)는 일부 구현에 있어서 위치-관련 데이터를 저장된 사용자 정보에서 검색할 수 있다. 위치 스크래퍼(214)는 위치를 지시하는 단어, 문구, 또는 숫자 데이터로 사용자 정보에서 발견된 텍스트를 분석할 수 있다. 예를 들어, 위치 스크래퍼(214)는 사업체 이름, 이동 방향, 좌표 데이터 등을 검색할 수 있다.
단계 410에서, 사용자는 제 2 클라이언트 디바이스에 사용자 계정으로 등록할 수 있다. 임의의 경우에 있어서, 사용자 계정은 하나 이상의 웹 어플리케이션과 관련될 수 있다. 예를 들어, 사용자는 예시적인 구현으로서 휴대용 컴퓨팅 디바이스로부터 사용자 이름과 패스워드와 같은 필수적인 로그인 정보로 사용자 계정에 로그인함으로써 사용자 계정으로 등록할 수 있다. 사용자가 로그인하면, 서버는 단계 412에서 사용자의 디바이스를 인증할 수 있다. 예를 들어, 사용자에 의해 제공된 사용자 이름 및 패스워드가 올바르다는 것을 확인함으로써 인증이 발생할 수 있다.
디바이스가 인증된 후에, 단계 414에서 위치 정보가 전송된다. 단계 408에서 사용자 정보로부터 스크랩된 위치 정보는, 서버로부터 단계 416에서 위치 정보를 저장하는 클라이언트(여기서는 휴대용 컴퓨팅 디바이스)로 전송될 수 있다. 전송된 정보는, 이벤트가 지도상에서 사용자에게 디스플레이되도록, 이벤트에 대한 설명적 정보와 더불어 사용자와 관련된 다양한 이벤트들에 대한 좌표를 포함할 수 있다.
다음으로, 단계 418에서는 디바이스의 이동이 모니터된다. 예를 들어, 디바이스는 GPS 수신기와 같은 위치 트래킹 도구를 이용하여 디바이스의 위치를 지속적으로 결정할 수 있다. 디바이스가 위치를 모니터할 때, 단계 420에서 그 영역에 있는 위치-기반 데이터가 검출될 수 있다. 일부 구현에 있어서, 단계 418에서 디바이스가 현재 위치를 결정할 때, 현재 위치의 사전에 정의된 거리 내에서 또는 정의된 바운딩 박스 예컨대, 현재 지도 뷰(map view) 크기의 박스 또는 지도 뷰보다 더 큰 박스(예컨대, 현재 디스플레이된 지도의 각 측면에 있는 여러 개의 다중의 지도 크기) 내에서 일부 위치 정보를, 단계 414에서 서버에 의해 제공된 위치 정보에서 검색할 수 있다. 예를 들어, 서버에 의해 제공된 위치 정보는 좌표 데이터(예컨대, 위도 및 경도)를 포함할 수 있다. 예를 들어, 클라이언트는 위도와 경도의 집합이 디바이스의 현재 위치에서 반경 5 마일 내에 놓여 있는지를 결정할 수 있다.
그 영역에 있는 위치-기반 데이터가 식별되면, 상기 방법은 위치-기반 데이터와 관련된 사용자 데이터를 획득하는 선택적 단계 422를 진행한다. 일부 구현에 있어서, 클라이언트는 식별된 위치-기반 데이터와 관련된 사용자 데이터를 서버로부터 요청할 수 있다. 응답으로, 서버는 단계 424에서, 식별된 위치-기반 데이터에 상관된 사용자 데이터를 전송할 수 있다. 예를 들어, 일부 구현에 있어서, 서버에 의해 공급된 위치-기반 데이터는 하나 이상의 온라인 어플리케이션에 있는 연락처, 이벤트 또는 업무와 관련될 수 있다. 서버는 클라이언트에 의해 식별된 위치-기반 데이터에 부합하는 연락처, 이벤트 또는 업무 정보를 전송할 수 있다. 대안적인 구현에 있어서, 식별된 위치-기반 데이터와 관련된 사용자 데이터는 클라이언트 상에 존재할 수 있다.
또한 주기적인 쿼리는 디바이스가 이동함에 따라 로컬 검색 서버와 같은 다른 서버에 만들어질 수 있다. 특히, 쿼리들은 사용자의 개인적 데이터에서 발견된 키워드들과 관련될 수 있다. 또한, 키워드들은 예컨대, 사용자의 영역에 있는 광고 또는 판촉 자료들을 찾기 위해 다른 형태를 취할 수 있다. 일 예로서, 사용자가 "항공편"에 대한 약속이 있다면, 사용자가 비행기에서 먹지 않을 것이고 음식에 대한 광고를 수신할 것이라는 가정 하에서, 시스템은 도착 공항의 영역 내에 있는 레스토랑들에 대한 광고를 디스플레이할 수 있다.
단계 426에서, 아이템 세부사항이 디스플레이된다. 아이템 세부사항은 지도상의 마커(118, 122)에 인접하게 정보 윈도우(116)에 디스플레이될 수 있다. 예를 들어, 이벤트의 위치, 기간 및 시작 시간이 이벤트 마커(122)에 붙여진 정보 윈도우(116) 내에 디스플레이될 수 있다.
도 4b는 클라이언트-서버 환경에서 주소좌표로 변환된 사용자 정보를 포함하는 지도를 만들기 위한 대안적인 예시적인 방법을 도시한다. 도 3b에 있는 방법(320)과 유사하게, 이 방법은 모바일 디바이스의 위치를 모니터하고 위치-관련된 데이터에 의존할 수 있는 어플리케이션이 경보하는 것의 관리를 돕기 위해 위치 트래킹 모듈에 의존한다.
상기 방법은 사용자 데이터가 사용자 데이터 모듈에 의해 액세스되는 단계 432를 시작한다. 예를 들어, 사용자 데이터 모듈은 서버에게 사용자 데이터(예컨대, 연락처, 이벤트 또는 업무)를 요청할 수 있고, 서버는 단계 434에서 요청된 데이터를 사용자 데이터 모듈에 제공한다. 사용자는 사전에 그러한 정보를 입력할 수 있고, 또는 다른 것(예컨대, 전자 명함을 이용하거나 미팅 요청을 통해)으로부터 정보를 수신할 수 있다. 다음으로, 사용자 데이터에서 위치-기반 데이터가 필터링된다. 예를 들어, 사용자 데이터 모듈은 위치와 관련될 수 있는 정보를 사용자 데이터에서 찾아 추출할 수 있다. 예를 들어, 사용자 데이터 모듈은 이름, 교차로, 주소 등을 추출할 수 있다.
단계 436에서 위치-기반 데이터가 스크랩되거나 이와 달리 추출된 후에, 단계 438에서 위치 지시자들이 등록될 수 있다. 일부 구현에 있어서, 사용자 데이터 모듈은 임의의 위치-기반 데이터(예컨대, 장소 이름 및 키워드)를 좌표 데이터로 변환시킬 수 있다. 예를 들어, 사용자 데이터 모듈은 이름과 키워드의 일부가 알려진 위치에 부합하는지 결정하기 위해 장소 이름 및 키워드를 참조 지도 데이터와 비교할 수 있다; 만약 부합하면, 매칭하는 장소 이름 및 키워드들이 연관될 수 있고, 즉 부합하는 알려진 위치에 등록될 수 있다. 단계 440에서, 위치 지시자들이 수집될(accumulated) 수 있다. 예를 들어, 위치 지시자들은 그룹화되고 저장될 수 있다.
단계 442에서, 디바이스의 이동은 위치 트래킹 모듈에 의해 모니터된다. 일부 구현에 있어서, 위치 트래킹 모듈은 디바이스로부터 주기적인 위치 업데이트들을 수신할 수 있고, 또는 디바이스가 모듈로부터의 요청에 응답하여 위치 트래킹 모듈에 그 위치를 제공할 수 있다. 다른 구현에 있어서, 트래킹 모듈은 삼변 측량 계산을 수행하는 것과 같이 위치-트래킹 기술들을 이용하여 디바이스의 위치를 결정할 수 있다.
단계 444를 진행하면, 관련 위치 지시자들은 디바이스의 현재 위치에 매치하는지 식별될 수 있고, 응답으로 사용자 데이터 모듈이 활성화된다. 일부 구현에 있어서, 디바이스가 움직일 때, 위치 트래킹 모듈은 일부 위치 지시자가 디바이스의 사전에 결정된 거리 내에 있는지 결정할 수 있다. 예를 들어, 디바이스는 PDA일 수 있다; 사용자가 이동할 때 PDA는 주기적으로 그 위치를 위치 트래킹 모듈에 통보할 수 있다. PDA는 이 경우에는 커피점으로 표시된 위치 지시자의 예컨대 10마일(또는 지도상에 현재 도시된 거리의 x배)과 같이 미리 설정된 거리 내로 들어올 수 있다. 위치 트래킹 모듈이 커피점의 10마일 내에 있음을 검출할 때(예컨대, 커피점으로 표시한 참조 지도 데이터와 PDA 사이의 거리를 계산함), 위치 트래킹 모듈은 신호를 전송함으로써, 또는 다른 적절한 통지 수단을 통해 사용자 데이터 모듈에 통보할 수 있다.
관련 위치 지시자를 식별하는 단계 및 사용자 데이터 모듈을 활성화시키는 단계에 추가적으로, 사용자 트래킹 모듈은 단계 446에서 데이터 모듈에 의해 수신된 위치 정보를 사용자 데이터 모듈에 전송할 수 있다. 위치 정보를 수신하는 단계에 대한 응답으로, 단계 448에서 사용자 데이터 모듈은 관련 위치 기반 정보를 디스플레이할 수 있다. 예를 들어, 사용자 데이터 모듈은 위치 기반 사용자 데이터를 표시하는 마커들로 디스플레이된 지도를 채울 수 있다. 일 실시예로서, 사용자가 번잡한 도시 거리를 이동해 내려갈 때, 온라인 어플리케이션들에 포함된 데이터를 표시하는 연락처와 이벤트 마커들(예컨대, 가까운 친구, 동료 및 이벤트)은 사용자의 PDA상에 디스플레이될 수 있다.
마지막으로 단계 450에서, 사용자 데이터 모듈은 선택된 아이템의 세부사항을 디스플레이할 수 있다. 일부 구현에 있어서, 사용자의 입력에 대한 응답으로, 디바이스는 마커 근처에 있는 정보 윈도우에, 온라인 어플리케이션에 포함된 정보를 디스플레이할 수 있다. 예를 들어, 사용자는 마커가 디스플레이된 스크린을 터치할 수 있고, 또는 키패드, 마우스 또는 다른 주변 디바이스를 이용하여 마커를 선택할 수 있다. 시스템은 마커가 붙여진 정보 윈도우에, 마커와 관련된 연락처 또는 이벤트 정보를 디스플레이함으로써 응답할 수 있다. 예를 들어, 사용자가 업무에 상응하는 마커를 선택할 때, 태스크의 기한, 및 다른 적절한 정보 등 그 업무의 상태가 디스플레이될 수 있다(예컨대, 완료 또는 미완료).
도 5를 참조하면, 개인 정보를 주소좌표로 변환할 수 있는 매핑 시스템의 다양한 측면을 구현하는 예시적 디바이스(500)의 외형을 예시한다. 요약하면, 무엇보다도, 디바이스(500)는 개인정보를 주소좌표로 변환할 수 있는 매핑 시스템에 연결되고 다양한 기능을 수행하도록 설정된 프로세서를 포함하고, 그 중 일부는 모바일 디바이스의 사용자의 요청에 대해 디바이스(500)를 구동하는 매핑 시스템과 관련하여 상기 설명되어 있다.
보다 상세하게, 디바이스(500)의 하드웨어 환경은 사용자에게 텍스트, 이미지, 및 비디오를 디스플레이하는 디스플레이(501); 텍스트 데이터와 사용자 명령을 디바이스(500)에 입력하는 키보드(502); 디스플레이(501) 상에 디스플레이된 객체를 포인팅하고, 선택하고, 및 조정하는 포인팅 디바이스(504); 안테나(505); 네트워크 연결(506); 카메라(507); 마이크로폰(509); 및 스피커(510)을 포함한다. 디바이스(500)가 외장 안테나(505)를 나타내고 있지만, 디바이스(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)이다.
사용자는다양한 어플리케이션들을 디스플레이하고, 설정하고 보여주기 위해 제공하는 운영 체제 및 어플리케이션들을 운영하고 제어하기 위해 명령어(command) 및 데이터를 입력하기 위해 키보드(또는 "키패드")(502)를 사용한다. 키보드(502)는 단독으로 선택되었을 때 알파벳 문자 "Q" 와 "W"에 연관되나, 키(529)와 조합되어 눌렸을 경우에는 "*"와 "1"에 연관될 수 있는 키(525, 527)와 같은, 알파벳 문자와 연관되는 키들 또는 표준 키보드 버튼을 포함한다. 또한 단일 키(single key)는 운영 체제의 상태 또는 운영 체제에 의해 호출되는 어플리케이션의 상태에 근거하여 특정 문자, 또는 레이블이 부여되지 않은 기능을 포함하는 기능과 연관될 수 있다. 예를 들어, 어플리케이션이 숫자의 입력을 요구하면, 키(527)의 단독 선택은 "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)를 이용하는 6 메가-픽셀(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); 키보드(502)로의 통신 인터페이스를 제공하는 키보드 인터페이스(604); 포인팅 디바이스(504)로의 통신 인터페이스를 제공하는 포인팅 디바이스 인터페이스(605); 안테나(505)로의 통신 인터페이스를 제공하는 안테나 인터페이스(606); 컴퓨터 네트워크 접속(506)을 통해 네트워크로의 통신 인터페이스를 제공하는 네트워크 접속 인터페이스(607); 카메라(507)로부터 디지털 이미지를 획득하기 위한 처리 기능과 통신 인터페이스를 제공하는 카메라 인터페이스(608); 마이크로폰(509)을 사용하여 음향을 전기적 신호로 변환하고, 스피커(510)를 사용하여 전기적 신호를 음향으로 변환하기 위한 통신 인터페이스를 제공하는 음향 인터페이스(609); CPU(601)에 의해 처리되는 컴퓨터 명령어와 데이터가 휘발성 메모리 디바이스에 저장되는 RAM(Random Access Memory;610); 기본 입력 및 출력(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) 구체화된다. 컴퓨터 프로그램 제품은 명령어를 포함하고, 이 명령어는 기계에 의해 판독되면, 데이터 처리 장치로 하여금 이미지 데이터를 모바일 디바이스에 저장하게 한다. 일부 구현예에서, 컴퓨터 프로그램 제품은 사용자가 완전하게 구현하는 동시에 다양한 어플리케이션들을 사용하게 해주는 명령들을 포함한다. 일부 실시에 있어서, 컴퓨터 프로그램 제품은 예컨대, 소프트웨어에 보정을 수용하고, 소프트웨어 또는 하드웨어 운영에 있어 "버그(bugs)"나 사소한 결함을 고치기 위해 컴퓨터 프로그램 제품을 업데이트하는 기능을 포함한다. 일부 실시에 있어서, 업데이트하는 것은 추가적인 구성요소들 및 그 유틸리티를 개선하는 컴퓨터 프로그램 제품의 특성들을 포함할 수 있다.
운영 체제(614)는 구글(GOOGLE®) 모바일 디바이스 플랫폼와 같은 리눅스-기반 운영 체제; 애플 맥 운영 체제 X(APPLE® MAC OS X®); MICROSOFT® WINDOW NT®/WINDOW® 2000/WINDOW® XP/WINDOW MOBILE; 다양한 UNIX®-기반형 운영 체제(UNIX-flavored operating system); 또는 컴퓨터 또는 임베디드 시스템용 전용 운영 체제일 수 있다. 운영 체제(614)용 어플리케이션 개발 플랫폼 또는 프레임워크는, BREW(BINARY RUNTIME ENVIRONMENT FOR WIRELESS®;BREW®); 자바(JAVA®) 플랫폼, 마이크로 에디션(JAVA® ME) 또는 자바 2 플랫폼, 썬마이크로시스템스 자바스크립트 프로그램 언어를 이용하는 마이크로 에디션(J2ME®); PYTHONTM 플레쉬 라이트(FLASH LITE®), 또는 MICROSOFT®.NET 컴팩, 또는 그 밖의 적절한 환경일 수 있다. 어플리케이션 발달 플랫폼은 또한 SUN MICROSYSTEMS® JAVA(TM) 프로그래밍 언어 및 달빅 가상 머신(Dalvik virtual machine)을 사용할 수 있다.
디바이스는 운영 체제(614) 및 어플리케이션 프로그램(615)용 컴퓨터 실행가능 코드(computer-executable code)를 저장한다. 예를 들어, 어플리케이션 프로그램에는 이메일, 인스턴스 메시지, 비디오 서비스 어플리케이션, 매핑 어플리케이션, 워드 프로세싱, 스프레드쉬트, 프리젠테이션, 게임, 매핑, 웹 브라우징, 자바스크립트 엔진, 또는 그 밖의 어플리케이션이 있다. 예를 들어, 일부 구현예에서 사용자는 구글 지메일(GOOGLE® GMAIL®) 이메일 어플리케이션, 구글 토크(GOOGLE® TALK®) 인스턴스 메시징 어플리케이션, 유투브(YOUTUBE) 비디오 서비스 어플리케이션, 구글 맵(GOOGLE® MAPS®) 또는 구글 어스(GOOGLE® EARTH®) 매핑 어플리케이션, 또는 구글 피카사(GOOGLE® PICASA®) 이메징 편집 및 프리젠테이션 어플리케이션을 액세스할 수 있다. 또한, 어플리케이션 프로그램(615)은 위젯 또는 가젯 엔진을 포함할 수 있다. 예를 들어, 위젯 또는 가젯 엔진에는, TAFRITM 위젯 엔진, 윈도우 사이드바(WINDOWS SIDEBAR®) 가젯 엔진 또는 KAPSULESTM 가젯 엔진과 같은 MICROSOFT® 가젯 엔진, KONIFABULTORTM 위젯 엔진과 같은 야후! 위젯 엔진, 애플 데쉬보드(APPLE® DASHBOARD®) 위젯 엔진, GOOGLE® 가젯 엔진, 클립폴리오(KLIPFOLIO®) 위젯 엔진, OPERATM 위젯 엔진, WIDSETSTM 위젯 엔진, 전용 위젯 또는 가젯 엔진, 또는 데스크 탑에 물리적으로 인스파이어(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)에 근거하는 BLUETOOTH® 구동부는, 헤드셋(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)를 포함한다.
일반적으로 MIDP(Mobile Information Device Profile) 런타임을 구성하는 운영 체제 런타임(702)은, 코어 자바 라이브러리(731)와 달빅(Dalvik) 가상 머신(732)을 포함한다. 달빅 가상 머신(732)은 수정되지 않은 자파 파일들(.CLASS/.JAR)뿐만 아니라 맞춤형 파일 포맷(.DEX)을 실행하는 맞춤 자바-호환 가상 머신이다. 그래픽 랜더링에 관해서는, 시스템 광역 조정자(system-wide-composer)는 OpenGL ES(724) 및 그 요소에 대해 2차원 하드웨어 가속기를 사용하여, 표면 및 프레임 버퍼를 관리하고 원도우 천이를 처리한다.
달빅 가상 머신(732)은 런타임 메모리를 매우 효율적으로 사용하고, CPU-최적화 바이트코드 인터프리터(CPU-optimized bytecode interpreter)를 구현하고, 디바이스 당 다중 가상 머신 프로세스를 지원하므로, 임베디스 환경에서 사용될 수 있다. 런타임 효율을 위해 맞춤 파일 포맷(.DEX)은, 메모리를 감소시키기 위한 공유 상수 풀(constant pool), 교차 프로세스 공유(cross-process sharing)를 개선하기 위한 읽기 전용 구조, 분석 시간(parse time)을 감소시키는 간결하고, 고정 폭인 명령어를 사용하여 설계되므로, 인스톨된 어플리케이션은 빌드 시점(build-time)에서 맞춤 파일 형식으로 번역된다. 연관된 바이트코드는 신속한 해석을 위해 설계되는데, 스택-기반이 아닌 레지스터-기반 명령어는 메모리 및 디스패치 오버 헤드를 감소시키고, 고정폭 명령어를 사용하는 것은 분석을 단순화시키고, 16 비트 코드 유닛은 판독을 최소화시키기 때문이다.
일반적으로 MIDP JAVA® Specification Requests(JSRs)를 구성하는 어플리케이션 라이브러리(704)는 뷰 시스템(734), 리소스 관리자(735), 및 컨텐츠 제공자(737)를 포함한다. 시스템 서비스(705)는 상태 바(739), 어플리케이션 시작자(740); 모든 인스톨된 어플리케이션을 위한 정보를 유지 보수(maintain)하는 패키지 관리자(741); 어플리케이션 레벨 자바 인터페이스를 전화 서브시스템(620)에 제공하는 전화 관리자(742); 모든 어플리케이션이 예를 들어, 상술한 실시예에서 설명된 방식으로 상태 바와 온-스크린 통지(notification)에 액세스할 수 있도록 하는 통지 관리자(744); 다중 윈도우를 갖는 다중 어플리케이션이 디스플레이(501)을 공유할 수 있도록 하는 윈도우 관리자(745); 분리된 프로세스로 각 어플리케이션을 실행하고, 어플리케이션 라이프 사이클을 관리하고, 교차-어플리케이션 이력을 유지 보수하는 활동 관리자(746); 어플리케이션에서의 상태 변화를 모니터하는 어플리케이션 모니터(747); 및 하나 이상의 어플리케이션들을 종결시키는 어플리케이션 터미네이터(749)를 포함한다.
일반적으로 MIDP 어플리케이션을 구성하는 어플리케이션(706)은 홈 어플리케이션(747), 다이얼 어플리케이션(749), 접촉 어플리케이션(750), 브라우저 어플리케이션(751); 및 사전 어플리케이션(752)를 포함한다.
전화 관리자(742)는 이벤트 통지(예컨대, 전화 상태, 네트워크 상태, SIM(Subscriber Identity Module) 상태, 또는 음성메일 상태)를 제공하고, 상태 정보(예컨대, 네트워크 정보, SIM 정보, 또는 음성메일 존재)에 대한 액세스를 허용하고, 호를 개시하고, 및 호 상태를 질의 및 제어한다. 브라우저 어플리케이션(751)은, 내비게이션 기능을 포함하는 완전한 데스크탑형 관리자(desktop-like manager)에서 웹 페이지를 랜더링한다. 더욱이, 브라우저 어플리케이션(751)은 단일 컬럼, 소형 스크린 랜더링을 허용하고, 다른 어플리케이션으로 HTML 뷰(view)의 내장(embedding)을 지원한다.
도 8은 운영 체제 커널(800)에 의해 구현되는 예시적인 프로세스를 도시하는 블록도이다. 일반적으로, 어플리케이션 및 시스템 서비스는 개별 프로세스에서 실행되며, 활동 관리자(746)는 각 어플리케이션을 개별 프로세스에서 실행하고, 어플리케이션 라이프 사이클을 관리한다. 어플리케이션은 자신의 고유 프로세스에서 실행된다. 하지만, 많은 활동 또는 서비스가 동일한 프로세스에서 실행될 수 있다. 프로세스는 어플리케이션의 구성요소를 실행하기 위해, 필요에 따라 시작 및 정지되며, 프로세스는 리소스가 재이용될 수 있도록 종료될 수 있다. 각 어플리케이션은 자신의 프로세스를 할당받는데, 할당받는 프로세스의 이름은 어플리케이션의 패키지 이름이며, 어플리케이션의 개별적 부분은 다른 프로세스 이름을 할당받을 수 있다.
표면 관리자(816), 윈도우 관리자(814), 또는 활동 관리자(810)와 같은 지속적인 코어 시스템 서비스는, 다이얼 어플리케이션(821)과 연관된 프로세스들과 같은 어플리케이션 프로세스들 또한 지속적이더라도, 시스템 프로세스들에 의해 호스트될 수 있다. 운영 체제 커널(800)에 의해 구현되는 프로세스는 일반적으로 시스템 서비스 프로세스(801), 다이얼 프로세스(802), 브라우저 프로세스(804), 지도 프로세스(805)로서 분류될 수 있다. 시스템 서비스 프로세스(801)는 상태 바(739)와 연관된 상태 바 프로세스(806); 어플리케이션 시작자(740)와 연관되는 어플리케이션 시작 프로세스(807); 패키지 관리자(741)와 연관된 패키지 관리자 프로세스(808); 활동 관리자(746)와 연관된 활동 관리 프로세스(810); 그래픽, 국소화된(localized) 스트링, 및 XML 레이아웃 설명으로의 액세스를 제공하는 리소스 관리자(735)와 연관된 리소스 관리 프로세스(811); 통지 관리자(744)와 연관된 통지 관리 프로세스(812); 윈도우 관리자(745)와 연관된 윈도우 관리자 프로세스(814); 코어 자바 라이브러리(731)와 연관된 코어 자바 라이브러리 프로세스(815); 표면 관리자(721)와 연관된 표면 관리자 프로세스(816); 및 달빅 가상 머신(732)과 연관된 달빅 자바 가상 머신 프로세스(817); LIBC 라이브러리(725)와 연관된 LIBC 프로세스(818); 어플리케이션 터미네이터(749)와 연관된 어플리케이션 터미네이터 프로세스(838); 및 어플리케이션 모니터(747)와 연관된 어플리케이션 모니터 프로세스(839)를 포함할 수 있다.
다이얼 프로세스(802)는 다이얼 어플리케이션(749)과 연관된 다이얼 어플리케이션 프로세스(821); 전화 관리자(742)와 연관된 전화 관리자 프로세스(822); 코어 자바 라이브러리(731)와 연관된 코어 자바 라이브러리 프로세스(824); 달빅 가상 머신(732)과 연관된 달빅 자바 가상 머신 프로세스(825); 및 LIBC 라이브러리(725)와 연관된 LIBC 프로세스(826)를 포함한다. 브라우저 프로세스(804)는 브라우저 어플리케이션(751)에 연관된 브라우저 어플리케이션 프로세스(827); 코어 자바 라이브러리(731)와 연관된 코어 자바 라이브러리 프로세스(828); 달빅 가상 머신(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, 또는 다른 유사한 모바일 디바이스의 부분으로서 구현될 수 있다.
본 명세서에 기재된 시스템의 다양한 구현예와 기술은 디지털 전자 회로, 집적 회로, 특별하게 설계된 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), 및 인터넷이 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 떨어져 있으며, 일반적으로는 통신 네트워크를 통하여 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 실행되고 상호 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의하여 발생한다.
복수의 구현예가 설명되었다. 그럼에도 불구하고, 설명된 구현예의 정신과 범위를 벗어나지 않는 다양한 변형이 만들어질 수 있다. 예를 들어, 상기 개시에서는 "전화 통화(telephony)"라는 용어를 사용하지만, voice-over-IP 시스템이 통신 선을 통하거나 무선으로 한 사람이 다른 사람으로 연결하는 기능에 관하여 동일하게 고려하는 것과 같이, 전화를 사용할 필요가 없을 때 통신의 다른 형태가 적용된다. 따라서, 다른 실시예들은 후술하는 청구항의 범위 내에 있다.
더욱이, 도면에서 묘사된 논리 흐름은 희망하는 결과를 달성하기 위해, 도시된 특정 순서 또는 시계열적 순서일 필요는 없다. 다른 단계들이 제공되거나, 그로부터 단계들이 제거될 수 있으며, 다른 구성요소들이 설명된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서 다른 실시예는 후술하는 청구범위의 범위 내에 속한다.

Claims (22)

  1. 주소좌표로 변환된 사용자 정보(geocoded user information)를 생성하기 위한 컴퓨터로 구현되는 방법으로서,
    퍼스널 엔트리들(personal entries)과 관련된 각각의 위치들(locations)을 표시(indicating)하는 위치-관련 정보를 포함하는 사용자 계정 데이터(user account data)에서의 상기 퍼스널 엔트리들의 서브셋(subset)을 식별하기 위해 상기 사용자 계정 데이터를 검색하는 단계와;
    상기 퍼스널 엔트리들의 서브셋 중에 제1 퍼스널 엔트리는 컴퓨팅 디바이스 상의 제1 어플리케이션에 의해 관리됨을 식별하는 단계와;
    상기 퍼스널 엔트리들의 서브셋 중에 제2 퍼스널 엔트리는 상기 컴퓨팅 디바이스 상의 제2의, 다른 어플리케이션에 의해 관리됨을 식별하는 단계와;
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 단계와;
    상기 컴퓨팅 디바이스의 현재 위치를 보여주는 지도를, (i)상기 제1 퍼스널 엔트리와 관련된 위치에 대응하는 상기 지도 상의 제1 포지션(position)에서 상기 제1 퍼스널 엔트리의 표현(representation) 및 (ii)상기 제2 퍼스널 엔트리와 관련된 위치에 대응하는 상기 지도 상의 제2 포지션에서 상기 제2 퍼스널 엔트리의 표현과 함께 생성하는 단계와, 상기 제1 퍼스널 엔트리의 표현은 상기 제1 퍼스널 엔트리를 관리하는 상기 제1 어플리케이션을 식별하는 제1 시각적 모습(visual appearance)을 갖고, 상기 제2 퍼스널 엔트리의 표현은 상기 제2 퍼스널 엔트리를 관리하는 상기 제2 어플리케이션을 식별하는 제2의, 다른 시각적 모습을 가지며; 그리고
    상기 컴퓨팅 디바이스의 전자적 디스플레이에 상기 지도를 디스플레이하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 제1 퍼스널 엔트리의 표현 및 상기 제2 퍼스널 엔트리의 표현은 상기 지도 상에 시각적으로 오버레이(overlaid)되는 것을 특징으로 하는 방법.
  3. 청구항 1에 있어서,
    상기 컴퓨팅 디바이스의 상기 현재 위치로부터 결정된 거리 내에 있는 상기 제1 퍼스널 엔트리와 관련된 상기 위치에 기초하여 상기 지도 상에 상기 제1 퍼스널 엔트리를 보여주기를 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 청구항 1에 있어서,
    상기 지도상에서 패닝 동작(panning action)을 수신하는 단계, 및 상기 지도상의 새로운 위치에 매치(match)하기 위해 상기 지도의 디스플레이를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 청구항 4에 있어서,
    상기 패닝 동작은 상기 컴퓨팅 디바이스에 있는 위치 센서를 이용하여 실행되는 것을 특징으로 하는 방법.
  6. 청구항 1에 있어서,
    상기 제1 퍼스널 엔트리와 관련된 위치는 상기 제2 퍼스널 엔트리와 관련된 위치보다 상기 컴퓨팅 디바이스의 현재 위치에 가까우며,
    상기 방법은 상기 제1 퍼스널 엔트리와 관련된 위치가 상기 제2 퍼스널 엔트리와 관련된 위치보다 상기 컴퓨팅 디바이스의 현재 위치에 가까운 결과로서 상기 제2 퍼스널 엔트리 보다는 제1 퍼스널 엔트리에 대한 세부사항 정보를 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 삭제
  8. 청구항 1에 있어서,
    상기 제1 퍼스널 엔트리에 대한 상기 위치-관련 정보는 설명적인(descriptive) 위치 데이터이며,
    상기 방법은 상기 제1 퍼스널 엔트리에 대한 상기 설명적인 위치 데이터를 원격 서버로 전송하고 이에 대한 응답으로 주소좌표로 변환된 정보를 응답으로 수신함으로써 상기 제1 퍼스널 엔트리의 위치를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 청구항 1에 있어서,
    상기 사용자 계정 데이터와 관련된 쿼리(query)를 원격 로컬 검색 엔진에 제출하는 단계; 및
    상기 쿼리에 응답하여 수신된 데이터를 나타내는 아이콘을 상기 제1 및 제2 퍼스널 엔트리들의 표현들과 함께 상기 지도 상에 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 청구항 1에 있어서,
    상기 지도를 생성하기 위한 어플리케이션으로부터 분리된 모듈을 이용하여 상기 컴퓨팅 디바이스의 위치를 트래킹(tracking)하는 단계;
    상기 모듈에 위치 정보를 등록하는 단계; 및
    상기 등록된 위치 정보가 상기 컴퓨팅 디바이스의 위치에 가까울 때 상기 지도를 생성하기 위한 어플리케이션에 경보(alerting)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 명령들(instructions)이 기록되고 저장된 컴퓨터로 판독가능한 유형적 매체로서, 상기 명령들은 실행될 때,
    퍼스널 엔트리들(personal entries)과 관련된 각각의 위치들(locations)을 표시하는 위치-관련 정보를 포함하는 사용자 계정 데이터(user account data)에서의 상기 퍼스널 엔트리들의 서브셋(subset)을 식별하기 위해 상기 사용자 계정 데이터를 검색하는 동작과;
    상기 퍼스널 엔트리들의 서브셋 중에 제1 퍼스널 엔트리는 컴퓨팅 디바이스 상의 제1 어플리케이션에 의해 관리됨을 식별하는 동작과;
    상기 퍼스널 엔트리들의 서브셋 중에 제2 퍼스널 엔트리는 상기 컴퓨팅 디바이스 상의 제2의, 다른 어플리케이션에 의해 관리됨을 식별하는 동작과;
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 동작과;
    상기 컴퓨팅 디바이스의 현재 위치를 보여주는 지도를, (i)상기 제1 퍼스널 엔트리와 관련된 위치에 대응하는 상기 지도 상의 제1 포지션(position)에서 상기 제1 퍼스널 엔트리의 표현(representation) 및 (ii)상기 제2 퍼스널 엔트리와 관련된 위치에 대응하는 상기 지도 상의 제2 포지션에서 상기 제2 퍼스널 엔트리의 표현과 함께 생성하는 동작과, 상기 제1 퍼스널 엔트리의 표현은 상기 제1 퍼스널 엔트리를 관리하는 상기 제1 어플리케이션을 식별하는 제1 시각적 모습(visual appearance)을 갖고, 상기 제2 퍼스널 엔트리의 표현은 상기 제2 퍼스널 엔트리를 관리하는 상기 제2 어플리케이션을 식별하는 제2의, 다른 시각적 모습을 가지며; 그리고
    상기 컴퓨팅 디바이스의 전자적 디스플레이에 상기 지도를 디스플레이하는 동작을 포함하는 동작들을 수행하는 것을 특징으로 하는 매체.
  12. 청구항 11에 있어서,
    지도를 생성하기 위한 상기 명령은, 상기 컴퓨팅 디바이스의 상기 현재 위치로부터 결정된 거리 내에 있는 상기 제1 퍼스널 엔트리와 관련된 상기 위치에 기초하여 상기 지도 상에 상기 제1 퍼스널 엔트리를 보여주기를 선택하기 위한 명령을 더 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 유형적 매체.
  13. 청구항 11에 있어서,
    지도를 생성하기 위한 상기 명령은, 상기 지도상에서 패닝 동작을 수신하고, 상기 지도상의 새로운 위치에 매치하기 위해 상기 지도의 디스플레이를 업데이트하기 위한 명령을 더 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 유형적 매체.
  14. 삭제
  15. 청구항 11에 있어서,
    상기 제1 퍼스널 엔트리에 대한 상기 위치-관련 정보는 설명적인(descriptive) 위치 데이터이며,
    상기 동작들은 상기 제1 퍼스널 엔트리에 대한 상기 설명적인 위치 데이터를 원격 서버로 전송하고 이에 대한 응답으로 주소좌표로 변환된 정보를 응답으로 수신함으로써 상기 제1 퍼스널 엔트리의 위치를 결정하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 유형적 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 청구항 11에 있어서,
    상기 상기 동작들은, 상기 사용자 계정 데이터와 관련된 쿼리(query)를 원격 로컬 검색 엔진에 제출하는 동작; 및
    상기 쿼리에 응답하여 수신된 데이터를 나타내는 아이콘을 상기 제1 및 제2 퍼스널 엔트리들의 표현들과 함께 상기 지도 상에 디스플레이하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 유형적 매체.
  22. 청구항 11에 있어서,
    상기 상기 동작들은, 상기 지도를 생성하기 위한 어플리케이션으로부터 분리된 모듈을 이용하여 상기 컴퓨팅 디바이스의 위치를 트래킹(tracking)하는 동작;
    상기 모듈에 위치 정보를 등록하는 동작; 및
    상기 등록된 위치 정보가 상기 컴퓨팅 디바이스의 위치에 가까울 때 상기 지도를 생성하기 위한 어플리케이션에 경보(alerting)하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 유형적 매체.
KR1020117011633A 2008-10-22 2009-10-21 개인 정보를 주소좌표로 변환 KR101633836B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/256,078 US8060582B2 (en) 2008-10-22 2008-10-22 Geocoding personal information
US12/256,078 2008-10-22

Publications (2)

Publication Number Publication Date
KR20110081863A KR20110081863A (ko) 2011-07-14
KR101633836B1 true KR101633836B1 (ko) 2016-06-27

Family

ID=41402731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117011633A KR101633836B1 (ko) 2008-10-22 2009-10-21 개인 정보를 주소좌표로 변환

Country Status (6)

Country Link
US (6) US8060582B2 (ko)
EP (2) EP2356586A1 (ko)
JP (2) JP6257124B2 (ko)
KR (1) KR101633836B1 (ko)
CN (2) CN107016051A (ko)
WO (1) WO2010048249A1 (ko)

Families Citing this family (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765319B1 (en) * 2003-07-30 2010-07-27 Gorman Sean P System and method for analyzing the structure of logical networks
US7330112B1 (en) * 2003-09-09 2008-02-12 Emigh Aaron T Location-aware services
US7818317B1 (en) 2003-09-09 2010-10-19 James Roskind Location-based tasks
US8665325B2 (en) * 2003-10-08 2014-03-04 Qwest Communications International Inc. Systems and methods for location based image telegraphy
EP1776560B1 (en) * 2004-07-23 2011-11-30 DeCarta Inc. Automated prioritization of map objects
US7529195B2 (en) 2004-07-30 2009-05-05 Fortiusone, Inc. System and method of mapping and analyzing vulnerabilities in networks
US7721005B2 (en) * 2005-01-19 2010-05-18 Iona Technologies Limited Data bus between middleware layers
CA2662939C (en) 2006-09-08 2017-01-10 Fortiusone, Inc. System and method for web enabled geo-analytics and image processing
US8843853B1 (en) 2006-12-05 2014-09-23 At&T Mobility Ii Llc Home screen user interface for electronic device display
AU2008216368A1 (en) * 2007-02-13 2008-08-21 Fortiusone, Inc. A method and system for integrating a social network and data repository to enable map creation
US8060582B2 (en) 2008-10-22 2011-11-15 Google Inc. Geocoding personal information
US8054180B1 (en) 2008-12-08 2011-11-08 Amazon Technologies, Inc. Location aware reminders
JP2010177945A (ja) * 2009-01-28 2010-08-12 Sony Corp 情報提供装置、移動通信装置、情報提供システム、情報提供方法、およびプログラム
US20100205242A1 (en) * 2009-02-12 2010-08-12 Garmin Ltd. Friend-finding system
US20120064921A1 (en) * 2009-03-06 2012-03-15 Hernoud Melani S Systems and methods for mobile tracking, communications and alerting
US8560515B2 (en) * 2009-03-31 2013-10-15 Microsoft Corporation Automatic generation of markers based on social interaction
US9336667B2 (en) * 2009-04-06 2016-05-10 Hassan Hammoud Electronic mailbox system
US8849314B2 (en) 2009-04-29 2014-09-30 Blackberry Limited Systems and methods for location tracking notification
US8836601B2 (en) 2013-02-04 2014-09-16 Ubiquiti Networks, Inc. Dual receiver/transmitter radio devices with choke
US9496620B2 (en) 2013-02-04 2016-11-15 Ubiquiti Networks, Inc. Radio system for long-range high-speed wireless communication
KR101631105B1 (ko) * 2009-11-09 2016-06-16 삼성전자주식회사 지도를 이용한 위치 기반 사용자 정보 제공 방법 및 장치
US20110239163A1 (en) * 2009-12-04 2011-09-29 Daisuke Mochizuki Display screen control method, graphical user interface, information processing apparatus, information processing method, and program
KR101645461B1 (ko) * 2010-01-12 2016-08-12 삼성전자주식회사 휴대용 단말기에서 근거리 무선 네트워크 자동 연결 방법 및 장치
US20120005324A1 (en) * 2010-03-05 2012-01-05 Telefonica, S.A. Method and System for Operations Management in a Telecommunications Terminal
US8458034B2 (en) * 2010-03-17 2013-06-04 Cisco Technology, Inc. Selecting advertisements and presentations to present based on known audience profiles
EP2558877A4 (en) * 2010-04-12 2013-10-30 Nokia Corp SELECTING A RELATIVE POSITIONING METHOD
US9569549B1 (en) 2010-05-25 2017-02-14 Amazon Technologies, Inc. Location based recommendation and tagging of media content items
KR101657314B1 (ko) * 2010-06-29 2016-09-19 삼성전자주식회사 근거리 무선통신을 이용한 오디오 제어 시스템 및 방법
US20120016856A1 (en) 2010-07-15 2012-01-19 Google Inc Content extractor
US8392261B2 (en) 2010-07-15 2013-03-05 Google Inc. Local shopping and inventory
EP2408171A1 (en) * 2010-07-16 2012-01-18 Research In Motion Limited Application programming interface for mapping application
US10267892B2 (en) 2010-10-04 2019-04-23 Qualcomm Incorporated Locating a device using a reference point to align location information
CN101996239A (zh) * 2010-10-18 2011-03-30 华为终端有限公司 一种地图电话本生成方法、电子地图及其移动终端
US8958822B2 (en) * 2010-10-25 2015-02-17 Alohar Mobile Inc. Determining points of interest of a mobile user
US9342998B2 (en) * 2010-11-16 2016-05-17 Microsoft Technology Licensing, Llc Techniques to annotate street view images with contextual information
US9177058B2 (en) * 2010-11-18 2015-11-03 Google Inc. Multi-step search result retrieval
US8655889B2 (en) * 2010-12-10 2014-02-18 Microsoft Corporation Autonomous mobile blogging
EP2659394A4 (en) * 2010-12-30 2016-10-26 Ericsson Telefon Ab L M METHOD FOR MANUFACTURING A GEOGRAPHIC TREE
CA2821565C (en) * 2011-01-07 2017-04-18 Research In Motion Limited System and method for controlling mobile communication devices
CN102104689A (zh) * 2011-04-06 2011-06-22 宇龙计算机通信科技(深圳)有限公司 联系人信息查找方法、系统及移动终端
US8763153B2 (en) 2011-05-10 2014-06-24 Microsoft Corporation Presenting messages associated with locations
WO2012158149A1 (en) * 2011-05-13 2012-11-22 James Allen Hymel Wireless communication system with server providing search facts and related methods
CN103999028B (zh) * 2011-05-23 2018-05-15 微软技术许可有限责任公司 不可见控件
AU2012261938B2 (en) 2011-06-03 2015-03-19 Apple Inc. Devices and methods for comparing and selecting alternative navigation routes
US8310361B1 (en) 2011-06-13 2012-11-13 Google Inc. Creating and monitoring alerts for a geographical area
KR101834937B1 (ko) * 2011-07-06 2018-03-06 삼성전자 주식회사 통신 시스템에서 사용자 단말기의 정보 획득 방법 및 장치
US8949212B1 (en) * 2011-07-08 2015-02-03 Hariharan Dhandapani Location-based informaton display
US8683008B1 (en) 2011-08-04 2014-03-25 Google Inc. Management of pre-fetched mapping data incorporating user-specified locations
US20130054585A1 (en) * 2011-08-23 2013-02-28 Microsoft Corporation Geographic search with mixed-precision results
US9147202B1 (en) 2011-09-01 2015-09-29 LocalResponse, Inc. System and method of direct marketing based on explicit or implied association with location derived from social media content
US8959440B2 (en) 2011-09-08 2015-02-17 Citizen, Inc. Inner-circle social sourcing
US8204966B1 (en) 2011-09-26 2012-06-19 Google Inc. Map tile data pre-fetching based on user activity analysis
US8280414B1 (en) 2011-09-26 2012-10-02 Google Inc. Map tile data pre-fetching based on mobile device generated event analysis
US9536224B2 (en) * 2011-11-03 2017-01-03 Htc Corporation Method, apparatus and recording medium for displaying tasks
US9275374B1 (en) 2011-11-15 2016-03-01 Google Inc. Method and apparatus for pre-fetching place page data based upon analysis of user activities
US8886715B1 (en) 2011-11-16 2014-11-11 Google Inc. Dynamically determining a tile budget when pre-fetching data in a client device
US9063951B1 (en) 2011-11-16 2015-06-23 Google Inc. Pre-fetching map data based on a tile budget
US8711181B1 (en) 2011-11-16 2014-04-29 Google Inc. Pre-fetching map data using variable map tile radius
CN103136959B (zh) * 2011-11-25 2015-03-11 北京中交兴路信息科技有限公司 在移动目标监控中聚合展示移动目标信息的方法
CN103136655A (zh) * 2011-12-01 2013-06-05 凹凸电子(武汉)有限公司 用于在电子地图上显示联系人信息的装置和方法
US8812021B2 (en) * 2011-12-02 2014-08-19 Yellowpages.Com, Llc System and method for coordinating meetings between users of a mobile communication network
US9305107B2 (en) 2011-12-08 2016-04-05 Google Inc. Method and apparatus for pre-fetching place page data for subsequent display on a mobile computing device
US9197713B2 (en) 2011-12-09 2015-11-24 Google Inc. Method and apparatus for pre-fetching remote resources for subsequent display on a mobile computing device
US9389088B2 (en) * 2011-12-12 2016-07-12 Google Inc. Method of pre-fetching map data for rendering and offline routing
US8803920B2 (en) * 2011-12-12 2014-08-12 Google Inc. Pre-fetching map tile data along a route
TWI486793B (zh) * 2011-12-15 2015-06-01 Ind Tech Res Inst 地理位置呈現之系統、方法、其電腦可讀取記錄媒體與其電腦程式產品
US9342965B2 (en) * 2011-12-22 2016-05-17 Intel Corporation Methods and apparatus for providing assistance services for large crowds
CN103220776A (zh) * 2012-01-19 2013-07-24 北京新网互联科技有限公司 信息获取系统、信息获取方法和移动终端
US20130203509A1 (en) * 2012-02-03 2013-08-08 Microsoft Corporation Virtual location check-in
US10984337B2 (en) 2012-02-29 2021-04-20 Microsoft Technology Licensing, Llc Context-based search query formation
US9772745B2 (en) * 2012-03-06 2017-09-26 Henricks Investment Holdings, Llc Methods and systems for facilitating a navigation of a facility
US9253589B2 (en) 2012-03-12 2016-02-02 Blackberry Limited Wireless local area network hotspot registration using near field communications
US9332387B2 (en) 2012-05-02 2016-05-03 Google Inc. Prefetching and caching map data based on mobile network coverage
US8635021B2 (en) 2012-05-04 2014-01-21 Google Inc. Indicators for off-screen content
US20130304553A1 (en) 2012-05-09 2013-11-14 Google Inc. Point of sale offer redemptions
EP2850541A4 (en) * 2012-05-18 2016-02-17 Tata Consultancy Services Ltd SYSTEM AND METHOD FOR CREATING STRUCTURED EVENT OBJECTS
US9482296B2 (en) 2012-06-05 2016-11-01 Apple Inc. Rendering road signs during navigation
US9230556B2 (en) 2012-06-05 2016-01-05 Apple Inc. Voice instructions during navigation
US9111380B2 (en) 2012-06-05 2015-08-18 Apple Inc. Rendering maps
US8965696B2 (en) 2012-06-05 2015-02-24 Apple Inc. Providing navigation instructions while operating navigation application in background
US8965693B2 (en) 2012-06-05 2015-02-24 Apple Inc. Geocoded data detection and user interfaces for same
US9886794B2 (en) 2012-06-05 2018-02-06 Apple Inc. Problem reporting in maps
US10176633B2 (en) 2012-06-05 2019-01-08 Apple Inc. Integrated mapping and navigation application
US9453734B2 (en) * 2012-06-05 2016-09-27 Apple Inc. Smart loading of map tiles
US9418672B2 (en) 2012-06-05 2016-08-16 Apple Inc. Navigation application with adaptive instruction text
US9997069B2 (en) 2012-06-05 2018-06-12 Apple Inc. Context-aware voice guidance
US8954854B2 (en) * 2012-06-06 2015-02-10 Nokia Corporation Methods and apparatus for sound management
US20130332194A1 (en) * 2012-06-07 2013-12-12 Iquartic Methods and systems for adaptive ehr data integration, query, analysis, reporting, and crowdsourced ehr application development
US9430941B2 (en) 2012-06-10 2016-08-30 Apple Inc. Harvesting traffic information from mobile devices
US10326678B2 (en) * 2012-06-27 2019-06-18 Ubiquiti Networks, Inc. Method and apparatus for controlling power to an electrical load based on sensor data
US20140025676A1 (en) * 2012-07-23 2014-01-23 Vizibility Inc. System and method for processing pre-authorized contact data
US8849942B1 (en) 2012-07-31 2014-09-30 Google Inc. Application programming interface for prefetching map data
CN104662527A (zh) * 2012-08-10 2015-05-27 诺基亚公司 用于提供众包地理编码的方法和装置
US20150130845A1 (en) * 2012-08-15 2015-05-14 Google Inc. Out-of-viewpoint indicators for relevant map features
US9619812B2 (en) * 2012-08-28 2017-04-11 Nuance Communications, Inc. Systems and methods for engaging an audience in a conversational advertisement
US20140074871A1 (en) * 2012-09-07 2014-03-13 Research In Motion Limited Device, Method and Computer-Readable Medium For Recognizing Places
US20140122483A1 (en) * 2012-10-26 2014-05-01 Palo Alto Research Center Incorporated System and method for determining a duration for user activities based on social-network events
CN102982469A (zh) * 2012-11-06 2013-03-20 北京百度网讯科技有限公司 基于移动终端中地图进行推广的方法、装置及系统
WO2014072767A1 (en) * 2012-11-06 2014-05-15 Nokia Corporation Apparatus and method for displaying image-based representations of geographical locations in an electronic text
US8798926B2 (en) * 2012-11-14 2014-08-05 Navteq B.V. Automatic image capture
US9330176B2 (en) * 2012-11-14 2016-05-03 Sap Se Task-oriented search engine output
CN103929346B (zh) * 2013-01-11 2016-12-28 腾讯科技(深圳)有限公司 在即时通讯工具中分享距离信息的方法及系统
US9652473B2 (en) * 2013-01-25 2017-05-16 Adobe Systems Incorporated Correlating social media data with location information
US9397820B2 (en) 2013-02-04 2016-07-19 Ubiquiti Networks, Inc. Agile duplexing wireless radio devices
US9543635B2 (en) 2013-02-04 2017-01-10 Ubiquiti Networks, Inc. Operation of radio devices for long-range high-speed wireless communication
US8855730B2 (en) 2013-02-08 2014-10-07 Ubiquiti Networks, Inc. Transmission and reception of high-speed wireless communication using a stacked array antenna
US9317813B2 (en) 2013-03-15 2016-04-19 Apple Inc. Mobile device with predictive routing engine
US9303997B2 (en) 2013-03-15 2016-04-05 Apple Inc. Prediction engine
US20140365505A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
US9200915B2 (en) 2013-06-08 2015-12-01 Apple Inc. Mapping application with several user interfaces
CN104134398B (zh) * 2013-05-03 2017-08-25 腾讯科技(深圳)有限公司 一种展示地图细节信息的方法及装置
US20140359637A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Task continuance across devices
CN105518644B (zh) * 2013-08-09 2020-08-07 杨绍峰 在地图上实时处理并显示社交数据的方法
CN105580003B (zh) * 2013-08-14 2019-01-25 快捷四通有限公司 数据清理和标准化以及地理编码方法
KR102192157B1 (ko) * 2013-09-26 2020-12-16 삼성전자주식회사 검색 장소에 대한 관련 정보를 제공하는 전자 장치 및 방법
US9110869B2 (en) * 2013-09-27 2015-08-18 Nokia Technologies Oy Visual representation of a character identity and a location identity
ES2767051T3 (es) 2013-10-11 2020-06-16 Ubiquiti Inc Optimización de sistema de radio inalámbrica mediante análisis de espectro persistente
US9466140B2 (en) * 2013-10-18 2016-10-11 eQuisition, LLC. System and method for making a map
WO2015072891A1 (ru) * 2013-11-15 2015-05-21 Арташес Валерьевич ИКОНОМОВ Геолокационное поисковое устройство
US10902522B1 (en) 2013-12-06 2021-01-26 Guidewire Software, Inc. Inter-frame communication
US10417588B1 (en) * 2013-12-06 2019-09-17 Guidewire Software, Inc. Processing insurance related address information
CN103699623B (zh) * 2013-12-19 2017-07-04 百度在线网络技术(北京)有限公司 地理编码实现方法和装置
JP5617027B1 (ja) 2013-12-25 2014-10-29 ナレッジスイート株式会社 情報管理システム及び情報管理プログラム
KR101561628B1 (ko) * 2013-12-30 2015-10-20 주식회사 케이티 스마트 글래스의 영상 정보를 제공하는 검색 장치 및 검색 방법
US20150256355A1 (en) 2014-03-07 2015-09-10 Robert J. Pera Wall-mounted interactive sensing and audio-visual node devices for networked living and work spaces
PL3114884T3 (pl) 2014-03-07 2020-05-18 Ubiquiti Inc. Uwierzytelnianie i identyfikacja urządzenia w chmurze
US9912053B2 (en) 2014-03-17 2018-03-06 Ubiquiti Networks, Inc. Array antennas having a plurality of directional beams
EP3127187B1 (en) 2014-04-01 2020-11-11 Ubiquiti Inc. Antenna assembly
CN103973526B (zh) * 2014-05-19 2017-04-19 百度在线网络技术(北京)有限公司 基于网络拓扑结构的定位方法及装置
KR101478172B1 (ko) * 2014-07-09 2014-12-31 주식회사 다올넷 위치 정보를 활용한 푸드트럭 및 이용자 분포 검색 시스템
US9743375B2 (en) * 2014-08-05 2017-08-22 Wells Fargo Bank, N.A. Location tracking
US9684425B2 (en) 2014-08-18 2017-06-20 Google Inc. Suggesting a target location upon viewport movement
US9792556B2 (en) 2014-09-26 2017-10-17 Sony Corporation Mapping gathered location information to short form place names using correlations and confidence measures that pertain to lengths of overlaps of location data and calendar data sets
US9275074B1 (en) * 2014-10-03 2016-03-01 Tip Vyspots, LLC Vy Systems and methods for content placement, retrieval and management based on geolocation and other parameters
CN104602336A (zh) * 2014-12-25 2015-05-06 大连楼兰科技股份有限公司 基于at指令的gsm网络下基站定位方法
CN104796859B (zh) * 2015-04-14 2019-03-15 Oppo广东移动通信有限公司 一种地理编码器的切换方法和装置
US9405743B1 (en) 2015-05-13 2016-08-02 International Business Machines Corporation Dynamic modeling of geospatial words in social media
US20160357804A1 (en) * 2015-06-07 2016-12-08 Apple Inc. Determining location of a calendar event
WO2017099785A1 (en) * 2015-12-10 2017-06-15 Hewlett Packard Enterprise Development Lp User action task flow
CN106126217B (zh) * 2016-06-17 2019-03-15 武汉深之度科技有限公司 一种应用窗口的信息获取方法、装置及计算设备
JP6186057B1 (ja) * 2016-08-19 2017-08-23 ヤフー株式会社 抽出装置、抽出方法、及び抽出プログラム
US20180144440A1 (en) * 2016-11-23 2018-05-24 Microsoft Technology Licensing, Llc Providing Map Context
US10438141B2 (en) 2016-11-30 2019-10-08 Blazer and Flip Flops, Inc Venue traffic flow management
US11030266B2 (en) 2016-11-30 2021-06-08 Blazer and Flip Flops, Inc Venue recommendations based on shared guest traits
US11337030B2 (en) 2016-11-30 2022-05-17 Blazer and Flip Flops, Inc. Assisted venue staff guidance
US10270727B2 (en) * 2016-12-20 2019-04-23 Palantir Technologies, Inc. Short message communication within a mobile graphical map
US10334401B2 (en) 2016-12-22 2019-06-25 Pigeon Networks, Co. Real time location system
EP3593088A4 (en) * 2017-03-06 2021-01-13 Blazer and Flip Flops, Inc. DBA The Experience Engine DYNAMIC TRAVEL MAPPING AND CAPTURING
CN107239494B (zh) * 2017-04-28 2020-01-21 武汉星耀科技有限公司 一种记录数据的生成显示方法及系统
US10853574B2 (en) 2017-09-28 2020-12-01 Oracle International Corporation Navigating electronic documents using domain discourse trees
US11809825B2 (en) 2017-09-28 2023-11-07 Oracle International Corporation Management of a focused information sharing dialogue based on discourse trees
EP3528138A1 (en) * 2018-02-14 2019-08-21 Dr. Ing. h.c. F. Porsche AG Method and apparatus for location recognition
JP7258047B2 (ja) 2018-05-09 2023-04-14 オラクル・インターナショナル・コーポレイション 収束質問に対する回答を改善するための仮想談話ツリーの構築
US10990615B2 (en) * 2018-06-27 2021-04-27 Uber Technologies, Inc. Visual search system for finding trip destination
US20200160273A1 (en) * 2018-11-16 2020-05-21 Adp, Llc Geolocation web page generation system
WO2020138765A1 (ko) * 2018-12-24 2020-07-02 주식회사 플럭시티 유니버설 지도를 이용한 유저별 지리 정보 및 분석 정보 제공 방법, 장치 및 컴퓨터-판독가능 기록 매체
US10877947B2 (en) 2018-12-11 2020-12-29 SafeGraph, Inc. Deduplication of metadata for places
CN111723959B (zh) * 2019-03-19 2023-12-12 腾讯科技(深圳)有限公司 区域的划分方法、装置、存储介质及电子装置
US10687273B1 (en) 2019-03-19 2020-06-16 Bank Of America Corporation Provisioning services based on geolocation data and activity recognition
US11580298B2 (en) * 2019-11-14 2023-02-14 Oracle International Corporation Detecting hypocrisy in text
CN116529559A (zh) * 2020-06-17 2023-08-01 阿斯特导航公司 使来自多个磁导航设备的重叠磁测量数据相关联并用该数据更新地磁地图
US20220090920A1 (en) * 2020-09-24 2022-03-24 Here Global B.V. Method, system, and computer program product for generating map update data using subtree data structures
US11899696B2 (en) 2020-10-06 2024-02-13 SafeGraph, Inc. Systems and methods for generating multi-part place identifiers
US11762914B2 (en) 2020-10-06 2023-09-19 SafeGraph, Inc. Systems and methods for matching multi-part place identifiers
WO2022076081A1 (en) * 2020-10-06 2022-04-14 SafeGraph, Inc. Systems and methods for generating multi-part place identifiers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050192946A1 (en) * 2003-12-29 2005-09-01 Yahoo! Inc. Lateral search

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0850594A (ja) * 1994-08-04 1996-02-20 Hitachi Ltd 情報処理装置
IL125432A (en) * 1998-01-30 2010-11-30 Easynet Access Inc Personalized internet interaction
US6549940B1 (en) * 1998-06-29 2003-04-15 Sbc Technology Resources, Inc. Graphical user interface for providing and facilitating user for searching and accessing information with options of selecting one of carrier circuit, facility reroute, customer and cable
SE515084C2 (sv) * 1998-08-26 2001-06-05 Ericsson Telefon Ab L M Förfarande och anordning i ett IP-nät
US6381603B1 (en) * 1999-02-22 2002-04-30 Position Iq, Inc. System and method for accessing local information by using referencing position system
JP2001092878A (ja) * 1999-09-27 2001-04-06 Fujitsu Ltd スケジュール提示およびそれに応じたアクション提案・実行装置,その処理方法,その処理のためのプログラムを記録した記録媒体,スケジュール記録媒体,および自動スケジュール生成装置
AUPQ599700A0 (en) * 2000-03-03 2000-03-23 Super Internet Site System Pty Ltd On-line geographical directory
US6587782B1 (en) * 2000-03-14 2003-07-01 Navigation Technologies Corp. Method and system for providing reminders about points of interests while traveling
US6684250B2 (en) * 2000-04-03 2004-01-27 Quova, Inc. Method and apparatus for estimating a geographic location of a networked entity
GB0008929D0 (en) 2000-04-11 2000-05-31 Hewlett Packard Co Monitoring of location-associated events
US20010029184A1 (en) 2000-04-11 2001-10-11 I'anson Colin Monitoring of location-associated events
US20030084098A1 (en) * 2000-04-13 2003-05-01 Daniel Lavin Navigation server for use with, for example, a wireless web access device having a navigation control unit
US6462674B2 (en) * 2000-04-18 2002-10-08 Mazda Motor Corporation Communication apparatus and its current position communication method, navigation apparatus for a vehicle and its information communication method, computer program product, and computer-readable storage medium
KR100386752B1 (ko) * 2000-04-24 2003-06-09 김석배 실영상을 이용한 차량 항법 시스템
JP3629514B2 (ja) * 2000-05-24 2005-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 領域算出方法、空間データマイニング装置、地図情報表示装置、空間データマイニングシステム、および記憶媒体
JP2001337933A (ja) * 2000-05-30 2001-12-07 Casio Comput Co Ltd スケジュール管理機能付端末装置およびそのプログラム記録媒体
US7474896B2 (en) * 2000-07-14 2009-01-06 Norman Mohi Locating system and method
WO2002009009A1 (en) * 2000-07-26 2002-01-31 Cool Partners, Inc. Method and apparatus for selecting streaming media in real-time
JP2002077416A (ja) * 2000-08-30 2002-03-15 Nec Corp 留守番メッセージの転送サービス
GB2368935A (en) * 2000-11-14 2002-05-15 Itt Mfg Enterprises Inc Updating a searchable database of descriptive information describing information stored at a plurality of addressable logical locations
KR100400549B1 (ko) * 2000-12-22 2003-10-08 엘지전자 주식회사 단거리 무선전용 통신망을 이용한 지리정보 서비스 장치
US20020091735A1 (en) * 2001-01-08 2002-07-11 Yung-Chung Chen. Method and apparatus for locating geographically classified establishment information
US20020116472A1 (en) * 2001-02-20 2002-08-22 Niragonogo Inc. Method and system for pushing content through cellular network
US6944447B2 (en) * 2001-04-27 2005-09-13 Accenture Llp Location-based services
US7370085B2 (en) * 2001-05-03 2008-05-06 International Business Machines Corporation Method, system, and program for providing user location information with a personal information management program
JP2002340605A (ja) * 2001-05-15 2002-11-27 Yamaha Corp 携帯通信装置、ナビゲーションサーバ、及びナビゲーションシステム
US6549850B2 (en) * 2001-07-02 2003-04-15 Suunto Oy Receiver of a satellite positioning system and associated method
KR100467573B1 (ko) * 2001-07-11 2005-01-24 삼성전자주식회사 지리 정보 시스템 및 이제 적합한 지리 정보 제공 방법
JP2003130672A (ja) * 2001-10-25 2003-05-08 Aisin Aw Co Ltd 情報表示システム
CN100353142C (zh) * 2001-10-25 2007-12-05 爱信艾达株式会社 信息显示系统
JP2003130662A (ja) * 2001-10-25 2003-05-08 Aisin Aw Co Ltd 情報表示システム
US20050149617A1 (en) * 2001-11-26 2005-07-07 Objectworld Communications Corp. Graphical interface based software for creating communication service agents
US6988103B2 (en) * 2001-12-26 2006-01-17 Autodesk, Inc. Location based services bridge to external data sources
US20030126150A1 (en) * 2001-12-31 2003-07-03 Jawe Chan System and method for building a database to be used in location-based service
US7693947B2 (en) * 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for graphically displaying messaging traffic
US20030184594A1 (en) * 2002-03-25 2003-10-02 John Ellenby Apparatus and methods for interfacing with remote addressing systems
US6691029B2 (en) * 2002-05-09 2004-02-10 International Business Machines Corporation System and method for automatically generating a third party notification when a traveler is overdue
US20040006425A1 (en) * 2002-07-03 2004-01-08 Terragraphix, Inc. System for communicating and associating information with a geographic location
US20040019698A1 (en) * 2002-07-24 2004-01-29 Hamid Najafi Method and system of registering a geoname for a geolocation and matching attributes of the geolocation
JP2004102175A (ja) * 2002-09-12 2004-04-02 Fuji Xerox Co Ltd 記憶補助装置及びシステム
US7707140B2 (en) * 2002-10-09 2010-04-27 Yahoo! Inc. Information retrieval system and method employing spatially selective features
US7383316B2 (en) * 2002-11-15 2008-06-03 Microsoft Corporation System and method for providing dynamic location information
US7474960B1 (en) * 2002-12-30 2009-01-06 Mapquest, Inc. Presenting a travel route
KR100512561B1 (ko) * 2003-01-15 2005-09-05 엘지전자 주식회사 화면보호기 작동을 예고할 수 있는 영상표시기기 및 그 방법
US6993538B2 (en) * 2003-01-28 2006-01-31 Microsoft Corporation System and process for identifying objects and/or points nearby a given object or point
JP2004272217A (ja) * 2003-02-18 2004-09-30 Canon Inc 地図画像表示制御方法およびそのプログラムおよびそのプログラムを記憶する記憶媒体および電子機器
US20040167706A1 (en) * 2003-02-25 2004-08-26 Becker Daniel C. Web based system providing GPS waypoint information
GB2400175B (en) * 2003-02-26 2007-11-28 Tomtom Bv Navigation device and method for exchanging data between resident applications
JP4203354B2 (ja) * 2003-05-19 2008-12-24 パナソニック株式会社 コンテンツ配信装置およびコンテンツ受信装置
KR20050038671A (ko) * 2003-10-22 2005-04-29 에스케이 텔레콤주식회사 이동통신망에서의 위치기반 서비스 플랫폼과 이에서의지도 데이터 전달 및 디스플레이 방법
DE112005000605T5 (de) * 2004-03-15 2007-05-10 Tomtom International B.V. Navigationsvorrichtung, die dynamische Reiseinformationen anzeigt
US7373244B2 (en) * 2004-04-20 2008-05-13 Keith Kreft Information mapping approaches
US20050246238A1 (en) * 2004-04-28 2005-11-03 Motorola, Inc. Item of interest marking and posting system and method
AU2005246368A1 (en) * 2004-05-19 2005-12-01 Metacarta, Inc. Systems and methods of geographical text indexing
US20060020468A1 (en) * 2004-07-23 2006-01-26 Inductive Signature Technologies, Inc. Telephone mapping and traveler information dissemination system
JP4719500B2 (ja) * 2004-11-04 2011-07-06 アルパイン株式会社 車載装置
US20060123014A1 (en) * 2004-12-07 2006-06-08 David Ng Ranking Internet Search Results Based on Number of Mobile Device Visits to Physical Locations Related to the Search Results
JP4432801B2 (ja) * 2005-03-02 2010-03-17 株式会社デンソー 運転支援装置
US7466244B2 (en) * 2005-04-21 2008-12-16 Microsoft Corporation Virtual earth rooftop overlay and bounding
US8103445B2 (en) * 2005-04-21 2012-01-24 Microsoft Corporation Dynamic map rendering as a function of a user parameter
US20060271517A1 (en) * 2005-05-25 2006-11-30 Deloach James D Jr User-driven calibration for location system
KR20060122620A (ko) 2005-05-27 2006-11-30 주식회사 팬택 이동통신 단말기를 이용하여 주기적으로 위치 정보를제공하는 단말 기반 지피에스 서비스 제공 방법 및 시스템
US8046375B2 (en) * 2005-06-16 2011-10-25 Lycos, Inc. Geo targeted commerce
WO2007002800A2 (en) * 2005-06-28 2007-01-04 Metacarta, Inc. User interface for geographic search
US20080214204A1 (en) * 2005-11-01 2008-09-04 Jorey Ramer Similarity based location mapping of mobile comm facility users
US8078578B2 (en) * 2005-10-14 2011-12-13 Cisco Technology, Inc. Sharing of presence-based time-zone information
EP1955213A4 (en) * 2005-11-07 2010-01-06 Google Inc ILLUSTRATION IN MOBILE DEVICES
US9294334B2 (en) * 2005-12-12 2016-03-22 Google Inc. Controlling communication within a container document
WO2007069361A1 (ja) * 2005-12-16 2007-06-21 Matsushita Electric Industrial Co., Ltd. 情報処理端末
US20070150840A1 (en) * 2005-12-22 2007-06-28 Andrew Olcott Browsing stored information
US7617246B2 (en) * 2006-02-21 2009-11-10 Geopeg, Inc. System and method for geo-coding user generated content
US7904483B2 (en) * 2005-12-23 2011-03-08 Geopeg, Inc. System and method for presenting geo-located objects
US20070266239A1 (en) * 2006-03-08 2007-11-15 David Vismans Method for providing a cryptographically signed command
US20080201156A1 (en) * 2007-02-21 2008-08-21 Fatdoor, Inc. User-generated community publication in a geo-spatial environment
US20070271367A1 (en) * 2006-05-09 2007-11-22 Zohar Yardeni Systems and methods for location-based social web interaction and instant messaging system
US20080010273A1 (en) * 2006-06-12 2008-01-10 Metacarta, Inc. Systems and methods for hierarchical organization and presentation of geographic search results
US20080056538A1 (en) * 2006-08-04 2008-03-06 Metacarta, Inc. Systems and methods for obtaining and using information from map images
US20080065685A1 (en) * 2006-08-04 2008-03-13 Metacarta, Inc. Systems and methods for presenting results of geographic text searches
US7698336B2 (en) * 2006-10-26 2010-04-13 Microsoft Corporation Associating geographic-related information with objects
US7673248B2 (en) * 2006-11-06 2010-03-02 International Business Machines Corporation Combining calendar entries with map views
US20140237051A1 (en) * 2006-11-22 2014-08-21 Raj Abhyanker Neighbor to neighbor relay in a geo-spatial environment
US20080172244A1 (en) * 2007-01-16 2008-07-17 Gb Internet Solutions, Inc. Systems And Methods For Displaying Current Prices, Including Hotel Room Rental Rates, With Markers Simultaneously On A Map
US20080172380A1 (en) * 2007-01-17 2008-07-17 Wojciech Czyz Information retrieval based on information location in the information space.
GB2446167B (en) * 2007-02-02 2011-08-17 Satmap Systems Ltd Mapping system
US20080195978A1 (en) * 2007-02-12 2008-08-14 Garmin Ltd. Method and apparatus for communicating navigation information
US20080228719A1 (en) * 2007-03-13 2008-09-18 Fatdoor, Inc. People and business search result optimization
CN101038177B (zh) * 2007-04-02 2012-08-15 深圳市赛格导航科技股份有限公司 一种gps导航装置
US20080250337A1 (en) * 2007-04-05 2008-10-09 Nokia Corporation Identifying interesting locations based on commonalities in location based postings
US8229458B2 (en) * 2007-04-08 2012-07-24 Enhanced Geographic Llc Systems and methods to determine the name of a location visited by a user of a wireless device
US20080281854A1 (en) * 2007-05-07 2008-11-13 Fatdoor, Inc. Opt-out community network based on preseeded data
US20080280600A1 (en) * 2007-05-08 2008-11-13 Samsung Electronics Co., Ltd. Geographic Mobile Address Book
US9292807B2 (en) 2007-05-10 2016-03-22 Microsoft Technology Licensing, Llc Recommending actions based on context
US7801950B2 (en) * 2007-06-01 2010-09-21 Clustrmaps Ltd. System for analyzing and visualizing access statistics for a web site
US9109904B2 (en) * 2007-06-28 2015-08-18 Apple Inc. Integration of map services and user applications in a mobile device
US9245041B2 (en) * 2007-11-10 2016-01-26 Geomonkey, Inc. Creation and use of digital maps
US20090177996A1 (en) * 2008-01-09 2009-07-09 Hunt Dorian J Method and system for rendering and delivering network content
US20090319187A1 (en) * 2008-06-23 2009-12-24 Outside.In, Inc. Generating Geocoded Targeted Web Advertisements
CN101398308B (zh) * 2008-10-15 2012-02-01 深圳市凯立德科技股份有限公司 一种兴趣点检索方法、兴趣点检索装置及导航系统
US8060582B2 (en) * 2008-10-22 2011-11-15 Google Inc. Geocoding personal information
US8838778B2 (en) * 2009-04-28 2014-09-16 International Business Machines Corporation Automated feed reader indexing
WO2010135367A1 (en) * 2009-05-18 2010-11-25 Alarm.Com Incorporated Moving asset location tracking
US8271529B2 (en) * 2009-08-10 2012-09-18 Yuheng Qiu Location-based and time control-based interactive information group and distribution platform
US9350799B2 (en) * 2009-10-03 2016-05-24 Frank C. Wang Enhanced content continuation system and method
US9122764B2 (en) * 2010-03-24 2015-09-01 Fisher-Rosemount Systems, Inc. Methods and apparatus to access process data stored on a server
US8930245B2 (en) * 2010-06-23 2015-01-06 Justin Streich Methods, systems and machines for identifying geospatial compatibility between consumers and providers of goods or services
US9021015B2 (en) * 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US20130086215A1 (en) * 2011-05-13 2013-04-04 HNTB Holdings, Ltd. Managing large datasets obtained through a survey-data-acquisition process
US9485300B2 (en) * 2012-03-13 2016-11-01 Yahoo! Inc. Publish-subscribe platform for cloud file distribution
US8260880B1 (en) * 2012-04-27 2012-09-04 Wirespring Technologies, Inc. Content management system for integrated display substrates
US9104697B2 (en) * 2012-07-24 2015-08-11 Navico Holdings As Aquatic geographic information system
US10148574B2 (en) * 2014-01-21 2018-12-04 Brightcove Inc. Load balancing for mesh computing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050192946A1 (en) * 2003-12-29 2005-09-01 Yahoo! Inc. Lateral search

Also Published As

Publication number Publication date
US8060582B2 (en) 2011-11-15
JP2015096867A (ja) 2015-05-21
US20120059812A1 (en) 2012-03-08
EP3537312A1 (en) 2019-09-11
US9069865B2 (en) 2015-06-30
US11704847B2 (en) 2023-07-18
CN107016051A (zh) 2017-08-04
JP6257124B2 (ja) 2018-01-10
US20210166449A1 (en) 2021-06-03
US20150262393A1 (en) 2015-09-17
US20230419566A1 (en) 2023-12-28
CN102257493A (zh) 2011-11-23
US20100106801A1 (en) 2010-04-29
US10055862B2 (en) 2018-08-21
JP2012506559A (ja) 2012-03-15
US10867419B2 (en) 2020-12-15
US20190073807A1 (en) 2019-03-07
WO2010048249A1 (en) 2010-04-29
JP6063965B2 (ja) 2017-01-18
EP2356586A1 (en) 2011-08-17
KR20110081863A (ko) 2011-07-14
EP3537312B1 (en) 2022-06-08

Similar Documents

Publication Publication Date Title
US11704847B2 (en) Geocoding personal information
US11386167B2 (en) Location-based searching using a search area that corresponds to a geographical location of a computing device
US9356792B1 (en) Recording events for social media
EP2577520B1 (en) Method and apparatus for generating map-based snippets
WO2019005333A1 (en) GEOGRAPHIC RESEARCH OFFLINE
AU2015201799B2 (en) Location-based searching

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: 20190612

Year of fee payment: 4