KR102196401B1 - 전자 지도 인터페이스 - Google Patents

전자 지도 인터페이스 Download PDF

Info

Publication number
KR102196401B1
KR102196401B1 KR1020197004719A KR20197004719A KR102196401B1 KR 102196401 B1 KR102196401 B1 KR 102196401B1 KR 1020197004719 A KR1020197004719 A KR 1020197004719A KR 20197004719 A KR20197004719 A KR 20197004719A KR 102196401 B1 KR102196401 B1 KR 102196401B1
Authority
KR
South Korea
Prior art keywords
interest
points
map
client device
identified
Prior art date
Application number
KR1020197004719A
Other languages
English (en)
Other versions
KR20190029705A (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 KR20190029705A publication Critical patent/KR20190029705A/ko
Application granted granted Critical
Publication of KR102196401B1 publication Critical patent/KR102196401B1/ko

Links

Images

Classifications

    • 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
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3679Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities
    • G01C21/3682Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities output of POI information on a road map
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents

Abstract

클라이언트 디바이스에서 전자 대화형 지도에 관심 지점들을 제시하기 위한,컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램 및 통신중인 하나 이상의 서버를 포함하는 방법, 시스템 및 장치가 개시된다. 일 양태에서, 방법은 클라이언트 디바이스에서, 제시된 지도의 지리적 영역 내에 위치한 적어도 하나의 관심 지점을 포함하는 관심 지점 오버레이를 포함하는 전자 대화형 지도을 수신하는 단계를 포함한다.

Description

전자 지도 인터페이스
본 발명은 전자 지도 인터페이스에 관한 것이다.
통신 네트워크는 전 세계 사용자들에게 정보의 배포를 가능하게 한다. 사용자들에게 제공되는 한 가지 유형의 정보는 전자 지도 형태로 제공된다. 사용자들은 클라이언트 디바이스에 제시되는 전자 지도와 상호 작용하여 다양한 지리적 영역에 대한 정보를 얻을 수 있다. 주어진 지리적 영역(또는 주어진 지리적 영역의 관심 지점)에 대해 이용 가능한 정보의 양은 전자 지도의 프리젠테이션을 혼란스럽게(cluttering)하지 않고 전자 지도에 제시될 수 있는 정보의 양을 초과한다.
일반적으로, 본 명세서에 기술된 주제의 하나의 혁신적인 양태는, 클라이언트 디바이스로부터, 특정 지리적 위치를 시각적으로 묘사하는 사용자 인터페이스에대화형 지도를 프리젠테이션하기 위한 요청을 수신하는 단계 및 하나 이상의 서버에 의해 상기 요청에 기초하여 상기 특징 지리적 위치를 포함하는 지도 공간을 선택하는 단계의 동작들을 포함하는 방법으로 구현될 수 있다. 그런 다음 하나 이상의 서버는 선택된 지도 공간에 의해 시각적으로 묘사된 지리적 영역 내에 위치하는 지리적 위치들을 갖는 다수의 관심 지점을 식별하고, 상기 클라이언트 디바이스에서, 클라이언트 디바이스의 디스플레이 특성에 기초하여 지도 공간 내에서 상기 식별된 관심 지점들 중 적어도 일부의 지리적 위치에 하나 이상의 시각적 구성 요소를 동적으로 제시하는 오버레이를 생성한다. 상기 관심 지점들의 선택은, 상기 관심 지점들을 나타내는 시각적 구성 요소 각각과 상호 작용할 가능성에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계와, 상기 식별된 관심 지점에 대해 제시된 다수의 시각적 구성 요소가 데이터 구조에서 상기 클라이언트 디바이스의 디스플레이 특성에 매핑되는 관심 지점 밀도 임계값을 초과하는 것을 방지하는 오버레이를 생성하는 단계와, 상이한 관심 지점 밀도 임계값들은 상기 데이터 구조 내의 디스플레이 특성들의 상이한 조합들에 매핑되고, 그리고 상기 랭킹에 기초하여, 상기 클라이언트 디바이스에서 대화형 지도와의 사용자 상호 작용에 응답하여 제시된 시각적 구성 요소들에 의해 식별되는 관심 지점들을 동적으로 변경하는 오버레이를 생성하는 단계를 포함한다. 상기 클라이언트 디바이스는 오버레이에 대한 오버레이 정보 및 지도 공간의 일부를 캐싱하고, 클라이언트 디바이스의 사용자 인터페이스를 상기 지도 공간 및 오버레이로 업데이트한다. 이 양태의 다른 실시예는 상기 방법의 동작들을 수행하도록 구성된 대응하는 시스템, 디바이스, 장치 및 컴퓨터 프로그램을 포함한다. 컴퓨터 프로그램(예를 들어, 명령들)은 컴퓨터 저장 디바이스 상에 인코딩될 수 있다. 이들 및 다른 실시예는 각각 선택적으로 하나 이상의 다음 특징들을 포함할 수 있다.
상기 지도 공간은 상기 지도 공간과의 사용자 상호 작용 전에 상기 지도 공간의 적어도 일부가 상기 클라이언트 디바이스의 뷰포트 외부에 있는 지도 영역을 가질 수 있다.
상기 오버레이를 생성하는 단계는 상기 캐싱된 오버레이 정보를 사용하여 클라이언트 디바이스에서, 상기 지도 공간이 뷰포트에서 제시되는 줌 레벨을 변경하는 변경 뷰 컨트롤과의 사용자 상호 작용에 기초하여, 상기 제시된 시각적 구성 요소들에 의해 식별된 관심 지점들을 업데이트하는 오버레이를 생성하는 단계를 포함할 수 있다. 상기 업데이트는 클라이언트 디바이스가 하나 이상의 서버에 대한 추가적인 네트워크 호출을 개시하지 않고도 수행될 수 있다.
상기 제시된 시각적 구성 요소들에 의해 식별된 상기 관심 지점들을 업데이트하는 단계는 상기 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여 상기 지도 공간이 제시되는 줌 레벨을 식별하는 단계와, 상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값을 식별하는 단계와, 상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에서 뷰포트에 시각적으로 묘사된 지리적 위치를 갖는 관심 지점 세트를 식별하는 단계 및 상기 식별된 관심 지점 세트로부터, 대응하는 시각 구성 요소를 사용하여 시각적으로 식별되는 하나 이상의 관심 지점을 선택하는 단계를 포함할 수 있고, 상기 선택된 관심 지점의 총 수는 상기 식별된 줌 레벨에 대한 상기 대응하는 관심 지점 밀도 임계값보다 작거나 같다.
상기 하나 이상의 관심 지점을 선택하는 단계는 상기 랭킹으로부터 가장 높게 랭킹된 관심 지점들의 총 수를 선택하는 단계를 포함할 수 있다.
상기 하나 이상의 관심 지점을 선택하는 단계는 상기 클라이언트 디바이스의 디바이스 유형 또는 클라이언트 디바이스의 화면 크기에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함할 수 있다.
상기 하나 이상의 관심 지점을 선택하는 단계는 상기 선택 이전에 프리젠테이션을 위해 사전-선택된 관심 지점의 수에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함할 수 있다.
상기 식별된 다수의 관심 지점들을 랭킹하는 단계는 상기 사용자가 이전에 방문한 하나 이상의 지리적 위치, 상기 사용자가 이전에 방문한 위치들의 카테고리, 상기 사용자가 이전에 상이한 카테고리의 위치들을 방문한 빈도, 상이한 카테고리의 위치들에 대한 이전의 방문과 관련된 시간 정보, 사용자가 방문한 이전 위치들에 대한 관심 지점의 근접도 또는 지원되는 임의의 검색 인터페이스상에서 사용자가 수행한 검색 쿼리들 중 하나 이상에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계를 포함할 수 있다.
다른 양태에서, 방법은 클라이언트 디바이스로부터, 특정 지리적 위치를 시각적으로 묘사하는 사용자 인터페이스에 대화형 지도를 프리젠테이션하기 위한 요청을 수신하는 단계와; 하나 이상의 서버에 의해 상기 요청에 기초하여, 상기 특정 지리적 위치를 포함하는 지도 공간를 선택하는 단계와, 상기 선택된 지도 공간에 의해 시각적으로 묘사된 지리적 영역 내에 위치하는 지리적 위치들을 갖는 다수의 관심 지점을 식별하는 단계와; 상기 하나 이상의 서버에 의해, 상기 클라이언트 디바이스에서 상기 클라이언트 디바이스의 디스플레이 특성에 기초하여 지도 공간 내의 상기 식별된 관심 지점들 중 적어도 일부의 지리적 위치에 하나 이상의 시각적 구성 요소를 동적으로 제시하는 오버레이를 생성하는 단계와; 상기 오버레이를 생성하는 단계는 상기 관심 지점들을 나타내는 시각적 구성 요소 각각과 상호 작용할 가능성에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계와, 상기 식별된 관심 지점에 대해 제시된 다수의 시각적 구성 요소가 데이터 구조에서 상기 클라이언트 디바이스의 디스플레이 특성에 매핑되는 관심 지점 밀도 임계값을 초과하는 것을 방지하는 오버레이를 생성하는 단계와, 상이한 관심 지점 밀도 임계값들은 상기 데이터 구조 내의 디스플레이 특성들의 상이한 조합들에 매핑되고, 및 상기 랭킹에 기초하여, 상기 클라이언트 디바이스에서 대화형 지도와의 사용자 상호 작용에 응답하여 제시된 시각적 구성 요소들에 의해 식별되는 관심 지점들을 동적으로 변경하는 오버레이를 생성하는 단계를 포함하고; 상기 클라이언트 디바이스에서, 상기 오버레이에 대한 오버레이 정보 및 상기 지도 공간의 일부를 캐싱하는 단계와; 그리고 상기 지도 공간 및 상기 오버레이를 이용하여 상기 클라이언트 디바이스의 상기 사용자 인터페이스를 업데이트하는 단계를 포함할 수 있다.
이 양태의 다른 실시예는 이 방법의 동작들을 수행하도록 구성된 대응하는 시스템, 디바이스, 장치 및 컴퓨터 프로그램을 포함한다. 상기 컴퓨터 프로그램 (예를 들어, 명령들)은 컴퓨터 저장 디바이스 상에 인코딩될 수있다. 이들 및 다른 실시예는 각각 선택적으로 하나 이상의 다음 특징들을 포함할 수 있다.
상기 지도 공간은 지도 공간과의 사용자 상호 작용 전에 지도 공간의 적어도 일부가 클라이언트 디바이스의 뷰포트 외부에 있는 지도 영역을 갖는다.
상기 오버레이를 생성하는 단계는 캐싱된 오버레이 정보를 사용하여 클라이언트 디바이스에서, 지도 공간이 뷰포트에서 제시되는 줌 레벨을 변경하는 변경 뷰 컨트롤과의 사용자 상호 작용에 기초하여, 제시된 시각적 구성 요소들에 의해 식별된 관심 지점들을 업데이트하는 오버레이를 생성하는 단계를 포함하고, 상기 업데이트는 클라이언트 디바이스가 하나 이상의 서버에 대한 추가 네트워크 호출을 개시하지 않고도 수행된다.
상기 제시된 시각적 구성 요소들에 의해 식별된 상기 관심 지점들을 업데이트하는 단계는 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여 상기 지도 공간이 제시되는 줌 레벨을 식별하는 단계와, 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값을 식별하는 단계와, 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에서 뷰포트에 시각적으로 묘사된 지리적 위치를 갖는 관심 지점 세트를 식별하는 단계 및 상기 식별된 관심 지점 세트로부터, 대응하는 시각 구성 요소를 사용하여 시각적으로 식별되는 하나 이상의 관심 지점을 선택하는 단계를 포함하고, 상기 선택된 관심 지점의 총 수는 식별된 줌 레벨에 대한 상기 대응하는 관심 지점 밀도 임계값보다 작거나 같다.
상기 하나 이상의 관심 지점을 선택하는 단계는 상기 랭킹으로부터 가장 높게 랭킹된 관심 지점들의 총 수를 선택하는 단계를 포함할 수 있다.
상기 하나 이상의 관심 지점을 선택하는 단계는 상기 클라이언트 디바이스의 디바이스 유형 또는 클라이언트 디바이스의 화면 크기에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함할 수 있다.
상기 하나 이상의 관심 지점을 선택하는 단계는 상기 선택 이전에 프리젠테이션을 위해 사전-선택된 관심 지점의 수에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함할 수 있다.
상기 식별된 다수의 관심 지점들을 랭킹하는 단계는 상기 사용자가 이전에 방문한 하나 이상의 지리적 위치, 상기 사용자가 이전에 방문한 위치들의 카테고리, 상기 사용자가 이전에 상이한 카테고리의 위치들을 방문한 빈도, 상이한 카테고리의 위치들에 대한 이전의 방문과 관련된 시간 정보, 사용자가 방문한 이전 위치들에 대한 관심 지점의 근접도 또는 지원되는 임의의 검색 인터페이스상에서 사용자가 수행한 검색 쿼리들 중 하나 이상에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계를 포함할 수 있다.
본 명세서에 기술된 주제의 특정 실시예들은 다음의 이점들 중 하나 이상을 실현하도록 구현될 수 있다. 본 명세서에서 설명하는 기술들은 사용자 경험과 사용자가 지도와 상호 작용하여 지도로부터 정보를 얻을 수 있는 능력을 향상시키는 지도를 제시하는 전자 지도 인터페이스에 대한 과밀을 방지한다. 예를 들어, 본 명세서에서 설명하는 기술들은 지도상에서 시각적으로 식별되는 관심 지점들의 수를 제한할 수 있으므로 관심 지점들의 시각적 표시(indications)로 인해 가려지는(폐색)되는 지도의 양을 줄일 수 있다. 지도의 주어진 뷰에서 시각적으로 식별되는 관심 지점들은 지도를 보고 있는 특정 사용자와 가장 관련성이 높다고 간주되는 관심 지점일 수 있으며 사용자가 임의의 정보(예를 들어, 관심 쿼리 또는 관심 토픽)를 입력하지 않고도 선택될 수 있다. 이와 같이, 시각적으로 식별된 관심 지점들은 전자 지도 인터페이스와의 사용자 상호 작용 이전에 선택될 수 있으므로 사용자의 경험을 지도의 초기 프리젠테이션(예를 들어, 전자 지도 인터페이스와의 사용자 상호 작용을 요구하지 않고 관련 관심 지점들을 포함하는)으로 향상시킬 수 있다. 사용자가 전자 지도 인터페이스와 상호 작용할 때 전자 지도 인터페이스에 제시되는 지도의 뷰를 업데이트하는 것과 관련된 대기 시간은, 지도의 일부분(예를 들어, 지도 공간)에 대한 초기 요청에 응답하여 클라이언트 디바이스에추가 지도 및/또는 오버레이 정보를 사전-캐싱하는 지능형 캐싱 기법을 이용함으로써 (예를 들어, 본 명세서에서 논의된 기술들을 사용하지 않는 지도 인터페이스에 비해) 감소 또는 제한될 수 있다. 예를 들어, 추가 지도 및/또는 오버레이 정보 (예를 들어, 지도의 요청된 부분과 지도 공간의 요청된 부분에서 관심 지점들의 대응하는 시각적 표시를 제시하는데 필요한 것 이상)을 사전-캐싱함으로써, 사용자는 원격 서버로 추가 호출을 할 필요가 없으므로 전자 지도 인터페이스에 제시되는 지도의 양 또는 부분을 대화식으로 (그리고 원활하게) 변경할 수 있다. 원격 서버에 대한 각각의 호출이 설정과 해제에 일정 시간이 걸리기 때문에 서버에 대한 각 후속 호출은 전자 지도 인터페이스에 제시된 지도 뷰를 변경하는 것과 관련된 대기 시간을 증가시킬 것이므로, 상기 원격 서버에 대한 호출 횟수 감소는 또한 대기 시간을 감소시킬 수 있다. 이 대기 시간은 무선 네트워크를 통해 각 네트워크 호출을 설정하는데 필요한 시간이기 때문에 셀룰러 네트워크와 같은 무선 네트워크를 통해 작동하는 모바일 디바이스의 경우 더 크다. 원격 서버에 대한 추가 호출은 추가 배터리 소모를 유발하므로 모바일 디바이스가 원격 서버에 추가로 호출하는 횟수를 제한하면 모바일 디바이스의 배터리 수명을 연장시킬 수 있을 것이다.
본 발명의 하나 이상의 실시예의 세부 사항은 첨부 도면 및 이하의 설명에서 설명된다. 본 발명의 다른 특징, 목적 및 이점들은 상세한 설명 및 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 지도 공간들이 네트워크(102)를 통해 배포되는 예시적인 환경(100)의 블록도이다.
도 2는 2개의 상이한 샘플의 예시적인 클라이언트 디바이스상의 다양한 지도 뷰를 나타내는 도면이다.
도 3은 전자 지도 인터페이스에 대한 오버레이를 생성/배포하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
본 명세서는 클라이언트 디바이스의 뷰포트(viewport)에서 전자 지도의 뷰(지도 뷰라고 칭함) 및 지도 뷰에 포함된 지리적 위치들에 위치하는 관심 지점(points of interest:POI)을 시각적으로 식별하는 시각적 구성 요소들의 오버레이(overlay, 중첩)를 제시하는 전자 지도 인터페이스를 생성 및 제공하는 방법, 시스템 및 장치들을 기술한다. 초기 지도 뷰가 클라이언트 디바이스로부터 수신되는 전자 지도에 대한 요청에 응답하여 클라이언트 디바이스에 제시될 수 있다. 요청은 특정 지리적 위치를 포함하는 지도 공간(예를 들어, 전자 지도의 일부)를 선택하는데 사용될 수 있는 특정 지리적 위치를 식별하는 정보를 포함할 수 있다. 대안적으로 또는 부가적으로, 지도 공간은 디폴트 지리 정보(예를 들어, 사전 지정된 지리적 위치 또는 초기 지도 뷰가 제시될 사용자 프로파일에 포함된 지리적 위치)에 기초하여 선택될 수 있다. 아래에서 상세히 논의되는 바와 같이, 초기 지도 뷰에 제시하기 위해 클라이언트 디바이스에 제공되고 선택된 지도 공간은 초기 지도 뷰에 제시되는 것보다 지도의 더 많은 부분을 포함할 수 있고, 지도 공간의 적어도 일부는 클라이언트 디바이스에서 캐시될 수 있다. 이는 예를 들어 추가 지도 뷰를 얻기 위해 원격 서버로 후속 호출을 요구하지 않고, 전자 지도 인터페이스와의 사용자 상호 작용(예컨대, 사용자 패닝(panning), 줌잉 또는 지도 뷰를 수정하기 위한 전자 지도 인터페이스와의 상호 작용)에 응답하여 지도 뷰에 대한 원활한 동적 업데이트를 가능하게 한다. 오히려, 클라이언트 디바이스에서 캐싱된 지도 공간은 전자 지도 인터페이스와의 사용자 상호 작용에 응답하여 지도 뷰를 수정하는데 사용될 수 있다.
일부 구현예에서, 오버레이는 지도 공간와 함께(또는 지도 공간과 별도로) 제공(예를 들어, 다운로드, 스트리밍 또는 전송)된다. 오버레이는 선택된 지도 공간 상에 하나 이상의 시각적 구성 요소(예를 들어, 지도 핀(pin) 또는 다른 아이콘)를 동적으로 (예를 들어, 제시되거나 통합되어) 제공하는 파일(또는 파일들의 컬렉션)이다. 지도 공간상에 시각적 구성 요소를 배치하면 지도 공간 내의 관심 지점(예를 들어, 공원, 기념물, 공항, 커피 숍, 체육관 또는 기타 관심 장소)의 위치를 식별할 수 있다. 시각적 구성 요소는 지도 공간에서 관심 지점의 위치를 강조하는데 유용하지만 시각적 구성 요소의 수가 늘어나면 이러한 시각적 구성 요소의 효율성이 떨어질 수 있다.
예를 들어, 디스플레이된 시각적 구성 요소의 수가 증가하면 지도 공간의 상당 부분이 이러한 시각적 구성 요소들에 의해 가려질 수 있으며, 이는 (예를 들어, 가려지는 지도 공간의 중요한 시각적 특징들로 인해) 지도 공간을 사용하는 것을 더욱 어렵게 할 수 있다. 게다가, 디스플레이된 시각적 구성 요소들의 수가 증가함에 따라 시각적 구성 요소들이 오버레이될 수 있기 때문에, 사용자는 제시되는 상이한 시각적 구성 요소들(또는 그들의 경계)를 시각적으로 식별하는 것이 더욱 어려울 수 있다. 지도 공간 내의 시각적 구성 요소의 이러한 "밀집(crowding)"은 (예를 들어, 디스플레이 내의 시각적 구성 요소의 밀집으로 인해) 사용자가 특정 시각적 구성 요소와 상호 작용하는 것을 어렵게 할 수 있으며. 이는 의도하지 않은 다른 시각적 구성 요소와 부주의하게 상호 작용하는 결과를 초래할 수 있다. 시각적 구성 요소과의 부주의한 상호 작용은, 사용자가 찾고 있던 정보 이외의 다른 정보를 제시할 수 있고 사용자가 처음에 상호 작용하려는 시각적 구성 요소와 다시 상호 작용을 시도해야 하므로, 사용자 불만, 사용자 경험 저하 및, 추가 네트워크 트래픽의 전송(예를 들어, 사용자가 다른 시각적 구성 요소와 상호 작용하려는 동안 상호 작용한 시각적 구성 요소와의 사용자 상호 작용에 응답하여 데이터를 전송함으로써)으로 이어질 수 있다.
일부 구현예에서, 시각적 구성 요소들의 세트는 지도 공간에서 식별된 관심 지점(예를 들어, 시각적 구성 요소의 프리젠테이션에 의해)이 사용자와 관련된 관심 지점일 가능성을 증가시키기 위해 랭킹(순위 매김) 및/또는 선택될 수 있다. 예를 들어, 이하에서 상세히 설명되는 바와 같이, 주어진 지도 공간에 대해 선택된 시각적 구성 요소들의 세트는 사용자에 대한 이력 정보(예를 들어, 다양한 관심 지점, 사용자에 의해 제출된 이력적 검색 쿼리, 사용자에 의한 특정 지리적 위치에 대한 이력적 방문 또는 기타 이력 정보)를 사용하여 식별될 수 있다. 이력 정보를 사용하면 요청에 응답하여 제공되는 지도 공간과의 사용자 상호 작용 이전에 사용자와 관련된 관심 지점들을 선택할 수 있으며 또한 전자 지도 인터페이스를 통한 검색 쿼리의 사용자 제출과 독립적으로(예를 들어, 없이 또는 그 전에) 관심 지점들을 식별할 수 있다.
이하에서 상세히 설명하는 바와 같이, 지도 공간상의 관심 지점들을 나타내는 시각적 구성 요소들의 세트는 클라이언트 디바이스의 디스플레이 특성들에 대응하는 관심 지점 밀도 임계값에 기초하여 제한될 수 있다(예를 들어, 세트에서 이용 가능한 모든 시각적 구성 요소보다 적은 수를 포함시킴으로써). 이러한 문맥에서, "관심 지점 밀도"는 시각적 구성 요소들이 디스플레이되는 관심 지점의 수를 지칭하는 것으로 이해될 수 있으며, 관심 지점 밀도 임계값은 그 수에 대한 상한을 정의한다. 관심 지점 밀도 임계값은, 예를 들어, 상이한 치수의 뷰 스크린 또는 뷰포트를 갖는 장치들에 대해 변경될 수 있다. 본 명세서 전체에 걸쳐서 사용되는 "뷰포트"라는 용어는 지도 공간이 제시되는 디스플레이의 일부(예를 들어, 지도 공간를 제시하는 웹 페이지 또는 애플리케이션 인터페이스의 일부)를 지칭한다. 관심 지점 밀도 임계값은 지도가 디스플레이되는 줌 레벨에 따라 변경될 수 있다. 관심 지점 밀도 임계값을 사용하면 전자 지도 인터페이스가 복잡해지는 것을 방지할 수 있으므로 시각적 구성 요소들과의 부주의한 상호 작용의 가능성을 줄이고 지도 공간의 중요한 측면이 가려지는 것을 방지함으로써 지도 공간과의 사용자 경험을 향상시키고, 사용자가 지도 공간에 제시된 상이한 시각적 구성 요소 및 해당 관심 지점들을 쉽게 식별할 수 있게 한다. 일부 구현예에서, 관심 지점 밀도 임계값은 오버레이에 포함된 이용 가능한 관심 지점의 총 수에서 지도 뷰로 사용자에게 제시된 관심 지점의 수의 감소를 알릴 수 있다.
도 1은 지도 공간들이 네트워크(102)를 통해 분배되는 예시적인 환경(100)의 블록도이다. 환경은 근거리 통신망(LAN), 광역 통신망(WAN, 인터넷 또는 이들의 조합)과 같은 네트워크(102)를 포함한다. 네트워크(102)는 지도 서버(104), 클라이언트 디바이스(106) 및 오버레이 서버(108)를 연결한다. 예시적인 환경(100)은 많은 상이한 지도 서버(104), 클라이언트 디바이스(106) 및 오버레이 서버(108)를 포함할 수 있다.
클라이언트 디바이스(106)는 네트워크(102)를 통해 (지도 인터페이스의 패킷화된 표현을 포함하는) 데이터를 요청하고 수신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(106)는 퍼스널 컴퓨터, 모바일 통신 디바이스, 및 네트워크(102)를 통해 데이터를 송신 및 수신할 수 있는 다른 디바이스(예를 들어, 태블릿 디바이스, 홈 자동화 디바이스 또는 다른 디바이스)를 포함한다. 클라이언트 디바이스(106)는 전형적으로 웹 브라우저와 같은 사용자 애플리케이션을 포함하여 네트워크(102)를 통해 데이터의 송신 및 수신을 용이하게 하지만, 클라이언트 디바이스(106)에 의해 실행되는 네이티브 애플리케이션(예를 들어, 지도 애플리케이션 또는 검색 애플리케이션)은 또한 네트워크(102)를 통해 데이터의 송수신을 용이하게 할 수 있다.
전자 문서는 클라이언트 디바이스(106)에서 컨텐츠 세트를 나타내는 데이터이다. 전자 문서의 예로는 웹 페이지, 워드 프로세싱 문서, PDF(Portable Document Format) 문서, 이미지, 비디오, 검색 결과 페이지 및 피드(feed) 소스가 있다. 모바일, 태블릿 또는 데스크톱 컴퓨팅 디바이스 상에 설치된 애플리케이션과 같은 네이티브(기본) 애플리케이션(예컨대, '앱')도 전자 문서의 예이다. 하나의 전자 문서는 두 번째 전자 문서 내에 중첩(nested)될 수 있다. 예를 들어, 웹 페이지 내에 임베딩된 이미지 또는(예를 들어, 상이한 소스로부터의) 다수의 상이한 전자 문서들은 결합되어 다수의 상이한 전자 문서들을 포함하는 집합 전자 문서를 생성할 수 있다. 지도 공간은 전자 지도의 일부의 지도 정보를 포함하는 특정 유형의 전자 문서이다. 예를 들어, 특정 지도 공간은 애틀란타 시 중심에 있고 시내 중심에서 3마일 거리에 있는 지리적 영역에 대한 지도 정보를 포함할 수 있다. 지도 공간은 임의의 모양(예컨대, 직사각형, 타원형, 원형, 삼각형 또는 불규칙항 모양)일 수 있다. 지도 공간들은 지도 서버(104)에 의해 클라이언트 디바이스(106)로 제공될 수 있다. 예를 들어, 지도 서버(104)는 클라이언트 디바이스(106)로부터 지도 요청을 수신하고 요청에 응답하여 클라이언트 디바이스로 지도 공간을 제공할 수 있다. 일부 구현예에서, 사용자는 웹 브라우저 또는 네이티브 애플리케이션의 적어도 일부일 수 있고 지도 공간의 적어도 일부를 포함하는 전자 지도 인터페이스(110)를 통해 지도 공간에 액세스할 수 있다.
지도 요청은 예를 들어 특정 지리적 위치를 지정하는 데이터 및/또는 지도 공간이 제시될 환경의 디스플레이 특성을 포함할 수 있다. 예를 들어, 지도 요청은 조지아주, 애틀랜타의 지리적 위치를 지정하는 패킷화된 데이터를 포함할 수 있고, 지도 공간이 제시될 뷰포트(112)의 크기(및/또는 치수) 및/또는 지도 공간이 초기에 클라이언트 디바이스(106)의 뷰포트(112)에 제시될 초기 줌 레벨을 지정하는 패킷화된 데이터를 포함할 수도 있다. 지도 뷰(114)는 전자 지도 인터페이스(110)의 일부인 뷰포트(112) 내에 제시된다. 상기 뷰포트 내에 제시된 지도 뷰 또는 지도 공간의 일부는 뷰포트(112)의 치수 및 전체 지도 공간의 적어도 일부를 나타내는 지도 공간이 제시되는 줌 레벨에 부분적으로 의존한다. 예를 들어, 지도 요청의 특정 인스턴스화에 대한 디스플레이 특성이 뷰포트가 전체 화면 영역인 태블릿 컴퓨터에서 만들어진 경우, 결과 지도 뷰는 태블릿 컴퓨터의 전체 화면 영역에 제시되는 지도 공간의 일부가 될 것이다. 비록 본 명세서에서 프로세스들이 개별 서버에서 구현되는 것으로 설명되었지만, 단일 서버는 문제의 모든 기능을 수행할 수 있다. 대안적으로 또는 부가적으로, 다수의 서버는 분산 컴퓨팅 환경에서 단일 하드웨어 디바이스 또는 다수의 디바이스에 대해 구현될 수 있다.
지도 서버(104)는 지도 공간을 클라이언트 디바이스에 배포(예컨대, 전송)하는 계산 디바이스(또는 컴퓨팅 디바이스 그룹)이다. 지도 서버(104)는 지도 요청을 분석하여 요청의 지리적 위치를 식별하고 디스플레이 특성을 식별한다. 예를 들어, 지도 서버는 요청에서 지리적 데이터를 식별하고 그 지리적 데이터에서 지리적 위치를 결정하는데 사용되는 식별자를 포함하는 지도 요청의 일부를 식별할 수 있다. 지리적 데이터는 예를 들어, 위도/경도 좌표, 도시 이름, 주 이름, 국가 이름 또는 지리적 위치의 다른 표시일 수 있다. 그런 다음 이러한 지리적 데이터는 예를 들어, 지리적 데이터를 지리 데이터의 인덱스와 비교하고 상기 지리적 데이터에 인덱스된 대응하는 지리적 위치를 식별함으로써 지리적 위치를 식별하는데 사용될 수 있다.
지도 서버(104)는 지리적 위치 및 디스플레이 특성을 사용하여 지도 데이터베이스(118)로부터 상기 요청에 응답하여 제공될 지도 공간을 선택한다. 예를 들어, 조지아주 애틀랜타의 "리틀 파이브 포인츠(Little Five Points)" 영역에 대한 지도 요청에 응답하여, 지도 서버는 지도 데이터베이스로부터 지도 공간의 영역 내의 Little Five Points 영역을 포함하는 지도 공간을 액세스할 것이다. 전술한 바와 같이, 클라이언트 디바이스에 제공된 지도 공간은 적어도 클라이언트 디바이스 뷰포트(112)에 제시되는 초기 지도 뷰(114)의 크기이다. 일반적으로, 지도 뷰는 지도 공간의 일부가 주어진 시간에 클라이언트 디바이스의 뷰포트 외부에 있을 수 있도록 지도 공간보다 작을 것이다. 게다가, 클라이언트 디바이스에 제공된 지도 공간의 크기에는 클라이언트 디바이스의 디스플레이 및 처리 성능에 대한 정보가 반영된다. 예를 들어, 사용자가 저속 네트워크상의 더 오래된 모델의 모바일 전화를 통해 전자 지도 인터페이스에 액세스하는 경우, 그에 따라 지도 공간의 크기가 선택될 수 있다(예를 들어, 지도 공간은 더 작아진다).
지도 서버는 선택된 지도 공간의 특성을 POI 선택 서버(120) 및/또는 오버레이 서버(108)에 전송(또는 공유)할 수 있으며, 이들은 상기 특성을 사용하여 지도 공간에 포함된 관심 지점들을 식별하고, 제공된 지도 공간에 포함될 오버레이를 각각 생성한다. 예를 들어, 관신 지점(POI) 선택 서버(120)는 지리적 식별자들(예를 들어, 경도/위도 좌표)를 갖는 관심 지점 데이터베이스(122)로부터 관심 지점을 식별할 수 있는데, 여기서 각 관심 지점(POIN)은 지도 공간을 경계 짓는 지리적 좌표내에 위치하는 관련 지리적 식별자(GeoN)를 갖는다. 이용 가능한 관심 지점들로부터, POI 선택 서버는 사용자 이력 데이터(124)에 기초하여 관심 지점들의 랭킹을생성할 수 있다. 사용자 이력 데이터(124)는 사용자의 이력적 지도 상호 작용, 이전에 방문한 위치, 사용자의 소셜 네트워크의 추천, 이력적 검색 쿼리 및 사용자 선호도를 포함할 수 있다. 예를 들어, 특정 사용자가 주지아주, 애틀란타의 리틀 파이브 포인츠 영역 내의 하드웨어 상점을 자주 방문하는 경우, POI 선택 서버(120)는 지도 공간에 제시될 관심 지점들의 리스트에서 특정 상점 및 위치를 더 높게 랭킹할 것이다. 관심 지점들의 랭킹 리스트로부터, 오버레이 서버(108)는 지도 공간과 함께 클라이언트 디바이스에 제공된 오버레이를 구성할 수 있다. 오버레이는 클라이언트 디바이스의 디스플레이 특성에 대응하는 관심 지점 밀도 임계값에 관한 정보를 더 포함한다. 전술한 바와 같이, 관심 지점을 식별하는 지도 뷰 및/또는 시각적 구성 요소의 유용성은 지도 뷰에서 시각적으로 식별된 관심 지점의 수가 증가함에 따라 감소할 수 있으므로, 지도 공간과 오버레이에 포함된 모든 관심 지점은 동시에 특정 지도 뷰에서 시각적으로 식별되지 않을 수 있다. 그러나, 지도 뷰를 혼란스럽게 하지 않고 임의의 주어진 지도 뷰에 제시될 수 있는 시각적 구성 요소의 수는 뷰포트의 크기 및 지도 뷰의 줌 레벨과 같은 다양한 요소에 따라 변경된다. 이와 같이, 지도 뷰를 혼란스럽게 하지 않고 제시될 수 있는 시각적 구성 요소의 수는 지도 뷰가 클라이언트 디바이스에서 변경됨에 따라 변경될 것이다.
오버레이 서버는 (예를 들어, 특정 클라이언트 디바이스 특성에 대해 특정 관심 지점 임계 밀도(TDN)를 특정 줌 레벨(ZLN)로 매핑하는 인덱스를 통해) 특성을 오버레이로 간주할 수 있다. 일부 구현예에서, 지도 뷰에 제시된 POI의 수는 관심 지점 임계 밀도에 기초하여 클라이언트 디바이스에서 지도 뷰의 변화에 응답한다. 예를 들어, 사용자가 줌인한(예를 들어, 주어진 영역에 대한 보다 상세한 뷰를 제시하도록)경우는, 사용자가 줌아웃할 때(예를 들어, 주어진 영역의 덜 세부적인 뷰를 제시되도록)보다 그 주어진 영역에서 관심 지점들에 대한 추가 시각적 구성 요소를 제시하는 것이 가능할 수 있다. 일부 구현예에서, 클라이언트 디바이스에서의 전자 지도 인터페이스는 사용자가 뷰포트(112)에 제시된 지도 공간의 일부를 동적으로 변경(에컨대, 줌, 팬 등)할 수 있게 하는 변경 뷰 컨트롤(116)을 포함한다.
아래에서 보다 상세하게 설명되는 바와 같이, 지도 공간내의 관심 지점을 식별하는 시각적 구성 요소의 세트는 지도 공간의 초기 지도 뷰에서 초기에 제시된(또는 제시된 시각적 구성 요소를 통해 식별된) 관심 지점보다 많은 시각 구성 요소를 포함한다. 예를 들어, 추가 시각적 구성 요소들은 초기 지도 뷰에 포함되지 않은 지도 공간의 지리적 위치에 위치하는 관심 지점(예를 들어, 초기에는 뷰포트 밖에 있는)에 대한 시각적 구성 요소 및/또는 높은 줌 레벨(예를 들어, 보다 상세한 지도 뷰)에서만 제시되는 시각적 구성 요소를 포함할 수 있다.
도 2는 2개의 상이한 예시적인 클라이언트 디바이스상의 다양한 지도 뷰를 도시하는 다이어그램이다. 클라이언트 디바이스(204)는 전자 지도 인터페이스(206)를 제시하는 모바일 디바이스(예를 들어, 스마트 폰)이다. 전자 지도 인터페이스 (206)는 모바일 디바이스(204) 상에 설치된 지도 애플리케이션의 형태일 수 있다. 지도 뷰(208)는 지도 뷰내의 관심 지점을 식별하는 몇 가지 시각적 구성 요소와 함께 지도 애플리케이션에 제시된다. 지도 뷰(208)는 클라이언트 디바이스(204)에서 제시되는 초기 지도뷰일 수 있다. 예를 들어, 위에서 논의된 바와 같이, 사용자에 의한 지도에 대한 초기 요청에 응답하여, 지도 서버(104)는 지도 뷰(208)에 의해 시각적으로 묘사된 지도의 일부를 포함하는 지도 공간을 식별하여 그 지도 공간을 클라이언트 디바이스(204)로 전송할 수 있다. 지도 공간이 수신되면, 클라이언트 디바이스(204)는 로컬 클라이언트 메모리(216)에 지도 공간(및 지도 공간을 제시하는데 필요한 임의의 추가 데이터)을 저장/캐시할 수 있다. 게다가, 클라이언트 디바이스(204)는 수신된 지도 공간을 이용하여 상기 지도 공간 또는 임의의 컨트롤과의 사용자 상호 작용 전에 상기 지도 뷰(208)에 초기에 제시된 상기 지도의 일부를 렌더링 및 디스플레이할 수 있다.
전술한 바와 같이, 일부 구현예에서, 로컬 클라이언트 메모리(216)에 저장된 지도 공간의 적어도 일부는 초기에 클라이언트 디바이스(204)의 뷰포트에 제시되는 초기 지도 뷰(208)에 시각적으로 도시되지 않을 것이며, 따라서 지도 뷰는 클라이언트 디바이스(204)가 지도 서버(104)로 또 다른 네트워크 호출을 개시할 필요 없이 변경(예를 들어, 패닝 또는 줌잉)될 수 있다. 이와 같이, 클라이언트 디바이스(204)가 상이한 지도 공간을 획득하기 위해 추가 네트워크 호출을 요구한다면, 지도 뷰에 대한 업데이트는 그렇지 않은 경우보다 빠르게 이루어질 것이다.
도시된 바와 같이, 초기 지도 뷰(208)는 초기 지도 뷰(208)내의 몇몇 관심 지점의 지리적 위치를 시각적으로 식별하는 전자 구성 요소들(예컨대, 지도 핀)을 포함한다. 관심 지점은 오버레이 서버(108)에 의해 클라이언트 디바이스(204)로 전송되는 오버레이에서 시각적으로 식별될 수 있다. 위에서 논의된 바와 같이, 주어진 지도 뷰에서 전자 구성 요소들(예컨대, 지도 핀)에 의해 시각적으로 식별된 관심 지점들은 요청에 응답하여 관심 지점 선택 서버(120)에 의해 선택된 관심 지점의 전체 세트가 아닐 수 있다. 예를 들어, 지도 뷰(208)는 전자 구성 요소들(예컨대, 지도 핀)를 사용하여 4개의 관심 지점을 시각적으로 식별하는 지도 뷰(214)에 시각적으로 제시되는 줌 영역(213)에서 관심 지점들을 식별하는 임의의 전자 구성 요소를 포함하지 않는다. 오버레이는 또한 클라이언트 디바이스(204)가 오버레이 서버(108)로 또 다른 네트워크 호출을 개시할 것을 요구하지 않고 업데이트된 지도 뷰들에 제시된 관심 지점들이 동적으로 업데이트될 수 있도록 로컬 클라이언트 메모리(216)에 저장될 수 있다.
전자 지도 인터페이스(206)는 전자 지도 인터페이스(206)에 제시되는 지도뷰(208)를 사용자가 수정할 수 있게 하는 변경 뷰 컨트롤(210)(예를 들어, 줌 기능 "+" 및 "-")를 포함한다. 예를 들어, 변경 뷰 컨트롤(210)과의 사용자 상호 작용은 프로세스(212)를 개시한다.
프로세스(212)는 클라이언트 디바이스(204)에 의해, 사용자가 변경 뷰 컨트롤(210)과 상호 작용한 것을 검출하는 것을 포함한다. 사용자 상호 작용을 검출하는 것에 응답하여, 클라이언트 디바이스(204)는 변경 뷰 컨트롤(210)과의 사용자 상호 작용에 기초하여 지도 뷰 및 POI를 업데이트한다. 일부 구현예에서, 지도 뷰에 대한 업데이트 및 업데이트된 지도 뷰와 함께 디스플레이된 POI에 대한 업데이트는 지도 공간에 대한 이전의 요청에 응답하여 클라이언트 디바이스에 이전에 제공되고 클라이언트 데이터 저장소(216)에 캐싱된 지도 공간 및 오버레이 정보를 사용하여 수행된다.
예를 들어, 변경 뷰 컨트롤(예를 들어, 지도 뷰의 줌 또는 팬)과의 상호 작용을 검출하는 것에 응답하여, 클라이언트 디바이스(204)는 상호 작용에 기초하여 전자 지도 인터페이스에 제시되어야 하는 지리적 영역을 식별할 것이다. 그런 다음, 클라이언트 디바이스(204)는 (예를 들어, 업데이트된 지도 뷰에 포함될 지리적 좌표의 범위를 이전에 캐싱된 지도 공간에 포함된 지리적 좌표의 범위와 비교함으로써) 이전에 캐싱된 지도 공간에 포함된(예를 들어, 그래픽으로 표시되는) 지리적 영역을 평가할 수 있다. 클라이언트 디바이스(204)가 전자 지도 인터페이스에 제시되어야 하는 지리적 영역이 이전에 캐싱된 지도 공간에 포함되어 있다고 결정하면, 클라이언트 디바이스(204)는 전자 지도 인터페이스에 이전에 캐시된 지도 공간의 다른 부분을 제시하기 위해 지도 뷰를 업데이트한다.
클라이언트 디바이스(204)는 (예를 들어, "지도 핀" 아이콘을 사용하여) 업데이트된 지도 뷰에서 시각적으로 식별될 업데이트된(예컨대, 상이한) 관심 지점을 선택함으로써 업데이트된 POI 디스플레이를 생성한다. 업데이트된 지도 뷰에서 시각적으로 식별되는 POI는 프리젠테이션을 위해 선택된 이전에 캐시된 지도 공간의 다른 부분에 대한 정보에 기초하여 선택될 수 있다. 일부 구현예에서, 클라이언트 디바이스(204)는 예를 들어 지도 공간에 대한 이전 요구에 응답하여 클라이언트 디바이스(204)에서 이전에 캐싱된 오버레이 정보가 제공된 정보를 사용하여 상기 업데이트된 지도 뷰에 포함된 지리적 위치들에 위치하는 POI를 식별한다. 예를 들어, 오버레이 정보는 POI를 지도 공간의 지리적 위치들(예컨대, 지리적 좌표들) 및/또는 "타일들"에 매핑하는 인덱스를 포함할 수 있다.
지도 공간의 타일은 세그먼트 지도 공간의 일부이며, 타일은 지도 공간를 구성하는 다른 타일과 해당 타일을 구별하는데 사용되는 고유 식별자를 가질 수 있다. 이와 같이, 오버레이 정보는 주어진 지도 타일의 고유 식별자를 특정 POI에 매핑(또는 인덱싱화)함으로써 특정 POI가 주어진 지도 타일 내에 있음을 지정할 수 있다. 이와 같이, 클라이언트 디바이스(204)가 (예를 들어, 타일의 고유 식별자에 액세스하거나 독출함으로써) 특정 타일이 업데이트된 지도 뷰에 제공되고 있다고 결정할 때, 클라이언트 디바이스(204)는 (예를 들어, 타일의 고유 식별자를 POI와 관련된 타일 식별자와 비교함으로써) 클라이언트 디바이스(204)에서 이전에 캐싱된 오버레이 정보내의 타일의 고유 식별자에 매핑되는 POI에 기초하여 특정 타일에 포함된 POI를 식별할 수 있다.
도 3을 참조하여 보다 상세히 논의된 바와 같이, 업데이트된 지도 뷰에서 (예를 들어, 지도 핀 아이콘과 같은 시각적 구성 요소를 사용하여) 시각적으로 식별되는 POI의 수는 오버레이 정보를 사용하여 클라이언트 디바이스(204)에 제공되는 사전 결정된 POI 밀도 임계 파라미터에 기초하여 제한될 수 있다. 오버레이 정보로 클라이언트 디바이스(204)에 제공되는 임계값 파라미터를 포함한다. 상이한 사전 결정된 POI 밀도 임계 파라미터는 다양한 줌 레벨에서 제시될 때 지도 공간이 혼란스러워 지는 것을 방지하기 위해 상이한 줌 레벨들(및/또는 뷰포트 경계를 포함하는 다른 디바이스 디스플레이 특성)에 매핑될 수 있으므로 전자 지도 인터페이스를 이용하여 사용자 경험을 향상시킬 수 있다. 오버레이 정보가 클라이언트 디바이스(204)에 제공될 때 줌 레벨들에 대한 사전 결정된 POI 밀도 임계 파라미터들의 이러한 매핑은 로컬 클라이언트 메모리(216)에 저장될 수 있고, 따라서 사용자가 변경 뷰 컨트롤(210)과 상호작용 할 때 클라이언트 디바이스(204)가 이 정보에 대한 네트워크 호출을 개시하는 것을 방지할 수 있다. 클라이언트 디바이스(204)는 변경 뷰 컨트롤(210)과의 각각의 사용자 상호 작용에 응답하여 원격 서버에 접촉할 필요가 없기 때문에, 클라이언트 디바이스(210)에서 상기 사전 결정된 POI 밀도 임계 파라미터를 캐싱하는 것은 지도 뷰를 업데이트하는 것과 관련된 대기 시간을 감소시키며, 이는 지도 공간과의 더 많은 유동적인 상호 작용을 촉진한다.
사전 정의된 POI 밀도 임계 파라미터는 또한 클라이언트 디바이스(204)에서 식별되고 사전 캐싱되어야 하는 POI의 수를 제한하는데 사용될 수 있으며, 이에 따라 클라이언트 디바이스(204)에 저장될 필요가 있는 데이터의 양을 감소시킨다. 게다가, 전자 지도 인터페이스에 액세스하는 사용자에 대한 개인화된 POI 세트는 도 3을 참조하여 이하에서 상세히 논의되는 바와 같이 사용자와 관련된 이력 정보에 기초하여 POI를 랭킹함으로써 생성될 수 있다. 일부 구현예에서, 가장 높은 랭킹의 POI의 세트 만이 클라이언트 디바이스로 제공되며, 여기서 세트에 포함된 POI의 수는 지도 공간과 관련된 가장 높은 사전 결정된 관심 지점 임계 밀도에 따라 제시될 수 있는 POI의 최대 수로 제한될 수 있다.
일부 시나리오에서는 시각적 구성 요소들이 디스플레이되는 가장 높은 랭킹의 POI 세트가 여전히 뷰포트의 작은 영역 내에 함께 위치할 수 있다. 이러한 시나리오 중 하나는, 예를 들어 도시가 디스플레이에서 매우 적은 수의 픽셀을 차지하는 매우 낮은 줌 레벨에서 사용자가 지도를 볼 때 일 수 있다. 이렇게 하면 이미지의 일부가 혼란스러워질 수 있지만, 이 문제는 해당 위치를 확대할 때 해결된다. 즉, 줌 레벨이 증가함에 따라 관심 지점들 간의 간격이 자연스럽게 증가하여 혼란을 줄일 수 있다. 관심 지점 밀도 임계값은 이미지가 채워지는 관심 지점의 수에 제한을 두어, 이로 인해 관심 지점들 사이의 증가된 간격이 많은 수의 추가 관심 지점의 추가에 의해 손상되지 않도록 보장한다.
일부 구현예에서, 클라이언트 디바이스는 네트워크(202)를 통해 서버(218)에 업데이트된 지도 공간 및 오버레이 정보를 요청한다. 예를 들어, 사용자가 클라이언트 디바이스에서 이전에 캐시된 지도 공간 외부의 지도 뷰를 줌 아웃 및 팬 (pan)하면, 클라이언트 디바이스는 도 1과 관련하여 전술한 것과 유사한 방식으로 새로운 지도 공간 및 오버레이를 요청하기 위해 서버(218)에 액세스할 것이다. 서버(218)는 다수의 분산된 서버 디바이스(예를 들어, 개별 POI 선택 서버(120), 오버레이 서버(108) 및 지도 서버(104)) 또는 도 1에서 개별적으로 식별된 서버들의 다수의 기능을 수행하는 단일 서버 디바이스, 또는 이들의 조합을 나타낼 수 있다.
다른 예시적인 클라이언트 디바이스(220)는 클라이언트 디바이스(204)보다 큰 디스플레이 영역을 갖는 태블릿 디바이스이다. 클라이언트 디바이스(220)는 지도 뷰(224)를 제시하는 (예를 들어, 웹 브라우저 내에) 전자 지도 인터페이스(222)를 포함한다. 변경 뷰 컨트롤(226)과의 사용자 상호 작용(예를 들어, 줌 기능 사용)은 프로세스(212)를 개시하고 전자 지도 인터페이스내의 지도 뷰를 업데이트하여 새로운 지도 뷰(228)를 디스플레이한다. 새로운 지도뷰(228)는 클라이언트 데이터 저장소(230)에 저장된 이전에 캐싱된 지도 공간 및 오버레이로부터의 클라이언트 디바이스 업데이트에 의해 제시될 수 있다. 지도 뷰(228)가 캐싱된 지도 공간 외부에 있는 경우, 클라이언트 디바이스에서 새로운 지도 공간 및 오버레이를 수신하기 위해 네트워크(202)를 통해 서버(218)에 대한 요청이 이루어질 수 있다.
상이한 클라이언트 디바이스는 상이한 디스플레이 크기 및/또는 상이한 뷰포트 크기를 지원할 수 있어, 결과적으로 각각의 디스플레이 특성을 이용하여 각각의 특정 클라이언트 디바이스에 대해 설정된 밀도 임계값의 차이로 인해 동일한 지도 공간 및 줌 특성에 대해 다양한 수의 POI를 디스플레이할 수 있다. 예를 들어, 도 2의 지도 뷰(208 및 224) 및 업데이트된 지도 뷰(214 및 228)는 명목상 동일한 초기 및 최종 줌 레벨을 각각 나타내지만, 뷰포트 크기의 차이로 인해 상이한 수의 POI를 제공한다. 도 3은 대화형 지도(interactive map)에 대한 오버레이를 생성/배포하기 위한 예시적인 프로세스(300)의 흐름도이다. 프로세스(300)의 동작들은 도 2의 서버(218)와 같은 하나 이상의 데이터 처리 장치에 의해 수행될 수 있다. 프로세스(300)의 동작들은 비-일시적인 컴퓨터 판독 가능 매체 상에 저장된 명령들로서 구현될 수 있고, 명령들의 실행은 하나 이상의 데이터 처리 장치(예컨대, 서버 또는 다른 컴퓨팅 디바이스들)로 하여금 프로세스(300)의 동작들을 수행하게 할 수 있다.
특정 지리적 위치를 시각적으로 묘사하는 대화형 지도의 프리젠테이션에 대한 요청이 클라이언트 디바이스로부터 수신된다(302). 일부 구현예에서, 상기 요청은 요청을 제출한 사용자의 정보 요구를 특정하는 검색 쿼리와 독립적으로(예를 들어, 없이) 수신된다. 예를 들어, 요청은 지도 애플리케이션이 클라이언트 디바이스에서 론칭될때 개시될 수 있고, 특정 지리적 위치는 (예를 들어, 위치 기반 서비스가 클라이언트 디바이스에서 인에이블될때 GPS 데이터에 의해 지정된 대로) 클라이언트 디바이스의 현재 위치 또는 클라이언트 디바이스에 대해 미리 지정된 디폴트 위치에 기초할 수 있다.
대화형 지도는 요청에 대한 응답으로 클라이언트 디바이스의 사용자 인터페이스에 제시될 것이다. 사용자 인터페이스의 디스플레이 특성은 요청에 포함된 정보에 기초하여 식별되거나 결정될 수 있다. 일부 구현예에서, 디스플레이 특성은 요청에 내장될 수 있다. 예를 들어, 디스플레이 특성은 요청의 URL에 첨부되거나 요청을 이용하여 수신된 데이터 패킷의 특정 위치에 포함될 수 있다. 이러한 상황에서, 디스플레이 특성(예를 들어, 크기, 종횡비, 해상도, 방향 또는 기타 특성)은 요청 자체로부터 직접 식별될 수 있다.
일부 구현예에서, 요청은 디바이스 유형 또는 특정 디바이스 식별자 및/또는 애플리케이션 식별자(예를 들어, ModelX 스마트 폰 식별자, BrowserY 식별자 및/또는 MapApplicationZ 식별자)를 식별하는 정보를 포함한다. 이러한 상황에서, 클라이언트 디바이스의 디스플레이 특성들(예컨대, 스크린 크기 및/또는 해상도) 중 적어도 일부는 디스플레이 특성(예컨대, 스크린 크기 및/또는 디스플레이 해상도)에 대한 디바이스 모델 및/또는 애플리케이션 식별자의 매핑을 이용하여 식별될 수 있다. 예를 들어, 상기 매핑은 요청에 포함된 식별자와 매칭하는 식별자를 검색할 수 있고, 상기 매칭하는 식별자에 매핑된 디스플레이 특성은 요청을 제출한 클라이언트 디바이스의 디스플레이 특성으로서 사용될 수 있다.
특정 지리적 위치를 포함하는 지도 공간은 요청에 기초하여 선택된다(304). 일부 구현예에서, 지도 공간의 선택은 특정 지리적 위치를 포함하는 지도의 일부(예를 들어, 지도 타일)의 식별을 포함한다. 예를 들어, 특정 지리적 위치의 지리적 좌표는 (예를 들어, 특정 지리적 위치에 대해 색인된 지도 타일을 식별함으로써) 특정 지리적 위치를 시각적으로 묘사하는 지도의 일부를 식별하는데 사용될 수 있다.
일부 구현예에서, 지도의 선택된 부분은 클라이언트 디바이스의 뷰포트(또는 뷰포트의 일부 다른 특정 위치)에서 특정 지리적 위치를 중심으로 하는 초기 지도 뷰에 제시될 것이다. 클라이언트 디바이스의 디스플레이 특성, 지도의 선택된 부분의 크기(예컨대, 지도 타일) 및/또는 지도의 선택된 부분이 제시될 뷰포트의 크기에 따라, 지도의 선택된 부분은 전체 뷰포트를 채울 수 없다. 따라서, 전체 뷰포트가 지도의 시각적 묘사로 채워지도록 지도의 추가 부분들이 선택될 수도 있다.
지도의 추가 부분들은 예를 들어 특정 지리적 위치를 사용하여 선택된 지도 타일에 인접한 지도 타일들일 수 있다. 일부 구현예에서, 요청에 응답하여 선택된지도 부분들의 집합 세트의 지도 영역은 초기 지도 뷰에 포함된 지리적 영역을 넘어선 지리적 영역들을 포함할 것이다. 초기 지도 뷰는 대화형 지도와의 사용자 상호 작용 전에 클라이언트 디바이스의 뷰포트에 제시된 지도 공간의 초기 뷰이다. 이와 같이, 지도 영역은 대화형 지도와의 사용자 상호 작용 전에 클라이언트 디바이스의 뷰포트에 제공되지 않는 대화형 지도의 일부들(예를 들어, 스크린 외부)을 포함할 수 있다. 전술한 바와 같이, 대화형 지도와의 가능한 상호 작용은 지도 공간이 제시되는 줌 레벨의 변경 및/또는 뷰포트에 제시되는 지도 공간의 일부를 변경하기 위한 좌, 우, 상 또는 하로의 패닝을 포함할 수 있다. 각 상호 작용은 다른지도 정보를 제시하는 업데이트된 지도 뷰의 프리젠테이션을 시작할 수 있다.
다수의 관심 지점이 상기 선택된 지도 공간에 대해 식별된다(306). 일부 구현예에서, 식별된 관심 지점들은 선택된 지도 공간에 의해 시각적으로 묘사된 지리적 영역 내에 위치하는 지리적 위치를 갖는다. 예를 들어, 특정 지리적 위치가 조지아 주 애틀랜타 시이고, 선택된 지도 공간은 애틀란타의 중심에서 15 마일 거리에 있는(예컨대, 반경 15 마일 또는 북쪽, 남쪽, 동쪽 및 서쪽의 4개의 기본 방향에서 각각 15 마일 떨어진 직사각형) 지도 영역을 포함한다고 가정한다. 이 예에서, 선택된 지도 공간에 대해 식별된 관심 지점들은 애틀란타 중심에서 15 마일 이내에 있는 임의의 관심 지점들을 포함할 수 있다.
다수의 관심 지점에 대해 오버레이가 생성된다(308). 오버레이는 클라이언트 디바이스에서, 지도 공간 내의 식별된 관심 지점들 중 적어도 일부의 지리적 위치에 하나 이상의 시각적 구성 요소(예컨대, 지도 핀 아이콘 또는 다른 아이콘들)를 동적으로 제시한다. 시각적 구성 요소들의 동적인 프리젠테이션은 클라이언트 디바이스가 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여(예컨대, 기초하여) 시각적 구성 요소들에 의해 식별된 관심 지점들을 업데이트하게 할 수 있다. 변경뷰 컨트롤은 예를 들어 지도 공간이 뷰포트에 제시되는 줌 레벨을 변경하는 줌 레벨 컨트롤일 수 있다. 변경 뷰 컨트롤은 뷰포트내의 지도 공간을 재배치하는 (예를 들어, 뷰포트에 제시된 지도 공간의 일부를 변경하는) 패닝 컨트롤일 수도 있다. 이하에서 보다 상세히 논의되는 바와 같이, 소정 지도 뷰에서 시각적으로 식별된 특정 관심 지점들은 클라이언트 디바이스의 디스플레이 특성, 지도 뷰의 줌 레벨, 제시되는 지도 공간의 특징, 사용자 선호도, 및/또는 지도를 보는 사용자에 대응하는 이력 데이터에 기초할 수 있다.
오버레이의 생성은 관심 지점들을 나타내는 각각의 시각적 구성 요소와의 상호 작용의 가능성에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 것을 포함할 수 있다. 예를 들어, 랭킹은 지도 공간을 보는 사용자에 대한 각 관심 지점의 관련성을 반영할 수 있는데, 여기서 보다 높은 순위의 관심 지점은 보다 낮은 순위의 관심 지점보다 사용자와 관련성이 높은 것으로 간주된다. 일부 구현예에서, 사용자에 대한 각 관심 지점의 관련성 레벨은 이하에서 설명되는 바와 같이 사용자 또는 사용자와 유사한 사용자 그룹의 이력적 활동(activity)에 기초하여 결정될 수 있다. 다음의 논의는 위치 기반 서비스가 (예를 들어, 클라이언트 디바이스에서 또는 사용자 계정으로) 인에이블됨을 전제로 한다. 오버레이에 포함시키기 위한 관심 지점들의 랭킹은 (예를 들어, 요청 제출 전의 이전 지도 뷰 세션 중의) 전자 지도 인터페이스 내의 사용자 액션 또는 (예를 들어, 이전 지도 뷰 세션 동안 또는 검색 엔진을 통해) 사용자에 의해 이전에 제출된 검색 쿼리를 고려할 수 있다. 예를 들어, 사용자가 정기적으로 또는 가끔씩 특정 커피 숍을 방문한다고 가정한다. 이 예에서, 사용자에 대한 커피 숍들(및 특정 커피 숍)의 관련성 레벨은 사용자가 특정 커피 숍을 방문하는 빈도에 비례하여 조정(예를 들어, 증가 또는 감소)될 수 있다. 현재의 예에서, 특정 커피 숍에 대한 사용자의 방문은 동일한 커피 숍을 반복적으로 방문하기 때문에 일반적으로 커피 숍들보다 특정 커피 숍에 대한 관련성 레벨에 더 많이 기여할 수 있다. 예를 들어, 관심 지점으로서 특정 커피숍의 관련성에 대한 특정 커피 숍 방문의 기여도는, 위치의 범주로서 커피 숍들의 관련성에 대한 이러한 동일 방문의 기여도보다 훨씬 더 가중될 수 있다.
위의 예에 계속하여, 특정 커피 숍의 지리적 근접 거리(geographic proximity) 내에 있는 관심 지점의 관련성은 사용자가 특정 커피 숍(또는 동일한 지리적 부근(vicinity 내의 다른 관심 지점)을 방문하는 빈도에 기초하여 조정될 수도 있다. 예를 들어, 서점이 특정 커피 숍과 동일한 쇼핑 센터에 위치하고 있다고 가정한다. 이 예에서, 서점의 사용자에 대한 관련성은 사용자가 쇼핑 센터의 지정된 거리 내에서 이동(travel)하는 빈도에 기초하여 조정될 수 있다. 보다 구체적으로, 사용자가 방문한 관심 지점 근처 위치들에 대한 관련성은 사용자의 이력적 이동 경로에 대한 근접 및 사용자가 이들 경로를 따라 또는 특정 위치로 이동하는 빈도에 기초하여 증가될 수 있다.
특정 관심 지점의 관련성에 대한 소정 위치에 대한 사용자 방문의 기여도는, 사용자가 관심 지점을 방문한 소정 위치의 근접도에 기초하여 가중될 수 있다. 예를 들어, 주어진 위치로의 사용자 방문이 관심 지점의 관련성에 기여하도록, 관심 지점은 주어진 위치의 지정된 거리(예를 들어, 마일 또는 이동 시간) 내에 있어야 할 수 있다. 이러한 상황에서, 지정된 거리 내에 있지 않는 관심 지점들은 해당 위치로의 사용자의 이동에 기초하여 관련성이 조정되지 않는다.
부가적으로 또는 대안적으로, 특정 관심 지점의 관련성에 대한 주어진 위치로의 사용자 방문의 영향은 주어진 위치에 대한 특정 관심 지점의 거리에 기초하여 가중될 수 있다. 예를 들어, 주어진 위치로의 방문에 적용된 가중치는 주어진 위치에 비해 거리가 감소하는 함수일 수 있어, 주어진 위치에 대한 방문의 기여도는 주어진 위치에서 더 멀리 있는 관심 지점들에 대해 감소할 것이다.
다른 예에서, 특정 사용자의 검색 쿼리 이력이 지도 공간 내에서 지리적으로 발견된 POI(예를 들어, "애플란타 어린이 박물관"에 대한 검색)에 대한 참조를 포함하면, 사용자에 대한 POI의 관련성은 사용자의 검색 궈리 이력에서 참조되지 않은 다른 식별된 관심 지점들에 비해 증가될 수 있다. 사용자에 의한 특정 검색 또는 검색 카테고리의 빈도는 특정 관심 지점(예컨대, 특정 커피 숍) 및/또는 관심 지점의 카테고리(예컨대, 일반적으로 커피 숍)의 관련성을 조정하는데 사용될 수도 있다. 예를 들어, 주어진 관심 지점 카테고리의 관련성은 그 주어진 관심 지점 카테고리와 관련된 사용자에 의한 검색 빈도가 증가함에 따라 증가될 수 있다.
주어진 관심 지점의 관련성은 사용자가 지정한 선호도를 사용하여 조정될 수도 있다. 예를 들어, 특정 사용자가 예제 과학 박물관(Example Science Museum)의 지리적 위치를 포함하는 조지아주, 애틀란타시의 지도 공간을 요청한다고 가정한다. 또한 이 특정 사용자가 이전에 "가족 친화적 활동" 관심 분야 카테고리(예를 들어, 사용자의 프로필 또는 계정 설정의 선택을 통해)에서 관심 지점에 대한 선호도를 지정했다고 가정한다. 이 예에서, 예제 과학 박물관의 랭킹은 "가족 친화적 활동"과 관련된 관심 지점에 관심이 있다는 사용자의 명시적인 표시에 기초하여 다른 "비-가족 친화적 활동"과 관련된 관심 지점에 비해 증가할 것이다.
특정 사용자의 이력 또는 선호도에 기초하여 POI를 랭킹하는 것 이외에, 사용자의 소셜 네트워크 연결의 선호도 및 추천들이 상기 식별된 POI를 랭킹하는데 사용될 수도 있다. 사용자의 소셜 네트워크는 영향력 있는 사용자들 및/또는 지리적 위치가 클라이언트 디바이스에 제공된 지도 공간 영역 내에 있는 사용자들의 세트를 포함할 수 있다. 예를 들어, 사용자의 소셜 네트워크에서 사용자와 연결된 (예를 들어, 친구, 연결, 연락처 또는 통신과 같은) 다른 사용자들이 (예를 들어, 온라인 리뷰 또는 방문 빈도를 통해) 특정 요구르트 숍에 높은 등급을 주었다고 가정한다. 이 예에서, 사용자가 높은 등급의 요구르트 숍의 지리적 위치를 포함하는 지도 공간를 요청하면, 오버레이 선택 프로세스는 사용자의 소셜 네트워크 연결에 의한 요구르트 숍의 높은 등급 때문에 상기 높은 등급의 요구르트 숍을 상기 지도 공간과 함께 제공되는 오버레이에 포함된 관심 지점으로 높게 랭킹하고 선택할 가능성이 높다.
다른 POI와 관련하여 POI를 랭킹하기 위해 주어진 POI의 관련성은 주어진 POI가 속하는 각 POI 카테고리에 기초하여 조정될 수 있다. 예를 들어, 조지아 주 애틀랜타 시에 있는 예제 과학 박물관을 나타내는 POI는 "박물관", "과학 박물관"및 "가족 친화적 활동"으로 분류될 수 있다. 이 예에서, 주어진 사용자에 대한 PI로서 예제 과학 박물관의 관련성은 상기 주어진 사용자에 대한 각 POI 카테고리의 집합(집계) 관련성(aggregate relevance)에 기초할 수 잇다. 상기 집합 관련성은 부가적(예컨대, 각 POI 카테고리의 관련성이 다른 POI 카테고리의 관련성에 추가됨)일 수 있거나 또는 상기 관련성은 기계 학습 기술 및 일련의 트레이닝 데이터(예를 들어, 관심 지점과의 사용자 상호 작용을 지정하는 이력적 사용자 데이터 및 상호 작용 데이터)를 사용하여 생성된 모델을 사용하여 결정될 수 있다. 이러한 상황에서, 기계 학습 모델은 주어진 사용자의 이력 데이터 및 사용 가능한 관심 지점들에 적용되어, 사용 가능한 관심 지점들 각각에 대한 상호 작용 가능성을 제공할 수 있다. 이 상호 작용 가능성은 POI의 관련성 레벨로 간주될 수 있으며 다른 POI와 비교하여 POI를 랭킹하는데 사용될 수 있다.
상술한 바와 같이, 식별된 다수의 관심 지점은 사용자가 이전에 방문한 하나 이상의 지리적 위치, 사용자가 이전에 방문한 위치들의 카테고리, 사용자가 이전에 상이한 위치의 카테고리를 방문한 빈도, 및/또는 사용자가 방문한 이전 위치에 대한 관심 지점의 근접도에 기초하여 랭킹될 수 있다. 일부 구현예에서, 하루 중 시간 및/또는 요일이 랭킹을 위해 고려될 수 있다. 예를 들어, 사용자가 매주 평일 같은 시간에 특정 커피 숍을 방문했지만 주말에는 2시간 후에 특정 커피 숍을 방문한다고 가정한다. 이 예에서 상이한 위치 카테고리에 대한 이전 방문과 관련된시간 정보는 평일 방문시 평일에 대한 커피 숍 관심 지점의 관련성을 증가시키고, 주말에는 2시간 후에 커피 숍 관심 지점의 관련성을 높이는데 사용될 수 있다.
오버레이는 제시된 다수의 시각적 구성 요소가 지도 뷰를 혼란스럽게 하는 것을 방지하는 방식으로 생성되어, 사용자가 관심 지점의 시각적 구성 요소들이 제시되는 동안 지도를 효과적으로 활용하고 지도로부터 정보를 얻을 수 있게 한다. 일부 구현예에서, 생성된 오버레이는 제시된 시각적 구성 요소의 수가 관심 지점 밀도 임계값을 초과하지 않도록 한다. 관심 지점 밀도 임계값은 특정 지도 뷰에 제시되도록 허용되는 (예를 들어, 관심 지점의 지리적 위치를 식별하는) 시각 구성 요소들의 최대 개수를 지정한다. 전술한 바와 같이, 주어진 지도 뷰에 대한 관심 지점 밀도 임계값은 클라이언트 디바이스의 디스플레이 특성에 기초하여 선택될 수 있다. 예를 들어, 데이터 구조에 저장된 관심 지점 밀도 임계값에 대한 디스플레이 특성의 매핑은 디스플레이 특성의 다양한 조합에 대한 관심 지점 밀도 임계값을 지정할 수 있다.
일부 구현예에서, 관심 지점 밀도 임계값은 사전 지정된 규칙 세트에 기초하여 결정될 수 있다. 예를 들어, 제1 규칙은 모바일 디바이스에 대한 최대 관심 지점 밀도 임계값( "최대 밀도 임계값")이 5임을 지정할 수 있다. 한편, 다른 디스플레이 특성에 기초하여 상기 최대 밀도 임계값을 증강(예를 들어, 감소)시키기 위해 하나 이상의 추가 규칙이 사용될 수 있다. 예를 들어, 뷰포트가 풀 스크린 모드로 표시되지 않는 경우, 제2 규칙은 최대 밀도 임계값이 2개(또는 일부 다른 양)의 시각적 구성 요소로 감소되도록 지정할 수 있다. 유사하게, 제3 규칙은 오버레이를 생성하기 전에 지도 뷰에서의 프리젠테이션을 위해 선택된 다수의 다른 시각적 구성 요소에 기초하여 최대 밀도 임계값이 감소되도록 지정할 수 있다. 예를 들어, 제3 규칙은 오버레이 생성 전에 프리젠테이션을 위해 선택된 각각의 POI에 대해 최대 밀도 임계치가 1만큼 감소되도록 지정할 수 있다.
오버레이는 식별된 가장 높게 랭킹된 관심 지점 세트에 대한 시각적 구성 요소들을 포함하도록 생성될 수 있다. 일부 구현예에서, 가장 높은 랭킹의 관심 지점 세트는 상술한 바와 같이, 사용자에 대한 관련성이 가장 높은 것으로 결정된 관심 지점 세트일 수 있다. 식별된 가장 높은 랭킹의 관심 지점 세트 중에 포함되는 관심 지점의 수는 선택된 지도 공간 및 그 지도 공간에 대한 관심 지점 밀도 임계값이 주어질 때 잠재적으로 제시될 수 있는 임의의 관심 지점을 포함할 수 있다. 예를 들어, 지도 공간의 임의의 지도 뷰에 대한 최대 밀도 임계값이 5라고 가정한다. 이 예에서, 가장 높게 랭킹된 5개의 관심 지점이 상기 식별된 가장 높게 랭킹된 관심 지점 세트에 포함될 것이다.
예를 들어, 오버레이가 지도 공간의 각각의 잠재적인 지도 뷰에 대한 관심 지점을 포함하도록 가장 높은 랭킹의 관심 지점 세트에 추가 관심 지점이 포함될 수도 있다. 예를 들어, 지도 공간의 초기 지도 뷰가 클라이언트 디바이스에 제시된 후, 사용자는 초기에 제시되지 않은 지도 공간의 다른 부분을 나타내기 위해 오른쪽으로 패닝하는 것으로 가정한다. 더욱이 패닝을 통해 초기 지도 뷰에서 시각적으로 식별된 관심 지점의 지리적 위치가 더 이상 스크린에 제시되지 않는다고 가정한다. 이 예에서, 식별된 가장 높게 랭킹된 관심 지점 세트는 패닝에 의해 가려졌던 관심 지점을 대체하기 위해 새롭게 제시된 지도 뷰 내에 있는 지리적 위치를 갖는 관심 지점을 포함할 필요가 있다.
일부 구현예에서, 가장 높은 랭킹의 관심 지점 세트는 관심 지점을 식별하는 시각적 구성 요소들과의 사용자 상호 작용의 가능성 및 조정 계수(adjustment factor)의 조합에 기초하여 선택된다. 일부 구현예에서, 사용자 상호 작용의 가능성과 조정 계수의 조합은 관심 지점을 랭킹하는데 사용되는 랭킹 스코어를 제공한다. 예를 들어, 관계식(1)이 각 관심 지점에 대한 랭킹 스코어를 생성하는데 사용될 수 있다.
Figure 112019016707634-pct00001
여기서, RSi는 관심 지점(i)의 랭킹 스코어이다.
PIi는 관심 지점(i)을 나타내는 시각적 구성 요소와의 사용자 상호 작용의 확률이고, AFi는 관심 지점(i)에 대한 조정 계수이다.
상기 조정 계수는 관심 지점과 관련된 값의 개수일 수 있다. 예를 들어, 조정 계수는 관심 지점과 관련된 품질 메트릭일 수 있다. 대안적으로, 조정 계수는 관심 지점(예컨대, 커피 숍의 소유자)과 관련된 엔티티에 의해 지정된 입찰(예를 들어, 지도상의 관심 지점과의 사용자 상호 작용을 위해 지불되는 금액)일 수 있다.
일부 구현예에서, 가장 높은 랭킹의 관심 지점 세트는 관계식(2)를 사용하여 선택될 것이다.
Figure 112019016707634-pct00002
여기서, n은 가장 높은 랭킹의 관심 지점 세트에 포함된 관심 지점의 수이고, PIi는 관심 지점(i)을 나타내는 시각적 구성 요소와의 사용자 상호 작용의 확률이며, AFi+1은 관심 지점(i)과 비교하여 다음으로 가장 높은 랭킹에 있는 관심 지점(i+1)에 대한 조정 계수이다.
오버레이는 상기 랭킹에 기초하여 소정 지도 뷰 내에서 어떤 관심 지점이 식별되는지를 동적으로 변경하도록 생성될 수 있다. 일부 구현예에서, 제시된 관심 지점으로의 동적 변경은 클라이언트 디바이스에서 대화형 지도와의 사용자 상호 작용에 응답하여 수행된다. 예를 들어, 지도 뷰의 변경은 지도 공간에 제시된 시각적 구성 요소에 의해 관심 지점이 식별되는 변경을 초래할 수 있다. 보다 상세하게는, 초기 지도 뷰에 대한 관심 지점 일도 임계치가 3이고, 사용자가 줌 컨트롤과 상호 작용하여 더 높은 줌 레벨을 갖는 (예를 들어, 도 2의 지도 뷰(208 및 214)에 의해 도시된 바와 같이) 업데이트된 지도 뷰를 생성한다고 가정한다. 이 예에서, 더 높은 줌 레벨은 (예를 들어, 밀도 임계값에 대한 줌 레벨의 저장된 매핑에 기초하여) 4의 관심 지점 밀도 임계값에 대응할 수 있다. 이와 같이, 오버레이는 추가 관심 지점의 지리적 위치를 식별하기 위한 추가적인 시각적 구성 요소를 노출(예컨대, 제시)할 수 있다. 일부 구현예에서, 추가적인 시각적 구성 요소에 의해 식별된 추가 관심 지점은 이전 지도 뷰에서 초기에 식별되지 않은 다음으로 높은 랭킹의 관심 지점일 수 있다. 일부 구현예에서, 상기 랭킹은 다른 줌 레벨에 대해 개별적으로 수행되므로 줌 레벨을 변경하면 이전에 제시된 것과는 전적으로(또는 부분적으로) 상이한 관심 지점 세트를 나타낼(reveal) 수 있다.
오버레이에 대한 오버레이 정보는 클라이언트 디바이스에 캐싱된다(310). 일부 구현예에서, 오버레이 정보는 가장 높은 랭킹의 관심 지점 세트, 가장 높은 랭킹의 관심 지점 세트의 지리적 위치를 식별하는 지리적 데이터(예를 들어, 지리적 좌표), 및 가장 높은 랭킹의 관심 지점 세트내의 각각의 관심 지점을 시각적으로 식별하는데 사용되는 시각적 구성 요소들을 포함한다. 초기 지도 뷰에 초기에 제시되지 않는 관심 지점들을 포함하여 클라이언트 디바이스에서 오버레이 정보를 캐시하는 것은, 사용자가 지도 공간과 상호 작용할 때 후속 지도 뷰들에 제시되는 관심 지점들을 동적이고 원활한 업데이트를 가능하게 한다. 예를 들어, 클라이언트 디바이스는 새로운 관심 지점들이 오버레이 정보로부터 국부적으로 획득될 수 있기 때문에 상이한 지도 뷰에 대해 상이한 관심 지점을 식별하기 위해 네트워크 호출을 개시할 필요가 없다. 이와 같이, 사용자는 원격 서버들의 추가 정보를 기다리지 않고 지도 공간과 원활하게 상호 작용하여 관련 정보를 얻을 수 있다.
각 관심 지점과 관련된 특정 지리적 위치를 갖는 것 외에도, 관심 지점은 예를 들어, 인코딩된 범용 자원 위치 지정자(universal resource locator), 관련 카테고리, 동작-기반 정보(예를 들어, 동작 시간), 또는 다른 파라미터들을 포함하는 다른 속성들을 추가로 가질 수 있다. 예를 들어, 조지 주, 애틀랜타시에 있는 예제 과학 박물관을 대표하는 관심 장소에는 박물관 웹 사이트의 URL, "박물관" 및 "IMAX"의 관련 카테고리, 일일 영업 시간 및 티켓 가격이 포함될 수 있다. 예제 과학 박물관에 대한 각 시각적 구성 요소에 포함된 코드는 시각적 구성 요소와의 사용자 상호 작용에 대한 응답으로 다양한 정보를 제시할 수 있다. 예를 들어, 시각적 구성 요소에 대한 사용자 호버(hover) 또는 초기 사용자 클릭은 지도 뷰에서 관심 지점에 대한 정보를 나타낼 수 있다. 부가적으로 또는 대안적으로, 시각적 구성 요소에 대한 제2 사용자 클릭은 시각적 구성 요소에 의해 링크된 웹 페이지(예를 들어, 관심 지점에 대한 웹 사이트)에 대한 요청을 개시할 수 있다.
일부 구현예에서, 클라이언트 디바이스는 클라이언트 디바이스에서 지도 뷰의 프리젠테이션 중에 나타나도록 선택된 특정 관심 지점에 대한 피드백을 제공할 수 있다. 예를 들어, 클라이언트 디바이스는 관심 지점이 클라이언트 디바이스의 뷰포트 내에 있는 지속 시간, 특정 사용자가 지속 시간 동안 관심 지점과 상호 작용했는지 여부 또는 특정 관심 지점이 소정 시간 내에 지도 뷰에 여러 차례 나타난 경우에 대한 피그백을 제공할 수 있다. 이 정보는 관심 지점의 인상(impression)을 지도 뷰에 기록(log)할지 여부를 결정하는데 사용될 수 있다.
일부 구현예에서, 지도 공간은 또한 클라이언트 디바이스에 캐싱된다. 예를 들어, 초기 지도 뷰 및/또는 지도 공간의 추가 부분을 생성하는데 사용되는 지도 공간의 부분은 지도 뷰들 간의 원활한 전환을 촉진하기 위해 클라이언트 디바이스에 캐시된다. (예를 들어, 초기 지도 요청에 응답하여) 클라이언트 디바이스에 캐싱된 지도 공간의 부분은 지도 공간과의 사용자 상호 작용 이전에 지도 뷰에 제시된 지리적 영역 이외의 (예를 들어, 스크린 영역 밖의) 지리적 영역을 포함하는 지도 공간 부분들을 포함할 수 있다.
사용자 인터페이스는 지도 공간과 오버레이를 사용하여 업데이트된다(312). 일부 구현예에서, 사용자 인터페이스는 초기 지도 뷰(예를 들어, 특정 지리적 위치에 중심을 둔 지도 공간의 뷰) 및 초기 지도 뷰에서 하나 이상의 관심 지점을 식별하는 시각적 구성 요소들을 제시하도록 초기에 업데이트된다. 예를 들어, 지도뷰 (224)는 초기 지도 뷰를 제시하도록 업데이트된 사용자 인터페이스를 갖는 클라이언트 디바이스의 예이다.
초기 지도 뷰가 제시된 후 상기 캐신된 지도 공간 및 캐싱된 오버레이 정보를 사용하여 사용자 인터페이스를 추가로 업데이트 할 수 있다. 예를 들어, 변경 뷰 컨트롤과의 사용자 상호 작용을 감지할 수 있으며, 사용자 상호 작용에 응답하여 지도 공간이 표시되는 줌 레벨을 식별할 수 있다. 예를 들어 줌 레벨 컨트롤과의 단일 사용자 상호 작용은 줌 레벨을 한 레벨 증가시킬 수 있다. 이와 같이, 줌 레벨 컨트롤과의 단일 사용자 상호 작용의 검출은 줌 레벨을 현재의 줌 레벨보다 한 레벨 높은 것으로 식별할 수 있다.
식별된 줌 레벨은 캐싱된 오버레이 정보에서 대응하는 관심 지점 밀도 임계값을 식별하는데 사용된다. 예를 들어, 전술한 바와 같이, 오버레이 정보는 줌 레벨들을 대응하는 관심 지점 밀도 임계값에 매핑하는 것을 포함할 수 있다. 이 매핑은 캐싱된 오버레이 정보 내에서, 식별된 줌 레벨의 위치를 확인하고, 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값을 독출하기 위해 액세스될 수 있다.
식별된 줌 레벨에서 뷰포트에 시각적으로 묘사된 지리적 위치를 갖는 관심 지점 세트가 상기 캐싱된 오버레이 정보로부터 식별된다. 예를 들어, 클라이언트 디바이스는 캐싱된 오버레이 정보에 액세스하여, 제시되는 지도 뷰의 지리적 좌표 범위 내에 있는 지리적 좌표를 갖는 관심 지점을 식별할 수 있다. 이들 관심 지점의 랭킹은 또한 캐싱된 오버레이 정보로부터 식별될 수 있어, 이러한 식별된 관심 지점들의 상대적 랭킹이 클라이언트 디바이스에 이용 가능하다. 그런 다음 식별된 하나 이상의 관심 지점은 대응하는 시각적 구성 요소를 사용하여 지도 뷰에서 시각적으로 식별되도록 선택된다. 일부 구현예에서, 선택되는 식별된 관심 지점의 수는 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값보다 작거나 같다. 예를 들어, 선택된 관심 지점은 식별된 관심 지점으로부터 가장 높은 x 랭킹의 관심 지점 일 수 있으며, 여기서 x는 식별된 줌 레벨에 대한 관심 지점 밀도 임계값이다.
일부 구현예에서, 하나 이상의 관심 지점은 클라이언트 디바이스의 디바이스 유형 또는 클라이언트 디바이스의 화면 크기에 기초하여 선택된다. 예를 들어, 상술한 바와 같이, 디바이스 유형(예를 들어, 태블릿, 모바일, 데스크탑) 및/또는 디바이스의 모델 번호가 요청에 포함될 수 있다. 이와 같이, 이 정보는 클라이언트 디바이스의 화면 크기 및/또는 해상도를 조회(lookup)하는데 사용될 수 있다. 이 정보는 단독으로 또는 다른 디스플레이 특성(예를 들어, 디스플레이 내의 뷰포트의 크기 및/또는 위치)과 함께 오버레이에 얼마나 많은 관심 지점이 포함되도록 선택 될지 여부를 결정하는데 사용될 수 있다.
일부 구현예에서, 하나 이상의 관심 지점은 관심 지점의 현재 선택 이전에 프리젠테이션을 위해 사전 선택된 관심 지점의 수에 기초하여 선택된다. 예를 들어, 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여 관심 지점을 선택하기 전에, 특정 관심 지점(예컨대, 연방 공원)이 지도 공간에서 식별되도록 선택되었다고 가정한다. 이 예에서, 사용자 상호 작용에 응답하여 관심 지점의 선택은 특정 관심 지점의 사전 선택을 설명하도록 수정될 수 있다. 보다 구체적으로, 선택된 관심 지점의 수는 특정 관심 지점의 사전 선택에 기초하여 감소될 수 있다.
도 4는 상술한 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(400)의 블록도이다. 시스템(400)은 프로세서(410), 메모리(420), 저장 디바이스 (430) 및 입/출력 디바이스(440)를 포함한다. 구성 요소(410, 420, 430 및 440) 각각은 예를 들어 시스템 버스(450)를 사용하여 상호 접속될 수 있다. 프로세서(410)는 시스템(400) 내에서의 실행을 위한 명령들을 처리할 수 있다. 일 구현예에서, 프로세서(410)는 단일-스레드 프로세서이다. 다른 구현예에서, 프로세서(410)는 멀티-스레드 프로세서이다. 프로세서(410)는 메모리(420) 또는 저장 디바이스(430)에 저장된 명령들을 처리할 수 있다.
메모리(420)는 시스템(400) 내의 정보를 저장한다. 일 구현예에서, 메모리 (420)는 컴퓨터 판독 가능 매체이다. 일 구현예에서, 메모리(420)는 휘발성 메모리 유닛이다. 다른 구현예에서, 메모리(420)는 비 휘발성 메모리 유닛이다.
저장 디바이스(430)는 시스템(400)을 위한 대용량 저장 장치를 제공할 수 있다. 일 구현예에서, 저장 디바이스(430)는 컴퓨터 판독 가능 매체이다. 다양한 구현예에서, 저장 디바이스(430)는 예를 들어, 하드 디스크 디바이스, 광 디스크 디바이스, 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 네트워크를 통해 공유되는 저장 디바이스 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.
입/출력 디바이스(440)는 시스템(400)에 대한 입/출력 동작을 제공한다. 일 구현예에서, 입/출력 디바이스(440)는 하나 이상의 네트워크 인터페이스 디바이스, 예를 들어 이더넷 카드, RS-232 포트와 같은 직렬 통신 디바이스, 및/또는 802.11 카드와 같은 무선 인터페이스 디바이스를 포함할 수 있다. 다른 구현예에서, 입/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 다른 입/출력 디바이스, 예를 들어 키보드, 프린터 및 디스플레이 디바이스(460)로 전송하도록 구성된 구동 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 이동 통신 디바이스, 셋톱 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현예도 사용될 수 있다.
예시적인 프로세싱 시스템이 도 4에 개시되어 있지만, 도 4를 참조하면, 본 명세서에서 개시된 주제 및 기능적 동작들의 구현은, 다른 유형의 디지털 전자 회로에서, 또는 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 그들 중 하나 이상의 조합에서 구현될 수 있다. 전자 문서는 파일에 해당 할 수도 있지만 그렇지 않을 수도 있다. 문서는 다른 문서를 보관하는 파일의 일부, 문제의 문서 전용의 단일 파일 또는 다수의 조정 파일로 저장될 수 있다.
본 명세서에 개시된 주제 및 동작들의 실시예들은 디지털 전자 회로에서, 또는 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 그들 중 하나 이상의 조합에서 구현될 수 있다. 본 명세서에 개시된 주제의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 부가적으로, 프로그램 명령들은 인위적으로 생성된 전파 신호, 예를 들어 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하도록 생성되는 기계-생성의 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 구성 요소 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 포함될 수 있다.
본 명세서에서 설명된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다.
"데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템, 또는 이들의 다수의 것들 또는 이들의 조합을 포함하여, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)을 포함할 수 있다. 상기 장치는 또한 하드웨어 이외에, 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 조합에 대한 실행 환경을 생성하는 코드를 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 다른 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하여 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 구성 요소, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당 할 수도 있지만 그렇지 않을 수도 있다. 프로그램은 다른 프로그램이나 데이터(예컨대, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보관하는 파일의 일부에, 문제의 프로그램에 전용인 단일 파일에, 또는 다수의 조정 파일(예컨대, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 걸처 분산되어 있으며 통신 네트워크로 상호 연결된 다수의 컴퓨터상에서 실행되도록 배포될 수 있다.
본 명세서에서 설명된 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작들을 수행하기 위한 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 상기 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 같은 특수 목적의 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로 프로세서 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성 요소는 명령들에 따라 동작들을 수행하기 위한 프로세서와 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)를 저장하기 위한 하나 이상의 대용량 저장 디바이스로부터 데이터를 수신하거나 전송하거나 또는 둘 모두에 동작 가능하게 결합되거나 포함될 수 있다. 그러나, 컴퓨터에는 이러한 디바이스들이 있을 필요가 없다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어 이동 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 위성 위치 확인 시스템(GPS) 수신기 또는 휴대용 저장 디바이스(예컨대, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 디바이스; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하여, 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 상기 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 또는 그 안에 포함될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 기술된 주제의 실시예는 사용자에게 정보를 디스플레이하는 예를 들어 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 예를 들어 마우스 또는 트랙볼과 같은 키보드 및 포인팅 디바이스를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백 일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 게다가, 컴퓨터는 사용자가 사용하는 디바이스와 문서를주고 송수신함으로써 사용자와 상호 작용할 수 있는데, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 수행될 수 있다.
본 명세서에 개시된 주제의 실시예는 데이터 서버와 같은 백 엔드 구성 요소를 포함하거나, 애플리케이션 서버와 같은 미들웨어 구성 요소를 포함하거나, 사용자가 본 명세서에서 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 구성 요소를 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 로컬 영역 네트워크(LAN) 및 광역 네트워크( "WAN"), 인터-네트워크네트(예컨대, 인터넷), 피어 투 피어 네트워크(예컨대, 애드 혹 피어-투-피어 네트워크)를 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다. 일부 실시예에서, 서버는 (예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 클라이언트 디바이스로 데이터(예를 들어, HTML 페이지)를 송신한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
본 명세서는 다수의 특정 구현 세부 사항들을 포함하지만, 이들은 임의의 발명 또는 청구될 수 있는 범위에 대한 제한들로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정한 특징에 대한 설명으로 해석되어야한다. 개별 실시예의 문맥으로 본 명세서에서 기술된 소정 특징들은 또한 단일 실시예의 조합으로 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 기술된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합에서 작용하는 것으로 상기에서 설명될 수 있고, 심지어 처음에는 그러한 것으로서 청구될지라도, 청구된 조합으로부터의 하나 이상의 특징은 어떤 경우 해당 조합에서 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형으로 유도될 수 있다.
유사하게, 동작들이 특정 순서로 도면에 도시되어 있지만, 이것은 바람직한 동작을 달성하기 위해, 이러한 동작들이 도시된 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 게다가, 상술한 실시예에서 다양한 시스템 구성 요소의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 개시된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 일부 경우에, 청구항들 내에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 게다가, 첨부된 도면에 도시된 프로세스들은 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (28)

  1. 시스템으로서,
    하나 이상의 데이터 저장 디바이스를 포함하여, 지도를 정의하는 지도 데이터를 저장하는 지도 데이터베이스와;
    하나 이상의 컴퓨팅 디바이스를 포함하여, 특정 지리적 위치를 시각적으로 묘사하는 대화형 지도의 프리젠테이션 요청을 사용자 디바이스로부터 수신하고, 상기 사용자 디바이스상의 사용자 인터페이스에 프리젠테이션하기 위한 지도 공간를 선택하는 지도 데이터베이스와 통신하는 지도 서버와, 상기 지도 공간은 특정 지리적 위치를 포함하고; 그리고
    적어도 하나의 컴퓨팅 디바이스를 포함하여, 클라이언트 디바이스로부터 디스플레이 특성을 수신하고, 클라이언트 디바이스의 사용자에 대한 이력 정보에 기초하여, 상기 선택된 지도 공간에 의해 시각적으로 묘사된 지리적 영역 내에 위치하는 지리적 위치를 갖는 다수의 관심 지점을 식별하고, 상기 대화형 지도의 프리젠테이션 요청에 응답하여, 클라이언트 디바이스에서, 상기 클라이언트 디바이스의 디스플레이 특성에 기초하여 상기 지도 공간 내의 상기 식별된 관심 지점들 중 적어도 일부의 지리적 위치에 하나 이상의 시각적 구성 요소를 동적으로 제시하는 오버레이를 생성하는 하나 이상의 서버를 포함하여,
    상기 관심 지점들을 나타내는 시각적 구성 요소 각각과 상호 작용할 가능성에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하고; 그리고
    상기 식별된 관심 지점들에 대해 상기 선택된 지도 공간내에 제시된 다수의 시각적 구성 요소가 데이터 구조에서 상기 클라이언트 디바이스의 디스플레이 특성에 매핑되는 관심 지점 밀도 임계값을 초과하는 것을 방지하는 것을 포함하고, 상이한 관심 지점 밀도 임계값들은 데이터 구조에서 디스플레이 특성들의 상이한 조합에 매핑되고,
    상기 생성된 오버레이는 랭킹에 기초하여, 상기 클라이언트 디바이스에서 대화형 지도와의 사용자 상호 작용에 응답하여 제시된 시각적 구성 요소의 수에 의해 식별되는 관심 지점들을 동적으로 변경하고, 그리고
    상기 생성된 오버레이는 상기 클라이언트 디바이스의 사용자 인터페이스를 상기 지도 공간 및 오버레이로 업데이트하는 지연을 줄이기 위해 클라이언트 디바이스에서 캐시하도록 클라이언트 디바이스로 제공되는 것을 특징으로 하는 시스템.
  2. 제1항에 있어서,
    상기 지도 서버에 의해 선택된 지도 공간은,
    상기 지도 공간과의 사용자 상호 작용 전에 상기 지도 공간의 적어도 일부가 상기 클라이언트 디바이스의 뷰포트 외부에 있게 하는 지도 영역을 갖는 것을 특징으로 하는 시스템.
  3. 제1항에 있어서,
    상기 오버레이를 생성하는 것은,
    캐싱된 오버레이 정보를 사용하여 클라이언트 디바이스에서, 상기 지도 공간이 뷰포트에서 제시되는 줌 레벨을 변경하는 변경 뷰 컨트롤과의 사용자 상호 작용에 기초하여, 상기 제시된 시각적 구성 요소들에 의해 식별된 관심 지점들을 업데이트하는 오버레이를 생성하는 것을 포함하고,
    상기 업데이트는 클라이언트 디바이스가 하나 이상의 서버에 대한 추가 네트워크 호출을 개시하지 않고도 수행되는 것을 특징으로 하는 시스템.
  4. 제3항에 있어서,
    상기 제시된 시각적 구성 요소들에 의해 식별된 상기 관심 지점들을 업데이트하는 것은,
    상기 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여 상기 지도 공간이 제시되는 줌 레벨을 식별하고;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값을 식별하고;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에서 뷰포트에 시각적으로 묘사된 지리적 위치를 갖는 관심 지점 세트를 식별하고; 그리고
    상기 식별된 관심 지점 세트로부터, 대응하는 시각 구성 요소를 사용하여 시각적으로 식별되는 하나 이상의 관심 지점을 선택하는 것을 포함하고, 상기 선택된 관심 지점의 총 수는 상기 식별된 줌 레벨에 대한 상기 대응하는 관심 지점 밀도 임계값보다 작거나 같은 것을 특징으로 하는 시스템.
  5. 제4항에 있어서,
    상기 하나 이상의 관심 지점을 선택하는 것은,
    상기 랭킹으로부터 가장 높게 랭킹된 관심 지점들의 총 수를 선택하는 것을 포함하는 것을 특징으로 하는 시스템.
  6. 제1항에 있어서,
    상기 식별된 다수의 관심 지점을 랭킹하는 것은,
    상기 사용자가 이전에 방문한 하나 이상의 지리적 위치, 상기 사용자가 이전에 방문한 위치들의 카테고리, 상기 사용자가 이전에 상이한 카테고리의 위치들을 방문한 빈도, 상이한 카테고리의 위치들에 대한 이전의 방문과 관련된 시간 정보, 사용자가 방문한 이전 위치들에 대한 관심 지점의 근접도 또는 지원되는 임의의 검색 인터페이스상에서 사용자가 수행한 검색 쿼리들 중 하나 이상에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 것을 포함하는 것을 특징으로 하는 시스템.
  7. 방법으로서,
    클라이언트 디바이스로부터, 특정 지리적 위치를 시각적으로 묘사하는 사용자 인터페이스에 대화형 지도를 프리젠테이션하기 위한 요청을 수신하는 단계와;
    상기 클라이언트 디바이스로부터, 클라이언트 디바이스에 대한 디스플레이 특성을 수신하는 단계와;
    하나 이상의 서버에 의해 상기 요청에 기초하여, 상기 특정 지리적 위치를 포함하는 지도 공간를 선택하는 단계와;
    상기 클라이언트 디바이스의 사용자에 대한 이력 정보에 기초하여, 상기 선택된 지도 공간에 의해 시각적으로 묘사된 지리적 영역 내에 위치하는 지리적 위치들을 갖는 다수의 관심 지점을 식별하는 단계와;
    상기 하나 이상의 서버에 의해 상기 대화형 지도를 프리젠테이션하기 위한 요청에 응답하여, 상기 클라이언트 디바이스에서, 상기 클라이언트 디바이스의 디스플레이 특성에 기초하여 지도 공간 내의 상기 식별된 관심 지점들 중 적어도 일부의 지리적 위치에 하나 이상의 시각적 구성 요소를 동적으로 제시하는 오버레이를 생성하는 단계로서,
    상기 관심 지점들을 나타내는 시각적 구성 요소 각각과 상호 작용할 가능성에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계;
    상기 식별된 관심 지점들에 대해 상기 선택된 지도 공간내에 제시된 다수의 시각적 구성 요소가 데이터 구조에서 상기 클라이언트 디바이스의 디스플레이 특성에 매핑되는 관심 지점 밀도 임계값을 초과하는 것을 방지하는 단계를 포함하고, 상이한 관심 지점 밀도 임계값들은 상기 데이터 구조에서 디스플레이 특성들의 상이한 조합에 매핑되고,
    상기 생성된 오버레이는 랭킹에 기초하여, 상기 클라이언트 디바이스에서 대화형 지도와의 사용자 상호 작용에 응답하여 제시된 시각적 구성 요소의 수에 의해 식별되는 관심 지점들을 동적으로 변경하며; 그리고
    상기 클라이언트 디바이스에서, 상기 오버레이에 대한 오버레이 정보 및 상기 지도 공간의 일부를 캐싱하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 지도 공간은,
    상기 지도 공간과의 사용자 상호 작용 전에 상기 지도 공간의 적어도 일부가 상기 클라이언트 디바이스의 뷰포트 외부에 있는 지도 영역을 갖는 것을 특징으로 하는 방법.
  9. 제7항에 있어서,
    상기 오버레이를 생성하는 단계는,
    상기 캐싱된 오버레이 정보를 사용하여 클라이언트 디바이스에서, 상기 지도 공간이 뷰포트에서 제시되는 줌 레벨을 변경하는 변경 뷰 컨트롤과의 사용자 상호 작용에 기초하여, 상기 제시된 시각적 구성 요소들에 의해 식별된 관심 지점들을 업데이트하는 오버레이를 생성하는 단계를 포함하고,
    상기 업데이트는 상기 클라이언트 디바이스가 상기 하나 이상의 서버에 대한 추가 네트워크 호출을 개시하지 않고도 수행되는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 제시된 시각적 구성 요소들에 의해 식별된 상기 관심 지점들을 업데이트하는 단계는,
    상기 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여 상기 지도 공간이 제시되는 줌 레벨을 식별하는 단계와;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값을 식별하는 단계와;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에서 뷰포트에 시각적으로 묘사된 지리적 위치를 갖는 관심 지점 세트를 식별하는 단계와; 그리고
    상기 식별된 관심 지점 세트로부터, 대응하는 시각 구성 요소를 사용하여 시각적으로 식별되는 하나 이상의 관심 지점을 선택하는 단계를 포함하고, 상기 선택된 관심 지점의 총 수는 상기 식별된 줌 레벨에 대한 상기 대응하는 관심 지점 밀도 임계값보다 작거나 같은 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 하나 이상의 관심 지점을 선택하는 단계는,
    상기 랭킹으로부터 가장 높게 랭킹된 관심 지점들의 총 수를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제10항에 있어서,
    상기 하나 이상의 관심 지점을 선택하는 단계는,
    상기 클라이언트 디바이스의 디바이스 유형 또는 상기 클라이언트 디바이스의 화면 크기에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제10항에 있어서,
    상기 하나 이상의 관심 지점을 선택하는 단계는,
    상기 선택 이전에 프리젠테이션을 위해 사전-선택된 관심 지점의 수에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제7항에 있어서,
    상기 식별된 다수의 관심 지점들을 랭킹하는 단계는,
    상기 사용자가 이전에 방문한 하나 이상의 지리적 위치, 상기 사용자가 이전에 방문한 위치들의 카테고리, 상기 사용자가 이전에 상이한 카테고리의 위치들을 방문한 빈도, 상이한 카테고리의 위치들에 대한 이전의 방문과 관련된 시간 정보, 사용자가 방문한 이전 위치들에 대한 관심 지점의 근접도 또는 지원되는 임의의 검색 인터페이스상에서 사용자가 수행한 검색 쿼리들 중 하나 이상에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 컴퓨터 프로그램으로 인코딩된 비-일시적 컴퓨터 저장 매체로서, 상기 프로그램은 데이터 처리 장치에 의해 실행될 때 상기 데이터 처리 장치로 하여금 동작들을 수행하게 하는 명령들을 포함하고, 상기 동작들은,
    클라이언트 디바이스로부터, 특정 지리적 위치를 시각적으로 묘사하는 사용자 인터페이스에 대화형 지도를 프리젠테이션하기 위한 요청을 수신하는 단계와;
    상기 클라이언트 디바이스로부터, 클라이언트 디바이스에 대한 디스플레이 특성을 수신하는 단계와;
    하나 이상의 서버에 의해 상기 요청에 기초하여, 상기 특정 지리적 위치를 포함하는 지도 공간를 선택하는 단계와;
    상기 선택된 지도 공간에 의해 시각적으로 묘사된 지리적 영역 내에 위치하는 지리적 위치들을 갖는 다수의 관심 지점을 식별하는 단계와;
    상기 클라이언트 디바이스의 사용자에 대한 이력 정보에 기초하여, 상기 클라이언트 디바이스에서, 상기 클라이언트 디바이스의 디스플레이 특성에 기초하여 지도 공간 내의 상기 식별된 관심 지점들 중 적어도 일부의 지리적 위치에 하나 이상의 시각적 구성 요소를 동적으로 제시하는 오버레이를 생성하는 단계로서,
    상기 관심 지점들을 나타내는 시각적 구성 요소 각각과 상호 작용할 가능성에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계;
    상기 식별된 관심 지점들에 대해 상기 선택된 지도 공간내에 제시된 다수의 시각적 구성 요소가 데이터 구조에서 상기 클라이언트 디바이스의 디스플레이 특성에 매핑되는 관심 지점 밀도 임계값을 초과하는 것을 방지하는 단계를 포함하고, 상이한 관심 지점 밀도 임계값들은 상기 데이터 구조 내의 디스플레이 특성들의 상이한 조합에 매핑되고,
    상기 생성된 오버레이는 랭킹에 기초하여, 상기 클라이언트 디바이스에서 대화형 지도와의 사용자 상호 작용에 응답하여 제시된 시각적 구성 요소의 수에 의해 식별되는 관심 지점들을 동적으로 변경하며; 그리고
    상기 클라이언트 디바이스에서, 상기 오버레이에 대한 오버레이 정보 및 상기 지도 공간의 일부를 캐싱하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  16. 제15항에 있어서,
    지도 서버에 의해 선택된 지도 공간은,
    상기 지도 공간과의 사용자 상호 작용 전에 상기 지도 공간의 적어도 일부가 상기 클라이언트 디바이스의 뷰포트 외부에 있게 하는 지도 영역을 갖는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  17. 제15항에 있어서,
    상기 오버레이를 생성하는 단계는,
    상기 캐싱된 오버레이 정보를 사용하여 클라이언트 디바이스에서, 상기 지도 공간이 뷰포트에서 제시되는 줌 레벨을 변경하는 변경 뷰 컨트롤과의 사용자 상호 작용에 기초하여, 상기 제시된 시각적 구성요소들에 의해 식별된 관심 지점들을 업데이트하는 오버레이를 생성하는 단계를 포함하고,
    상기 업데이트는 상기 클라이언트 디바이스가 상기 하나 이상의 서버에 대한 추가 네트워크 호출을 개시하지 않고도 수행되는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  18. 제17항에 있어서,
    상기 제시된 시각적 구성 요소들에 의해 식별된 상기 관심 지점들을 업데이트하는 단계는,
    상기 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여 상기 지도 공간이 제시되는 줌 레벨을 식별하는 단계와;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값을 식별하는 단계와;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에서 뷰포트에 시각적으로 묘사된 지리적 위치를 갖는 관심 지점 세트를 식별하는 단계와; 그리고
    상기 식별된 관심 지점 세트로부터, 대응하는 시각 구성 요소를 사용하여 시각적으로 식별되는 하나 이상의 관심 지점을 선택하는 단계를 포함하고, 상기 선택된 관심 지점의 총 수는 상기 식별된 줌 레벨에 대한 상기 대응하는 관심 지점 밀도 임계값보다 작거나 같은 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  19. 제18항에 있어서,
    상기 하나 이상의 관심 지점을 선택하는 단계는,
    상기 랭킹으로부터 가장 높게 랭킹된 관심 지점들의 총 수를 선택하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  20. 제15항에 있어서, 상기 식별된 다수의 관심 지점들을 랭킹하는 단계는,
    상기 사용자가 이전에 방문한 하나 이상의 지리적 위치, 상기 사용자가 이전에 방문한 위치들의 카테고리, 상기 사용자가 이전에 상이한 카테고리의 위치들을 방문한 빈도, 상이한 카테고리의 위치들에 대한 이전의 방문과 관련된 시간 정보, 사용자가 방문한 이전 위치들에 대한 관심 지점의 근접도 또는 지원되는 임의의 검색 인터페이스상에서 사용자가 수행한 검색 쿼리들 중 하나 이상에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
  21. 방법으로서,
    클라이언트 디바이스로부터, 특정 지리적 위치를 시각적으로 묘사하는 사용자 인터페이스에 대화형 지도를 프리젠테이션하기 위한 요청을 수신하는 단계와;
    상기 클라이언트 디바이스로부터, 클라이언트 디바이스에 대한 디스플레이 특성을 수신하는 단계와;
    하나 이상의 서버에 의해 상기 요청에 기초하여, 상기 특정 지리적 위치를 포함하는 지도 공간을 선택하는 단계와;
    상기 선택된 지도 공간에 의해 시각적으로 묘사된 지리적 영역 내에 위치하는 지리적 위치들을 갖는 다수의 관심 지점을 식별하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 클라이언트 디바이스의 사용자에 대한 이력 정보에 기초하여, 상기 클라이언트 디바이스에서 상기 클라이언트 디바이스의 디스플레이 특성에 기초하여 지도 공간 내의 상기 식별된 관심 지점들 중 적어도 일부의 지리적 위치에 하나 이상의 시각적 구성 요소를 제시하는 오버레이를 생성하는 단계와, 상기 오버레이를 생성하는 단계는,
    상기 관심 지점들을 나타내는 시각적 구성 요소 각각과 상호 작용할 가능성에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계;
    각각의 시각적 구성 요소들을 디스플레이할 관심 지점들의 갯수를 선택하는 단계, 상기 갯수는 시각적 구성 요소들이 제시되는 관심 지점의 수가 관심 지점 밀도 임계값을 초과하는 것을 방지하도록 선택되고, 상기 관심 지점 밀도 임계값은 데이터 구조에서 클라이언트 디바이스의 디스플레이 특성에 매핑되고, 상이한 관심 지점 밀도 임계 값들은 상기 데이터 구조 내의 디스플레이 특성의 상이한 조합에 매핑되고; 및
    상기 랭킹에 기초하여, 상기 클라이언트 디바이스에서 상기 대화형 지도와의 사용자 상호 작용에 응답하여 제시된 시각적 구성 요소의 갯수에 의해 상이한 관심 지점들이 식별되도록 상기 오버레이를 동적으로 변경하는 단계를 포함하고; 그리고
    상기 클라이언트 디바이스에서, 상기 오버레이에 대한 오버레이 정보 및 상기 지도 공간의 일부를 캐싱하는 단계와; 그리고
    상기 지도 공간 및 상기 오버레이로 상기 클라이언트 디바이스의 사용자 인터페이스를 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 제21항에 있어서, 상기 지도 공간은,
    상기 지도 공간과의 사용자 상호 작용 전에 상기 지도 공간의 적어도 일부가 상기 클라이언트 디바이스의 뷰포트 외부에 있는 지도 영역을 갖는 것을 특징으로 하는 방법.
  23. 제21항에 있어서, 상기 오버레이를 생성하는 단계는,
    상기 캐싱된 오버레이 정보를 사용하여 클라이언트 디바이스에서, 상기 지도 공간이 뷰포트에서 제시되는 줌 레벨을 변경하는 변경 뷰 컨트롤과의 사용자 상호 작용에 기초하여 상기 제시된 시각적 구성요소들에 의해 식별된 관심 지점들을 업데이트하는 오버레이를 생성하는 단계를 포함하고,
    상기 업데이트는 상기 클라이언트 디바이스가 상기 하나 이상의 서버에 대한 추가적인 네트워크 호출을 개시하지 않고 수행되는 것을 특징으로 하는 방법.
  24. 제23항에 있어서,
    상기 제시된 시각적 구성 요소들에 의해 식별된 상기 관심 지점들을 업데이트하는 단계는,
    상기 변경 뷰 컨트롤과의 사용자 상호 작용에 응답하여 상기 지도 공간이 제시되는 줌 레벨을 식별하는 단계와;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에 대한 대응하는 관심 지점 밀도 임계값을 식별하는 단계와;
    상기 캐싱된 오버레이 정보 내에서, 상기 식별된 줌 레벨에서 뷰포트에 시각적으로 묘사된 지리적 위치를 갖는 관심 지점 세트를 식별하는 단계와; 그리고
    상기 식별된 관심 지점 세트로부터, 대응하는 시각 구성 요소를 사용하여 시각적으로 식별되는 하나 이상의 관심 지점을 선택하는 단계를 포함하고, 상기 선택된 관심 지점의 총 수는 상기 식별된 줌 레벨에 대한 상기 대응하는 관심 지점 밀도 임계값보다 작거나 같은 것을 특징으로 하는 방법.
  25. 제24항에 있어서,
    상기 하나 이상의 관심 지점을 선택하는 단계는,
    상기 랭킹으로부터 가장 높게 랭킹된 관심 지점들의 총 수를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  26. 제24항에 있어서, 상기 하나 이상의 관심 지점을 선택하는 단계는,
    상기 클라이언트 디바이스의 디바이스 유형 또는 상기 클라이언트 디바이스의 화면 크기에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  27. 제24항에 있어서, 상기 하나 이상의 관심 지점을 선택하는 단계는,
    상기 선택 이전에 프리젠테이션을 위해 사전-선택된 관심 지점들의 수에 기초하여 상기 하나 이상의 관심 지점을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  28. 제21항에 있어서,
    상기 식별된 다수의 관심 지점을 랭킹하는 단계는,
    상기 사용자가 이전에 방문한 하나 이상의 지리적 위치, 상기 사용자가 이전에 방문한 위치들의 카테고리, 상기 사용자가 이전에 상이한 카테고리의 위치들을 방문한 빈도, 상이한 카테고리의 위치들에 대한 이전의 방문과 관련된 시간 정보, 사용자가 방문한 이전 위치들에 대한 관심 지점의 근접도 또는 지원되는 임의의 검색 인터페이스상에서 사용자가 수행한 검색 쿼리들 중 하나 이상에 기초하여 상기 식별된 다수의 관심 지점을 랭킹하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020197004719A 2016-11-21 2017-11-14 전자 지도 인터페이스 KR102196401B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662424946P 2016-11-21 2016-11-21
US62/424,946 2016-11-21
US15/682,215 2017-08-21
US15/682,215 US20180143998A1 (en) 2016-11-21 2017-08-21 Electronic map interfaces
PCT/US2017/061532 WO2018093774A1 (en) 2016-11-21 2017-11-14 Electronic map interfaces

Publications (2)

Publication Number Publication Date
KR20190029705A KR20190029705A (ko) 2019-03-20
KR102196401B1 true KR102196401B1 (ko) 2020-12-29

Family

ID=60484500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197004719A KR102196401B1 (ko) 2016-11-21 2017-11-14 전자 지도 인터페이스

Country Status (6)

Country Link
US (1) US20180143998A1 (ko)
EP (1) EP3491549A1 (ko)
JP (1) JP6744483B2 (ko)
KR (1) KR102196401B1 (ko)
CN (1) CN109791547A (ko)
WO (1) WO2018093774A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030225B2 (en) * 2018-01-24 2021-06-08 Game Your Game, Inc. Golf course management tool
WO2020050841A1 (en) 2018-09-06 2020-03-12 Google Llc Navigation directions with a familiar location as an intermediate destination
EP3985358A1 (en) * 2018-09-06 2022-04-20 Google LLC Annotating search suggestions based on familiarity to a user
US20200097564A1 (en) * 2018-09-25 2020-03-26 Google Llc Selecting points of interest for display on a personalized digital map
US11467000B2 (en) 2018-12-26 2022-10-11 Google Llc Default map zoom level by travel time
US11397775B2 (en) * 2019-05-24 2022-07-26 Axim Geospatial, Llc User interface for evaluating the quality of geospatial data
CN110348525B (zh) * 2019-07-15 2022-02-22 北京百度网讯科技有限公司 地图兴趣点获取方法、装置、设备及存储介质
US11593411B2 (en) * 2019-09-13 2023-02-28 International Business Machines Corporation Historical augmentation of electronic maps
CN111737382A (zh) 2020-05-15 2020-10-02 百度在线网络技术(北京)有限公司 地理位置点的排序方法、训练排序模型的方法及对应装置
CN112083845B (zh) * 2020-09-09 2022-04-26 北京百度网讯科技有限公司 气泡控件处理方法及装置
CN112015845B (zh) * 2020-09-29 2024-02-06 北京百度网讯科技有限公司 地图检索测试的方法、装置、设备以及存储介质
CN112380847B (zh) * 2020-11-18 2024-03-29 北京百度网讯科技有限公司 兴趣点处理方法、装置、电子设备及存储介质
CN112860996B (zh) * 2021-02-07 2023-09-19 北京百度网讯科技有限公司 一种兴趣点处理方法、装置、电子设备和介质
US11455089B1 (en) * 2021-07-26 2022-09-27 Quantarium Group, LLC Smart mapping
CN115146156B (zh) * 2022-06-28 2023-08-15 北京百度网讯科技有限公司 兴趣点现势性的联动调整方法、装置、设备及介质
CN114969556B (zh) * 2022-07-29 2022-10-25 北京百度网讯科技有限公司 基于用户个性化的兴趣点呈现和交互方法、相关装置
CN116484122B (zh) * 2023-06-19 2023-09-08 国家基础地理信息中心 一种兴趣点数据的处理方法和处理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090055087A1 (en) * 2007-08-07 2009-02-26 Brandon Graham Beacher Methods and systems for displaying and automatic dynamic re-displaying of points of interest with graphic image
WO2014055346A2 (en) 2012-10-01 2014-04-10 Google Inc. Apparatus and method for personalizing maps
US20140136973A1 (en) 2012-11-14 2014-05-15 Amazon Technologies, Inc. Segmented delivery of preview content
US20160320197A1 (en) * 2011-02-02 2016-11-03 Mapquest, Inc. Systems and methods for generating electronic map displays with points-of-interest information

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060197781A1 (en) * 2005-03-03 2006-09-07 Arutunian Ethan B System and method utilizing enhanced imagery and associated overlays
ITTO20110850A1 (it) * 2011-09-23 2013-03-24 Sisvel Technology Srl Metodo per gestire una mappa di un dispositivo di navigazione personale e relativo dispositivo
US8983973B2 (en) * 2011-10-12 2015-03-17 Mapquest, Inc. Systems and methods for ranking points of interest
US8711181B1 (en) * 2011-11-16 2014-04-29 Google Inc. Pre-fetching map data using variable map tile radius
US9080885B2 (en) * 2012-06-05 2015-07-14 Apple Inc. Determining to display designations of points of interest within a map view
US11431834B1 (en) * 2013-01-10 2022-08-30 Majen Tech, LLC Screen interface for a mobile device apparatus
US10051103B1 (en) * 2013-01-10 2018-08-14 Majen Tech, LLC Screen interface for a mobile device apparatus
DE102013006025A1 (de) * 2013-04-08 2014-10-23 Audi Ag Methode zur Auflösung und Bedienung von POl-Stapeln
US9417777B2 (en) * 2013-07-09 2016-08-16 Google Inc. Enabling quick display transitions between indoor and outdoor map data
CN104765770A (zh) * 2015-03-10 2015-07-08 北京智慧图科技有限责任公司 地图提供方法和装置
KR20160017016A (ko) * 2016-01-27 2016-02-15 네이버 주식회사 위치 기반 정보의 디스플레이를 위한 데이터 클러스터링 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090055087A1 (en) * 2007-08-07 2009-02-26 Brandon Graham Beacher Methods and systems for displaying and automatic dynamic re-displaying of points of interest with graphic image
US20160320197A1 (en) * 2011-02-02 2016-11-03 Mapquest, Inc. Systems and methods for generating electronic map displays with points-of-interest information
WO2014055346A2 (en) 2012-10-01 2014-04-10 Google Inc. Apparatus and method for personalizing maps
US20140136973A1 (en) 2012-11-14 2014-05-15 Amazon Technologies, Inc. Segmented delivery of preview content

Also Published As

Publication number Publication date
JP2020501211A (ja) 2020-01-16
JP6744483B2 (ja) 2020-08-19
CN109791547A (zh) 2019-05-21
US20180143998A1 (en) 2018-05-24
EP3491549A1 (en) 2019-06-05
WO2018093774A1 (en) 2018-05-24
KR20190029705A (ko) 2019-03-20

Similar Documents

Publication Publication Date Title
KR102196401B1 (ko) 전자 지도 인터페이스
US8954860B1 (en) Method and apparatus for generating and displaying tourist maps
KR101804602B1 (ko) 지도 메타데이터의 3d 계층화
US8352480B2 (en) Methods, apparatuses and computer program products for converting a geographical database into a map tile database
KR101725886B1 (ko) 자동으로 결정된 스타팅 포인트들과 선택된 목적지들 사이의 네비게이션 경로들
KR102089012B1 (ko) 모바일 컴퓨팅 디바이스 상의 후속 디스플레이를 위해 장소 페이지 데이터를 사전-인출하기 위한 방법 및 장치
KR101233534B1 (ko) 위치 정보를 제시하는 그래픽 사용자 인터페이스
US9363634B1 (en) Providing context-relevant information to users
US20120303263A1 (en) Optimization of navigation tools using spatial sorting
US11015950B2 (en) Dynamically controlling map viewport in view of user signals
US20130159825A1 (en) Search results with maps
US11966425B2 (en) Visual search system for finding trip destination
US20160313138A1 (en) System and method for dynamically optimizing map destination routing performance
JP3660287B2 (ja) 地図データ配信装置、地図データ受信装置、地図データ配信方法及び地図データ受信方法
CN108009205B (zh) 基于位置的搜索结果缓存方法、搜索方法、客户端及系统
US8983998B1 (en) Prioritizing points of interest in unfamiliar regions
US20130007089A1 (en) Distributing points of interest
US20140285526A1 (en) Apparatus and method for managing level of detail contents
US20150130817A1 (en) Generating a sidebar from vector tiles
KR20150099695A (ko) 콘텐츠 미디어 관리 장치 및 그 방법

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