KR102027892B1 - 위치 기반 정보의 서버 제어 타일링을 위한 기술 - Google Patents

위치 기반 정보의 서버 제어 타일링을 위한 기술 Download PDF

Info

Publication number
KR102027892B1
KR102027892B1 KR1020167004209A KR20167004209A KR102027892B1 KR 102027892 B1 KR102027892 B1 KR 102027892B1 KR 1020167004209 A KR1020167004209 A KR 1020167004209A KR 20167004209 A KR20167004209 A KR 20167004209A KR 102027892 B1 KR102027892 B1 KR 102027892B1
Authority
KR
South Korea
Prior art keywords
tiles
geographic area
tile
places
location based
Prior art date
Application number
KR1020167004209A
Other languages
English (en)
Other versions
KR20170047189A (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 KR20170047189A publication Critical patent/KR20170047189A/ko
Application granted granted Critical
Publication of KR102027892B1 publication Critical patent/KR102027892B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Instructional Devices (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Navigation (AREA)

Abstract

위치 기반 정보의 서버 제어 타일링을 위한 기술이 설명된다. 장치는 통신 컴포넌트와 타일 컴포넌트를 포함할 수 있다. 통신 컴토넌트는 클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하고, 클라이언트 애플리케이션으로 복수의 타일을 전송하도록 동작하할 수 있고, 위치 기반 요청은 지리적 영역을 포함한다. 타일 컴포넌트는 복수의 타일을 지리적 영역을 덮는 타일의 세트로 결정하도록 동작할 수 있고, 복수의 타일의 각 타일은 지리적 영역의 부분을 덮고 장소의 세트를 포함한다. 다른 실시예가 설명되고 청구된다.

Description

위치 기반 정보의 서버 제어 타일링을 위한 기술{TECHNIQUES FOR SERVER-CONTROLLED TILING OF LOCATION-BASED INFORMATION}
다음은, 본 명세서에 기술된 몇몇의 신규한 실시예들의 기본 이해를 제공하기 위해 간소화된 요약이 제시된다. 본 요약은 광범위한 개요는 아니며, 핵심적인/중요한 구성요소들을 식별하거나 그 범위를 상세히 기술하려는 의도는 아니다. 본 요약의 목적은 단지 이후에 제시되는 더 상세한 설명에 대한 서두로서 간소화된 형태로 몇몇의 기술적 사상들을 제시하기 위함이다.
다양한 실시예들은 일반적으로 위치 기반 정보의 서버 제어 타일링을 위한 기술들에 관한 것이다. 몇몇의 실시예들은 특히 위치 기반 검색 요청에 응답하여 전달된 위치 기반 정보의 서버 제어 타일링을 위한 기술들에 관한 것이다. 일실시예로, 예컨대, 장치는 통신 컴포넌트 및 타일 컴포넌트를 포함할 수 있다. 통신 컴포넌트는 클라이언트 애플리케이션으로부터 위치 기반 검색 요청을 수신하고, 클라이언트 애플리케이션에 복수의 타일을 전송하도록 동작할 수 있다. 타일 컴포넌트는 복수의 타일을 지리적 영역을 덮는 타일의 세트로 결정하도록 동작할 수 있고, 복수의 타일의 각 타일은 지리적 영역의 부분을 덮고 장소의 세트를 포함한다. 다른 실시예들이 기술되고 청구된다.
상술한 관련 목표를 달성하기 위해, 특정한 예시적인 태양들이 본 명세서에서 하기의 상세한 설명 및 첨부도면과 함께 기술된다. 이런 태양들은 본 명세서에 개시된 원리가 실행될 수 있는 다양한 방식을 나타내며, 모든 태양 및 그 균등물은 청구된 발명의 주제의 범위 내에 있도록 의도된다. 다른 이점 및 신규한 특징이 도면과 함께 고려될 때 하기의 상세한 설명으로부터 명백해질 것이다.
본 발명에 따른 실시예는 특히 방법, 저장매체 및 시스템에 관한 첨부된 청구항들에 개시되며, 예컨대 방법과 같이 하나의 청구항 카테고리에 언급된 임의의 특징은 예컨대 시스템과 같이 또 다른 청구항 카테고리로도 또한 청구될 수 있다. 첨부된 청구항의 종속 또는 참조는 형식적인 이유만을 위하여 선택된 것이다. 하지만 임의의 이전 청구항으로의 의도적인 참조(특히 다중 종속)에서 발생하는 임의의 주제 또한 청구될 수 있고, 청구항 및 그 특징의 임의의 조합이 개시되고 첨부된 청구항에서 선택된 종속과 관계없이 청구될 수 있다.
본 발명에 따른 일실시예에서, 컴퓨터 구현 방법은:
클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하는 단계;
바람직하게는 지리적 영역의 검색에 관한 추가적인 데이터의 사용에 의하여, 지리적 영역을 덮는 복수의 타일을 결정하는 단계; 및
복수의 타일을 클라이언트 애플리케이션으로 전송하는 단계를 포함하고,
위치 기반 요청은 지리적 영역, 및 선택적으로 지리적 영역의 검색에 관한 추가적인 데이터를 포함하고,
복수의 타일의 각 타일은 지리적 영역의 부분을 덮고 장소의 세트를 포함한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 컴퓨터 구현 방법은:
클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하는 단계;
지리적 영역을 덮는 복수의 타일을 결정하는 단계; 및
복수의 타일을 클라이언트 애플리케이션으로 전송하는 단계를 포함하고,
위치 기반 요청은 지리적 영역을 포함하고,
복수의 타일의 각 타일은 지리적 영역의 부분을 덮고 장소의 세트를 포함한다.
위치 기반 요청은 모바일 장치의 클라이언트 애플리케이션으로부터 수신될 수 있고, 지리적 영역은 모바일 장치의 현재 위치를 포함할 수 있고, 지도 상에 오버레이로서 모바일 장치에 디스플레이되기 위해 전송된 복수의 타일은 장소의 수신된 세트에 관하여 모바일 장치의 현재 위치의 디스플레이를 포함할 수 있다.
복수의 타일 각각은 장소 타입의 카테고리를 명시할 수 있고,
수신된 위치 기반 요청을 장소 타입의 카테고리에 매핑하는 단계; 및
매핑된 장소 타입의 카테고리에 따라 복수의 타일을 결정하는 단계를 더 포함할 수 있고,
바람직하게는 추가적인 데이터는 검색 데이터를 포함하고, 수신된 위치 기반 요청을 장소 타입의 카테고리에 매핑하는 단계는 검색 데이터를 장소 타입의 카테고리에 매핑하는 단계를 포함한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 복수의 타일 각각은 장소 타입의 카테고리를 명시할 수 있고,
수신된 위치 기반 요청을 장소 타입의 카테고리에 매핑하는 단계; 및
매핑된 장소 타입의 카테고리에 따라 복수의 타일을 결정하는 단계를 더 포함할 수 있다.
위치 기반 요청, 특히 추가적인 데이터는 줌 레벨을 명시하고, 복수의 타일의 각 타일은 줌 레벨의 범위와 연관되고,
명시된 줌 레벨을 복수의 타일 각각에 연관된 줌 레벨의 범위와 매칭시킴으로써 복수의 타일을 결정하는 단계를 더 포함할 수 있다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 위치 기반 요청은 줌 레벨을 명시하고, 복수의 타일의 각 타일은 줌 레벨의 범위와 연관되고,
명시된 줌 레벨을 복수의 타일 각각에 연관된 줌 레벨의 범위와 매칭시킴으로써 복수의 타일을 결정하는 단계를 더 포함할 수 있다.
복수의 타일은 제1 타일을 포함할 수 있고, 제1 타일은 제1 지리적 영역을 덮을 수 있고, 제1 타일은 제1 지리적 영역 내의 장소의 제1 세트를 포함할 수 있고, 장소의 제1 세트는 장소의 전체 세트에서 장소의 전체 세트 중 선택된 장소의 제1 세트의 상대적 중요도에 따라 선택될 수 있다.
복수의 타일은 제1 타일 및 제2 타일을 포함할 수 있고, 제1 타일은 제1 지리적 영역을 덮을 수 있고, 제2 타일은 제1 지리적 영역과는 구분되는 제2 지리적 영역을 덮을 수 있고, 제1 지리적 영역은 제2 지리적 영역보다 클 수 있다.
제1 지리적 영역은 제1 지리적 영역이 보다 낮은 밀도의 관련된 장소를 포함한다는 결정에 응답하여 제2 지리적 영역보다 크게 구성될 수 있다.
본 발명에 따른 추가 실시예에서, 방법은:
구분되는 인접 지리적 영역을 덮거나 다른 줌 레벨에서 지리적 영역의 적어도 부분을 덮는 위치 기반 요청에 관한 제2 복수의 타일을 결정하는 단계;
클라이언트 애플리케이션에 제2 복수의 타일을 요청하도록 지시하는 단계;
클라이언트 애플리케이션으로부터 제2 복수의 타일에 대한 요청을 수신하는 단계; 및
클라이언트 애플리케이션으로 제2 복수의 타일을 전송하는 단계를 더 포함할 수 있다.
본 발명에 따른 추가 실시예에서, 방법은:
클라이언트 애플리케이션으로부터 제2 위치 기반 요청을 수신하는 단계;
바람직하게는 제2 지리적 영역의 검색에 관한 제2 추가적인 데이터의 사용에 의하여 제2 복수의 타일을 결정하는 단계; 및
클라이언트 애플리케이션으로 제2 복수의 타일을 전송하는 단계를 포함할 수 있고,
제2 위치 기반 요청은 제2 지리적 영역, 및 선택적으로 제2 지리적 영역의 검색에 관한 제2 추가적인 데이터를 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청 및 지리적 영역을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩하고,
제2 복수의 타일은 남은 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 방법은:
클라이언트 애플리케이션으로부터 제2 위치 기반 요청을 수신하는 단계;
제2 복수의 타일을 결정하는 단계; 및
클라이언트 애플리케이션으로 제2 복수의 타일을 전송하는 단계를 포함할 수 있고,
제2 위치 기반 요청은 제2 지리적 영역을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청 및 지리적 영역을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩하고,
제2 복수의 타일은 남은 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외한다.
본 발명에 따른 추가 실시예에서, 방법은:
위치 기반 정보의 요청에 응답하여, 검색의 범위를 결정하거나 수신하는 단계;
사용할 타일의 세트를 결정하는 단계; 및
요청된 지리적 영역을 덮는 세트 내의 타일의 컬렉션을 결정하는 단계를 포함할 수 있다.
검색 요청은 하나 이상의 지리적 영역, 검색어, 줌 레벨 또는 사용자 식별자, 클라이언트 장치 식별자, 클라이언트 애플리케이션 식별자, 세션 식별자 또는 검색과 관련될 수 있는 임의의 다른 메타데이터의 조각과 같은 하나 이상의 추가적인 데이터 조각을 포함할 수 있다.
타일은 타일 컴포넌트에 의해 타일 스토어에서 검색되고, 타일 스토어는 로컬, 원격 또는 분산형 데이터베이스를 포함할 수 있고, 바람직하게는 타일 스토어의 타일은 카테고리, 타입 또는 검색 주제로 나누어질 수 있다.
본 발명의 추가 실시예에서, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장매체는 상술한 실시예 중 어느 하나의 방법을 수행하기 위해 실행될 때 구동가능한 소프트웨어를 포함한다.
본 발명의 추가 실시예에서, 시스템은: 하나 이상의 프로세서; 및
하나 이상의 프로세서와 연결되고 하나 이상의 프로세서에 의해 실행가능한 명령어를 포함하는 메모리를 포함하고,
하나 이상의 프로세서는 상술한 실시예 중 어느 하나의 방법을 수행하기 위해 명령어를 실행할 때 구동가능하다.
방법은 컴퓨팅 장치 간에 특정한 지리적 영역과 연결된 위치 기반 정보를 교환하기 위해 조정될 수 있고,
클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하는 단계;
지리적 영역을 덮는 복수의 타일을 결정하는 단계; 및
복수의 타일을 클라이언트 애플리케이션으로 전송하는 단계를 포함할 수 있고,
위치 기반 요청은 지리적 영역 및 지리적 영역 내의 장소의 리스트를 수신하기 위한 요청을 포함하고,
복수의 타일의 각 타일은 지리적 영역의 부분을 덮고 상기 장소의 세트를 포함한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 장치는:
장치 상의 프로세서 회로;
프로세서 회로가 클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하고, 클라이언트 애플리케이션으로 복수의 타일을 전송하도록 동작하는 통신 컴포넌트; 및
프로세서 회로가 복수의 타일을 지리적 영역을 덮는 타일의 세트로 결정하도록 동작하는 타일 컴포넌트를 포함하고,
위치 기반 요청은 지리적 영역을 포함하고,
복수의 타일의 각 타일은 지리적 영역의 부분을 덮고 장소의 세트를 포함한다.
위치 기반 요청은 줌 레벨을 명시할 수 있고, 복수의 타일의 각 타일은 줌 레벨의 범위와 연관될 수 있고, 타일 컴포넌트는 명시된 줌 레벨을 복수의 타일 각각에 연관된 줌 레벨의 범위와 매칭시킴으로써 복수의 타일을 결정하도록 동작할 수 있다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 장치는:
구분되는 인접 지리적 영역을 덮거나 다른 줌 레벨에서 지리적 영역의 적어도 부분을 덮는 위치 기반 요청에 관한 제2 복수의 타일을 결정하도록 동작하는 타일 컴포넌트; 및
클라이언트 애플리케이션에 제2 복수의 타일을 요청하도록 지시하고, 클라이언트 애플리케이션으로부터 제2 복수의 타일에 대한 요청을 수신하고, 클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 동작하는 통신 컴포넌트를 포함한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 장치는:
클라이언트 애플리케이션으로부터 제2 위치 기반 요청을 수신하고, 클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 동작하는 통신 컴포넌트; 및
남은 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외하는 제2 복수의 타일을 결정하도록 동작하는 제2 타일 컴포넌트를 포함하고,
제2 위치 기반 요청은 제2 지리적 영역을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청 및 지리적 영역을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 적어도 하나의 컴퓨터 판독가능한 저장매체는 실행 시:
클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하고;
지리적 영역을 덮는 복수의 타일을 결정하고; 및
클라이언트 애플리케이션으로 복수의 타일을 전송하도록 하는 소프트웨어를 포함하고,
위치 기반 요청은 지리적 영역 및 줌 레벨을 포함하고,
복수의 타일의 각 타일은 지리적 영역의 부분을 덮고, 줌 레벨을 포함하는 줌 레벨의 범위와 연관되고, 장소의 세트를 포함한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 적어도 하나의 컴퓨터 판독가능한 저장매체는 실행 시 시스템이:
구분되는 인접 지리적 영역을 덮거나 다른 줌 레벨에서 지리적 영역의 적어도 부분을 덮는 위치 기반 요청에 관한 제2 복수의 타일을 결정하고;
클라이언트 애플리케이션에 제2 복수의 타일을 요청하도록 지시하고;
클라이언트 애플리케이션으로부터 제2 복수의 타일에 대한 요청을 수신하고; 및
클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 하는 명령어를 포함한다.
또한 청구될 수 있는 본 발명에 따른 추가 실시예에서, 적어도 하나의 컴퓨터 판독가능한 저장매체는 실행 시 시스템이:
클라이언트 애플리케이션으로부터 제2 위치 기반 요청을 수신하고;
줌 레벨에서 남은 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외하는 제2 복수의 타일을 결정하고; 및
클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 하는 명령어를 포함하고,
제2 위치 기반 요청은 제2 지리적 영역 및 줌 레벨을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청, 지리적 영역 및 줌 레벨을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩한다.
본 발명의 내용 중에 포함되어 있다.
도 1은 위치 기반 정보의 서버 제어 타일링을 위한 시스템의 일실시예를 도시한다.
도 2는 도 1의 시스템을 위한 작동 환경의 일실시예를 도시한다.
도 3은 도 1의 시스템으로부터 수신한 타일을 디스플레이하는 장치의 일실시예를 도시한다.
도 4는 도 1의 시스템으로부터 수신한 수정된 타일을 디스플레이하는 장치의 일실시예를 도시한다.
도 5는 도 1의 시스템을 위한 고레벨 줌에서의 타일의 일실시예를 도시한다,
도 6은 도 1의 시스템을 위한 검색 영역의 중첩을 위한 타일의 일실시예를 도시한다.
도 7은 도 1의 시스템을 위한 중앙형 시스템의 일실시예를 도시한다.
도 8은 도 1의 시스템을 위한 분산형 시스템의 일실시예를 도시한다.
도 9는 도 1의 시스템을 위한 로직 흐름의 일실시예를 도시한다.
도 10은 컴퓨팅 구조의 일실시예를 도시한다.
도 11은 통신 구조의 일실시예를 도시한다.
다양한 실시예가 위치 기반 정보의 서버 제어 타일링을 위한 기술을 가리킨다. 컴퓨팅 장치는 위치 기반 정보를 교환할 수 있고, 정보는 특정한 지리적 위치와 묶이거나 명시한다. 한 컴퓨팅 장치는 다른 장치로 특정한 지리적 영역 내에서 장소의 리스트를 수신하기 위한 요청한다. 이것은 지리적 위치 내에서 송신자에게 알려진 모든 위치의 리스트를 수신하기 위한 일반적인 요청일 수 있거나 어떤 주제, 검색과 관련된 것, 특정 카테고리 또는 다르게 제한될 수 있다. 이 요청은 웹 서버에 의해 백-엔드 서버로 지도 디스플레이를 생성하기 위해 만들어질 수 있거나, 웹 브라우저에 의해 웹 서버로 지리적 정보를 포함하는 웹 페이지를 수신하기 위해 만들어질 수 있거나, 클라이언트 장치에 의해 서버로 클라이언트 장치에 디스플레이할 위치 기반 정보를 수신하기 위해 만들어질 수 있거나, 컴퓨팅 장치의 임의의 쌍 사이에 만들어질 수 있다.
위치 기반 정보를 위한 요청은 정의된 지리적 영역을 통해 명시될 수 있다. 요청은 직사각형 지리적 영역으로 특정될 수 있는데, 컴퓨팅 장치에 의해 디스플레이되거나 디스플레이를 위해 준비된 지리적 영역에 대응할 수 있다. 예를 들어, 모바일 장치는 사용자로부터 지역 레스토랑을 디스플레이하기 위한 요청을 수신하고 장치 주위의 지역 영역을 레스토랑의 오버레이와 함께, 예컨대 모바일 장치의 사용자 인터페이스의 부분으로서 디스플레이할 준비를 할 수 있다. 이 영역의 크기, 범위 및 경계는 모바일 장치에 의해 위치 기반 정보를 위한 최초 디스플레이 영역을 측정하기 위한 다양한 기술에 따라 결정될 수 있다. 모바일 장치는 그 후 그 영역에 포함되는 레스토랑의 리스트와 함께 그들 레스토랑의 특정 장소를 수신하기 위한 서버로의 요청에 직사각형 - 예컨대 두 위도 및 경도 쌍에 의해 정의될 수 있는 - 을 포함시킬 수 있다. 지도 영역의 이 결정은 장소의 오버레이와 함께 디스플레이할 지도를 준비하는 웹 브라우저, 웹 서버 또는 임의의 다른 장치에서 실행되는 절차에 의해 유사하게 수행될 수 있음이 이해될 것이다.
검색 시스템의 일부 실시예에서, 완전한 2차원 범위의 검색이 특정한 지리적 영역 내의 장소를 결정하기 위해 수행될 수 있다. 하지만, 위치 기반 정보를 수신하는 클라이언트 장치에서 검색 결과를 미리 결정하거나 캐시하거나, 양자를 하고 서버 장치는 위치 기반 정보를 전송하는 것이 유리할 수 있다. 그러므로 위치 기반 정보는 타일에 따라 조직회되고, 타일은 미리 계산된 정의된 지리적 영역, 예컨대 직사각형을 위한 위치 기반 정보의 세트를 포함한다. 예를 들어, 샌프란시스코는 별개의 지리적 영역으로 나누어지고 각 지리적 영역 내의 장소가 함께 타일로 수집된다. 그러므로 샌프란시스코의 부분을 위한 위치 기반 정보를 위한 요청은 도시의 특정 부분을 덮는 결합된 영역의 타일의 세트를 생성함으로써 응답될 수 있다. 타일의 경계가 검색 영역의 경계와 정확하게 일치하지 않을수록, 검색 영역 외부의 추가적인 장소가 응답에 포함될 수 있으나, 이들 관련 없는 장소를 전송하기 위해 사용되는 대역폭 및 그에 사용되는 처리는 타일을 미리 계산하는 장점의 벌충보다 클 수 있다: 타일은 혼잡시의 부하를 감소시키기 위하여 한산한 시기에 미리 계산될 수 있고 응답 시간은 요구에 따라(on-demand) 수행된 작업의 양을 감소시킴으로써 향상될 수 있다.
일부 실시예에서, 사용되는 타일링 스키마는 기결정될 수 있고, 모든 영역에 걸쳐 보편적이고, 타일을 수신하는 클라이언트 장치에게 미리 알려질 수 있다. 예를 들어, 전세계의 편평화된 지도는 동일한 크기의 사각형으로 나눠질 수 있고 각각은 식별 코드가 할당되어 클라이언트 장치가 희망하는 위치 기반 정보가 단지 타일링 스키마에 따라 흥미 있는 지리적 영역을 덮는 타일 만을 요청할 필요가 있을 수 있다. 하지만, 다른 접근이 유리하다. 만약 클라이언트 장치가 타일링 스키마에 대해 알 수 없고 타일링 스키마가 상이한 위치에서, 결과의 상이한 카테고리에 대해, 매핑된 영역의 변화에 따라, 기반 시설, 소프트웨어 디자인 또는 제공자 우선순위의 변화에 따라 및 위치 기반 정보의 제공 경험에 따라 다양할 수 있으면 현재 타일링 스키마의 문제점, 제한 또는 불리한 점을 감출 수 있다.
예를 들어, 타일 계층 구조와 거기 포함되는 다수의 장소를 전송하는 대역폭 비용은 많은 수의 장소를 가지는 타일을 더 작은 타일로 나누어 지리적 검색 영역의 경계에 걸치는 경계 타일과 함께 전송되는 불필요한 장소의 수를 제한하도록 유도된다. 하지만, 타일은 헤더 정보, 메타데이터 및 타일 전송에 사용되는 대역폭을 늘리는 다른 타일 별 데이터를 포함할 수 있어, 다수의 저-인구 타일의 전송은 보다 큰 타일에서 사용되지 않을 대역폭을 낭비할 수 있다. 나아가, 타일의 세트를 결정하기 위해 사용되는 계산 시간은 타일의 수에 따라 조정될 수 있다. 타일 내의 요청과 관련된 장소의 수는 위치(도시는 지방 영역보다 밀집될 수 있다), 카테고리(캘리포니아 헐리우드는 텍사스 휴스턴보다 많은 "영화 스튜디오" 결과를 가진다), 시간(도시의 인구가 늘거나 감소함에 따라)에 따라 다양할 수 있고, 따라서 타일의 크기를 다양하게 하는 것이 가치 있을 수 있다. 만약 클라이언트 애플리케이션이 타일링 스키마에 대해 알지 못하고, 그러한 변화가 서버 엔드에서 만들어진다면, 클라이언트 애플리케이션은 새로운 타일링 스키마를 사용하기 전 미리 업데이트되는 타일링 스키마에 대한 이해를 가질 필요가 없다.
일부 실시예에서, 상이한 타일링 스키마와 상이한 타일이 상이한 줌 레벨 또는 검색 범위에서 사용될 수 있다. 모든 결과가 모든 검색 범위에서 동등하게 유용하지 않을 수 있다. 예를 들어, 집에서 다섯 블록 내의 피자 가게를 검색하는 사용자는 그 범위 내의 모든 피자 가게를 보고 그들 중에서 선택하도록 허용됨으로써 혜택을 받을 수 있다. 하지만, 뉴욕 시티로의 여행을 계획하고 그 안의 모든 피자 가게를 검색하는 사용자는 도시 내의 최고의 피자 가게만을 봄으로써 혜택을 볼 것이다. 이탈리아에 걸친 여행을 계획하는 사용자는, 이 매우 큰 범위에서는, 그 나라 내의 최고의 피자 가게만을 봄으로써 혜택을 볼 것이다. 그러므로 일부 실시예에서, 복수의 타일 세트가 사용될 수 있고, 타일 세트 각각은 특정 범위 또는 줌 레벨에 특화될 수 있다. 그러므로 위치 기반 정보에 대한 요청의 응답은 검색 범위의 결정 또는 수신, 어떤 타일의 세트가 사용될지의 결정 및 요청된 지리적 영역을 덮는 그 세트 내의 타일의 컬렉션의 결정을 포함할 수 있다.
이와 같이, 사용자는 클라이언트 장치는 알지 못하는 동적인 타일링 스키마를 사용하여 제공된 위치 기반 정보를 제공하는 시스템으로부터 혜택을 받을 수 있다. 서버가 다양한 크기와 치수의 타일에 따라 장소를 통신할 수 있게 함으로써, 장치 대역폭은 효율적으로 사용될 수 있고, 반환되는 결과의 품질이 향상될 수 있고, 테스트 또는 라이브 시스템으로부터 수집한 성과 정보는 제공되는 결과에 클라이언트 시스템의 수정 없이 통합될 수 있다. 그 결과로서, 실시예는 지리적 검색 시스템의 조작자와 사용자를 위한 적합성, 유연성(scalability), 모듈성, 확장성(extendibility) 및 상호 운용성(interoperability)을 향상시킬 수 있다.
이제 도면에 대해 언급하면, 유사한 참조번호는 전체적으로 유사한 구성요소를 나타내도록 사용된다. 하기의 상세한 설명에서는 설명의 목적상, 많은 구체적인 세부사항들이 그에 대한 완전한 이해를 제공하기 위해 제시된다. 그러나, 신규한 실시예들은 이런 구체적인 세부사항 없이 실행될 수 있음이 명백할 수 있다. 다른 예들에서, 널리 알려진 구조 및 장치는 그에 대한 설명을 용이하게 하기 위해 블록 다이어그램 형태로 도시된다. 그 의도는 청구되는 발명의 주제와 일치하는 모든 변경물, 균등물 및 대안물을 포함하기 위함이다.
도 1은 검색 시스템(100)에 대한 블록 다이어그램을 도시한다. 일실시예로, 검색 시스템(100)은 하나 이상의 컴포넌트를 포함할 수 있다. 도 1에 도시된 검색 시스템(100)은 특정한 토폴로지에서 제한된 수의 구성요소들을 가지지만, 검색 시스템(100)은 소정의 구현에 적합하도록 대안의 토폴로지에서 더 많거나 더 적은 구성요소들을 포함할 수 있음이 이해될 수 있다.
본 명세서에서 사용되는 것으로 "a", "b", "c" 및 유사한 지시어들은 임의의 양의 정수를 표현하는 변수들을 의도한 것이라는 점을 유의해야 한다. 따라서, 예컨대, 구현에서 a=5라고 설정하면, 컴포넌트(122-a)의 전체 세트는 컴포넌트들(122-1, 122-2, 122-3, 122-4 및 122-5)을 포함할 수 있다. 실시예들이 이와 같이 제한되는 것은 아니다.
검색 시스템(100)은 통신 컴포넌트(120) 및 타일 컴포넌트(150)를 포함한다. 검색 시스템(100)은 수신한 요청에 응답할 때 사용하기 위한 기결정된 타일을 저장하는 타일 스토어(160)를 사용할 수 있다. 검색 시스템(100)은 복수의 클라이언트 애플리케이션, 예컨대 클라이언트 장치(180) 상의 클라이언트 애플리케이션(190)과 상호작용하여, 위치 기반 요청을 수신하고 타일의 세트로 응답할 수 있다.
통신 컴포넌트(120)는 클라이언트 애플리케이션(190)으로부터 위치 기반 요청(130)을 수신하는데 위치 기반 요청(130)은 지리적 영역을 포함하고, 복수의 타일(170)을 클라이언트 장치로 전송하도록 작동할 수 있다. 클라이언트 애플리케이션(190)은 클라이언트 장치(180)의 컴포넌트, 또는 클라이언트 장치(180)에 의해 지원되는 컴포넌트 상에서 실행될 수 있다. 일부 실시예에서 클라이언트 장치(180)는 모바일 장치 또는 다른 엔드-유저 장치일 수 있지만, 다른 경우 서버 장치가 검색 시스템(100)에 대해 클라이언트처럼 행동할 수 있다, 클라이언트 장치(180)는 검색 시스템(100)의 외부자에 의해 소유되거나 속할 수 있거나, 검색 시스템(100)과 공통으로 소유되고 관리될 수 있다.
위치 기반 요청(130)은 확립된 프로토콜, 커스텀 프로토콜, 일반-사용 프로토콜 또는 임의의 적절한 통신 기술에 따라 수신될 수 있다. 위치 기반 요청(130)은 인터넷을 통하거나, 셀룰러 데이터 시스템을 통하거나, 또는 임의의 다른 통신 매체를 사용하여 수신될 수 있다. 위치 기반 요청(130)은 지리적 영역, 검색어, 줌 레벨 및 하나 이상의 추가적인 데이터 조각, 예컨대 사용자 식별자, 클라이언트 장치 식별자, 클라이언트 애플리케이션 식별자, 세션 식별자 또는 임의의 다른 검색과 관련될 수 있는 메타데이터 조각을 포함하는 검색 요청일 수 있다. 통신 컴포넌트(120)는 위치 기반 요청(130)을 타일 컴포넌트(150)로 포워딩할 수 있다.
타일 컴포넌트(150)는 복수의 타일(170)을 지리적 영역을 덮는 타일의 세트로 결정하도록 작동할 수 있고, 복수의 타일(170)의 각각의 타일은 지리적 영역의 부분을 덮고 장소의 세트를 포함할 수 있다. 타일(170)은 타일 스토어(160)에서 검색될 수 있다. 타일 스토어(160)는 데이터베이스, 예컨대 로컬 데이터베이스, 원격 데이터베이스 또는 분산형 데이터베이스를 포함할 수 있다. 타일 컴포넌트(150)는 타일 스토어(160)에서 지리적 검색을 수행하여 복수의 타일(170)을 결정하도록 작동할 수 있다. 지리적 검색을 수행하기 위한 임의의 알려진 기술, 예컨대 직교 범위 검색(orthogonal range searching)을 위한 기술이 수행될 수 있다.
일부 실시예에서, 타일 스토어(160) 내의 타일은 카테고리, 타입, 검색 주제 또는 다른 분류로 나누어질 수 있다. 특정 카테고리 내에서, 타일 각각은 각각이 중첩 또는 공유되는 영역 없이 배타적으로 지리적 영역을 덮는다. 특정 실시예에서, 타일 스토어(160) 내의 타일은 범위 또는 줌 레벨로 나누어질 수 있다. 특정 범위 내에서, 타일 각각은 각각이 중첩 또는 공유되는 영역 없이 배타적으로 지리적 영역을 덮을 수 있다. 일부 실시예에서, 타일 스토어(160) 내의 타일은 범위와 분류 양자로 나누어지고 특정 범위 및 분류 내의 타일은 중첩 또는 공유되는 영역 없이 배타적으로 지리적 영역을 덮을 수 있다. 그러므로 타일 스토어(160) 내에 저장된 각 장소는 주어진 범위 및/또는 분류에 대하여 최대 한번 저장될 수 있다. 타일 컴포넌트(150)는 분류 및/또는 범위에 따라서 타일 스토어(160) 내의 지리적 검색을 타게팅하고 위치 기반 요청(130)에 부분으로서 포함되는 지리적 영역 전체를 덮는 결합된 각각의 지리적 영역을 가지는 그 분류 및/또는 범위 내의 복수의 타일(170)을 정확히 검색하도록 작동할 수 있다.
범위 또는 줌 레벨은 다양한 실시예의 다양한 기술에 따라 명시될 수 있다. 예를 들어, 줌 레벨은 열람되는 영역의 규모와 실제 세계에서의 그 실제 규모 간의 비율에 따라 명시될 수 있다. 대안적으로, 줌 레벨은 최대 줌 - 검색 시스템(100) 내에 포함되는 상세의 최대량 - 을 극단으로 다른 줌 레벨이 상세에 있어서 반복적 감소를 나타내도록 사용한 추상적 축척에 따라 명시될 수 있다. 타일 스토어(160) 내의 각 타일은 그 타일이 사용되는 연관된 줌 레벨의 범위를 가질 수 있다. 주어진 지리적 영역(및, 일부 실시예에서, 분류)에 대해서 각 타일은 특정 배타적 범위와 연관될 수 있다.
타일 스토어(160) 및 검색 시스템(100)은 특정 타일의 분류와 연관되고 특정 타일에 의해 덮이는 지리적 영역 내에 있으며 타일 내에 아직 저장되지 않은 장소를 저장하거나 다르게 알고 있을 수 있다. 예를 들어, 큰 지리적 영역에 대한 타일(따라서 큰 범위와 낮은 줌 레벨)은 그 지리적 영역 내의 가장 중요하고, 관련 있고, 다르게 가치 있는 결과 만을 포함하고, 덜 중요하고, 관련 있고, 다르게 가치 없는 결과를 제외할 수 있다. 예를 들어, 전체 주 범위를 볼 때 사용되는 타일은 주의 10분의 1을 덮고, 복수의 도시를 포함하고, 그 영역, 이들 복수의 도시 및 그들 주위 내의 분류에서 가장 중요하거나 주목할 만한 장소 만을 포함할 수 있다. 보다 낮은 범위, 예컨대 한 도시 전체를 볼 때 사용되는 범위에서 같은 분류에서 사용하기 위한 타일은 고범위 타일에서 나타나지 않은 추가적인 장소를 주에 비해 도시의 컨텍스트 내에서 상대적으로 증가한 중요도 때문에 포함할 수 있다.
일부 실시예에서, 범위 또는 줌 레벨은 위치 기반 요청(130)의 일부로서 포함될 수 있다. 다른 실시예에서 범위 또는 줌 레벨은 명시된 지리적 영역에 기반하여 암시적으로 결정될 수 있다. 예를 들어, 주 크기인 지리적 영역은 많은 장소가 도태되는 큰 범위(낮은 줌 레벨)을 암시적으로 제안할 수 있는 반면, 도시 블록 크기의 지리적 영역은 대부분 또는 모든 장소가 포함되는 작은 범위(높은 줌 레벨)을 암시적으로 제안할 수 있다.
일부 실시예에서, 위치 기반 요청(130)은 명시된 검색을 포함할 수 있다. 일부 경우에, 이것은 카테고리, 타입 또는 다른 분류로 매핑될 수 있고 명시된 지리적 영역 및 정의된 범위에서 그 분류 내의 모든 결과가 클라이언트 애플리케이션(190)으로 복수의 타일(170)로 전송되고 사용자에게 디스플레이될 수 있다. 하지만, 다른 경우에, 검색은 타일의 카테고리 또는 분류에 의해 나눠지지 않은 타일 내에서 어떤 장소가 전송 또는 디스플레이될 것인지 걸러내기 위해 사용될 수 있다. 예를 들어, 타일 스토어(160)의 장소 각각은 장소를 검색할 때 사용되기 위해 그 장소를 설명하는 하나 이상의 데이터 조각과 연관될 수 있다. 타일 컴포넌트(150)는 검색된 복수의 타일(170) 내의 장소에 대한 데이터와 검색을 비교하여 복수의 타일(170) 내의 각 장소가 검색과 일치하는지 여부를 결정하도록 작동할 수 있다. 타일 컴포넌트(150)는 복수의 타일(170) 내의 클라이언트 애플리케이션(190)으로의 전송 전에 수신된 검색과 관련되지 않는 장소를 제거하도록 작동할 수 있다.
일부 실시예에서, 타일 컴포넌트(150)는 클라이언트 애플리케이션(190)으로 전송되는 복수의 타일(170) 내의 장소를 검색과 관련되거나 검색과 관련되지 않는 것으로 플래그 표시하여, 클라이언트 애플리케이션(190)이 사용자에게 관련되는 것으로 플래그 표시되거나 관련되지 않은 것으로 플래그 표시되지 않은 장소만 디스플레이할 수 있다. 예를 들어, "피자 가게"에 대한 검색은 "레스토랑" 카테고리로 분류되고 타일 스토어(160)로부터 지리적 영역과 줌 레벨로 명시된 레스토랑 타입 타일의 검색을 시작할 수 있다. 이 복수의 타일(170)은 "피자 가게" 검색과 일치하는 장소와 "피자 가게" 검색과 일치하지 않은 장소를 포함할 수 있다. 모든 이들 가게, 일치하는 것과 일치하지 않는 것 양자는 클라이언트 애플리케이션(190)으로 어떤 장소가 관련되고 어떤 장소가 관련되지 않는지를 가리키는 플래그와 함께 전송될 수 있다. 대안적으로, 타일 컴포넌트(150)가 아닌 클라이언트 애플리케이션(190)은 복수의 타일(170) 내의 어떤 장소가 검색과 관련되는지 여부를 결정할 수 있다.
양쪽 경우에, 클라이언트 애플리케이션(190)은 관련된 장소와 관련되지 않는 장소 양자를 포함하는 복수의 타일(170)을 수신하고 관련되는 장소만을 장치의 사용자에게 디스플레이할 수 있다. 클라이언트 애플리케이션(190)에게 관련되지 않는 장소를 전송하는 것은, 특히 클라이언트 애플리케이션(190)이 검색과 관련되는 장소 결정 필터링을 수행할 때, 타일의 재사용, 예컨대 캐싱을 통하여 가능하게 할 수 있다. 예를 들어, 사용자는 "피자 가게"를 검색할 수 있고, 주어진 지리적 영역에 대한 주어진 범위에서 모든 "레스토랑" 결과를 포함하는 복수의 타일(170)을 수신하고, 클라이언트 애플리케이션(190)이 검색 "피자 가게"와 일치하는 것으로 결정한 장소만이 보여질 수 있다. 그가 취식할 영역 내에 만족스러운 피자 가게가 없는 것으로 결정하거나, 원하는 음식에 대해 생각을 바꾼 사용자는 그 후 "초밥"에 대한 검색을 수행할 수 있다. 수신된 복수의 타일(170)이 모든 레스토랑 장소를 포함하기 때문에, 클라이언트 애플리케이션(190)은 장소를 다시 필터링하여 검색 시스템(100)으로 새로운 타일을 수신하기 위한 왕복 없이 초밥에 대한 검색과 일치하는 장소를 생성할 수 있다.
클라이언트 애플리케이션(190)은 일반적으로 수신한 타일을 캐시하고 적절할 때 이들 타일을 재사용하도록 작동할 수 있다. 일부 실시예에서, 타일은 타일이 캐시 또는 다른 방법으로 검색 결과를 위해 사용되지 않은 이후 삭제될 기간을 나타내는 TTL(time-to-live) 값과 함께 전송될 수 있다. 일부 실시예에서, 만료된 TTL을 가지는 캐시된 타일은 사용자로부터 검색 요청의 수신에 사용되고 병렬적으로 클라이언트 애플리케이션(190)이 위치 기반 요청(130)을 수행하여 한번 수신된 만료된 타일로부터 디스플레이를 교체하기 위해 사용되는, 업데이트된 타일을 수신하는 동안 장소 결과를 디스플레이하는데 사용될 수 있다.
도 2는 검색 시스템(100)을 위한 작동 환경(200)의 일실시예를 도시한다. 도 2에 도시된 바와 같이, 사용자(210)은 클라이언트 장치(180)을 사용하여 GPS(220), 검색 시스템(100) 및 지도 시스템(250)과 상호작용할 수 있다.
일부 실시예에서, 클라이언트 장치(180)은 사용자(210)에 의해 검색되는 지리적 영역 내에서 사용되는 모바일 장치일 수 있다. 클라이언트 장치(180)는 GPS(global positioning system)(220)를 통하여 GPS를 통해 위치를 결정하기 위한 알려진 기술을 사용하여 그 현재 위치(225)를 결정하도록 작동할 수 있다. 클라이언트 장치(180)은 자동으로 그 현재 위치(225)에 기반하여 위치 기반 요청(130)의 일부로서 사용된 지리적 영역을 결정하도록 작동할 수 있다. 예를 들어, 지리적 영역은 현재 위치(225)의 중심이거나 다르게 클라이언트 장치(180)의 현재 위치(225)를 포함할 수 있다.
검색 시스템(100)으로부터 수신한 복수의 타일(170)은 클라이언트 장치(180)에 지도(270)의 오버레이로서 디스플레이될 수 있다. 지도(270) 상의 디스플레이는 수신된 장소의 세트에 상대적인 클라이언트 장치(180)의 현재 위치(225)의 디스플레이를 포함할 수 있다.
지도(270)은 지도 시스템(250)으로부터 검색될 수 있다. 클라이언트 장치(180)은 지리적 영역, 지도 타일의 세트 또는 지도 시스템(250)으로의 요청을 만들기 위한 임의의 다른 기술을 명시하는 지도 요청(230)을 지도 시스템(250)에 전송할 수 있다. 클라이언트 장치(180)은 지도(270)를 이미지로서, 지도 타일의 세트로서 또는 지도(270)을 전송하고 수신하기 위한 임의의 다른 기술로 수신할 수 있다.
지도 시스템(250)은 검색 시스템(100)과 동일한 엔티티 또는 다른 엔티티에 의하여 유지될 수 있다. 예를 들어, 클라이언트 장치(180)이 모바일 장치일 때, 지도 시스템(250)은 클라이언트 장치(180)의 생산자 또는 클라이언트 장치(180)의 운영체제의 공급자와 연관될 수 있다. 대안적으로, 지도 시스템(250)은 클라이언트 애플리케이션(190)에 의해 선택될 수 있다. 일부 실시예에서, 복수의 타일(170)은 복수의 사용가능한 지도 시스템 중 어떤 지도 시스템(250)이 지도(270)를 수신하기 위해 사용되는지 모를 수 있다. 예를 들어, 검색 시스템(100)이 선택한 지도 시스템과 독립적으로 제1 타입의 클라이언트 장치에서 제1 지도 시스템이 사용되고 제2 타입의 클라이언트 장치에서 제2 지도 시스템이 사용될 수 있고 지도 시스템이 어느 쪽이든 동일한 복수의 타일(170)이 사용된다.
도 3은 검색 시스템(100)을 위한 클라이언트 장치(180)에 디스플레이되는 지도(310)의 일실시예를 도시한다. 도 3에 도시된 바와 같이, 지도(310)은 지도(310) 상에 현재 위치(330)의 디스플레이를 별로서 포함한다.
도 3의 도시에서 지도(310) 내의 다양한 실선은 다양한 길을 나타낼 수 있다. 다양한 밝고 어두운 영역들은 다양한 지역 특성을 나타낼 수 있다. 이들 질선과 영역은 지도 시스템(250)으로부터 수신하고 복수의 타일(170)의 디스플레이를 위한 배경으로 사용될 수 있다.
도 3의 도시에서 다양한 점, 예컨대 375-1은 복수의 타일(170)의 일부로서 수신한 장소를 나타낼 수 있다. 점선은 상이한 타일 간 영역 나눔을 나타낼 수 있고, 각각 배타적인 직사각형이 타일의 배타적 영역을 나타내는 4개의 점선으로 형성된다. 도시된 바와 같이, 지도(310)에 디스플레이되는 장소가 10개의 타일(370-a)로서 수신된다. 예를 들어, 타일(370-5)은 장소(375-b)를 포함한다.
도 3에 도시된 바와 같이, 각 타일은 5개의 장소를 포함하고, 디스플레이의 가장자리를 이루는 일부 타일은 디스플레이되는 그 장소의 서브셋만을 가지고, 그 장소의 나머지는 디스플레이되는 지리적 영역의 경계 바깥에 있음을 나타낼 수 있다. 이들 5개의 장소는 각 타일 내에서 5개의 가장 관련되는 장소일 수 있다. 5개의 장소의 제한은 도시의 편의를 위해 사용되었고 타일 내에 포함될 수 있는 장소의 수의 특정한 제한을 나타내는 것은 아니라는 것이 이해될 것이다.
도시된 바와 같이, 다양한 타일은 다양한 크기와 치수를 가진다. 예를 들어, 타일(370-4)은 타일(370-10)의 보이는 영역보다도 현저히 작다. 이것은 예를 들어, 타일(370-4)이 타일(370-10)보다 관련 장소의 고밀도 영역임을 나타낼 수 있다. 타일(370-10)의 지리적 영역이 타일(370-4)의 지리적 영역보다 관련 장소를 저밀도로 포함한다는 결정에 응답하여 타일(370-10)의 지리적 영역은 타일(370-4)의 지리적 영역보다 크게 구성될 수 있다.
도 4는 검색 시스템(100)을 위한 클라이언트 장치(180)에 디스플레이되는 지도(410)의 일실시예를 도시한다. 도 4에 도시된 바와 같이, 지도(410)은 지도(410) 상에 현재 위치(430)의 디스플레이를 별로서 포함한다.
도시된 바와 같이, 지도(410)는 도 3과 관련하여 지도(310)과 동일한 지리적 영역을 도시한다. 하지만, 타일링은 370-a에서 470-c로 변경됐다. 예를 들어, 장소(475)가 지도(410)에 추가되고 지도(310)에는 나타나지 않았다. 장소(475)는 타일(470-c)에 포함되는 충분한 관련성의 새로운 실세계 장소를 나타낼 수 있거나 타일(370-a) 시기에 존재했지만 재평가되거나 변화하여 포함의 원인이 되도록 그 중요성이 증가한 장소일 수 있다. 이 예에서, 각 타일은 최대 5개의 장소를 포함하고, 이것은 장소(475)를 포함하는 타일(470-5)이 생성되는 새로운 타일링을 낳을 수 있다.
대안적으로, 타일(470-c)로 표현되는 새로운 타일링은 지도(410)의 지리적 영역 내에서 변화하는 밀도의 재평가에 의한 것일 수 있다. 타일(470-5) 내의 지리적 영역은 타일들(370-a 및 470-c)의 생성 시간 간에 관련된 장소의 밀도가 증가했을 수 있다. 이것은 검색 시스템(100)이 타일(470-5) 내의 영역에 대해 보다 작은 타일을 사용하여 새로운 타일링을 생성하는 결과가 될 수 있다. 양쪽 경우에, 타일 컴포넌트(150)은 제1 위치 기반 요청에 대한 제1 복수의 타일(370-a)을 경정하고 제2 위치 기반 요청에 대한 제2 복수의 타일(470-c)을 결정하도록 작동할 수 있고, 제1 복수의 타일(370-a)과 제2 복수의 타일(470-c)은 지리적 위치의 재타일링에 응답한 동일한 범위이고 동일한 지리적 위치에 대한 것이고, 적어도 제1 복수의 타일(370-a) 중 제1 타일은 제1 타일과 중첩되는 제2 복수의 타일(470-c) 중 제2 타일은 구분되는 크기, 형상 또는 위치이다.
도 5는 도 3과 관련하여 타일(370-5)의 지리적 위치 내의 타일의 그룹의 일실시예를 도시한다.
도 5에 도시된 것은 보다 높은 줌 레벨(감소된 범위)에서 타일(370-5) 내에 포함된 지리적 영역이다. 이 지리적 영역은 타일(570-d)에 의해 덮이고 타일(370-5)에 포함되지 않았던 추가적인 장소, 예컨대 타일(570-3) 내의 장소(575-1 및 575-2)를 포함한다. 이들은 타일의 특정 카테고리와 관련되나 타일(370-5) 내에 보다 높은 범위에서 포함되는 장소보다 낮은 중요도를 가지는 장소일 수 있다.
일부 실시예에서, 타일(570-d)은 타일(370-5)의 지리적 영역에 집합적으로 포함될 수 있고, 그러한 타일들 또는 특정 카테고리 내의 타일들은 계층적으로 조직화될 수 있다. 대안적으로, 타일(570-d)은 높은 범위에서 타일(370-5)와 같은 타일과 경계를 반드시 공유하지 않을 수 있다. 예를 들어, 타일(570-5)은 도시된 영역보다 왼쪽 및 아래쪽(동쪽 및 남쪽)으로 연장될 수 있다.
도 6은 도 1의 시스템을 위한 검색 영역과 중첩하는 타일의 실시예를 도시한다.
도 6에 도시된 것은 제1 검색 영역(610), 제2 검색 영역(620) 및 다양한 장소를 포함하는 타일(670-e)이다. 타일(670-e)은 모두 동일한 범위와 동일한 카테고리이고, 따라서 지리적으로 구분되고 중첩되지 않는다. 검색 시스템(100)은 제1 요청에 응답하여 타일(670-2), 타일(670-6), 타일(670-7), 타일(670-8), 타일(670-9), 타일(670-10) 및 타일(670-11)을 제1 검색 영역(610)을 덮는 것으로 식별할 수 있다. 검색 시스템(100)은 제2 요청에 응답하여, 타일(670-2), 타일(670-3), 타일(670-4), 타일(670-5), 타일(670-7), 타일(670-8), 타일(670-10), 타일(670-11), 타일(670-12) 및 타일(670-13)을 검색 영역(620)을 덮는 것으로 식별할 수 있다. 보이는 바와 같이, 타일(670-7), 타일(670-8), 타일(670-10) 및 타일(670-11)은 검색 영역 양자(610 및 620)를 덮기 위해 사용될 수 있다.
만약 동일한 클라이언트 애플리케이션(190)으로부터 검색 영역(620)이 검색 영역(610)에 이어 바로 수신된다면 검색 영역(610)의 처리 중에 이미 전송되었거나 전송되지 않을, 검색 영역(620)을 덮기 위해 사용되는 타일만을 전송함으로써 검색 영역(620)의 요청에 응답하는 것이 이득일 수 있다: 670-2, 670-3, 670-4, 670-5, 670-12 및 670-13. 만약 클라이언트 애플리케이션(190)이 공통 타일(670-7, 670-8, 670-10 및 670-11)을 제1 요청에 대한 응답의 일부로서 수신한다면 검색 영역(620) 전체에 대한 장소를 디스플레이하기 위하여 그들을 제2 요청에 응답의 일부로서 수신한 타일과 결합하여 단순히 재사용할 수 있다. 이것은 요청들의 쌍에 응답하기 위해 사용되는 대역폭을 감소시킬 수 있다.
이와 같이, 일반적으로, 통신 컴포넌트는 클라이언트 애플리케이션(190)으로부터 제2 위치 기반 요청을 수신하는데, 제2 위치 기반 요청(190)은 제2 지리적 영역, 예컨대 검색 영역(620)을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청(130) 및 지리적 영역, 예컨대 검색 영역(610)을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩하고, 클라이언트 애플리케이션(190)으로 제2 복수의 타일을 전송하도록 작동할 수 있다. 타일 컴포넌트(150)는 나머지 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외하는 제2 복수의 타일을 결정하도록 작동할 수 있다. 일부 실시예에서, 예컨대 분산형 시스템, 다중 스레드 시스템, 다중 프로세서 시스템 또는 요청을 병렬로 처리하기 위해 복수의 유사하거나 동일한 컴포넌트를 사용하는 시스템 에서 상이한 타일 컴포넌트가 사용될 수 있다.
일부 실시예에서, 검색 시스템(100)은 클라이언트 애플리케이션(190)이 다음 위치 기반 요청에서 사용될 수 있는 타일을 프리-페치하도록 준비시키도록 작동할 수 있다. 예를 들어, 높은 줌 레벨에서의 타일은 사용자가 그들의 현지의 영역을 클라이언트 애플리케이션(190)을 위한 기본 범위보다 더 가까이 조사하도록 결정하는 만일의 사태에 사용가능한 그들의 각각의 장소를 가지기 위해 프리-페치될 수 있다. 유사하게, 낮은 줌 레벨에서의 타일은 사용자가 그들의 주변 영역을 기본 범위보다 더 넓게 조사하도록 결정하는 만일의 사태에 사용가능한 그들의 각각의 장소를 가지기 위해 프리-페치될 수 있다. 동일한 줌 레벨에서 주변 타일은 사용자가 디스플레이된 지도를 스크롤하기로 결정하는 만일의 사태에 사용가능한 그들의 각각의 장소를 가지기 위해 프리-페치될 수 있다. 제2의, 다음 전송에서 전송되는 이들 추가적인 타일을 가져 즉시-요청된 장소의 전송 및 디스플레이에 있어서 대역폭과 처리 능력을 경쟁하지 않는 것은 가치가 클 수 있다.
이와 같이, 타일 컴포넌트(150)는 구분되는 인접 지리적 영역을 덮거나 상이한 줌 레벨에서 지리적 영역의 적어도 일부를 덮는, 위치 기반 요청(130)과 관련되는 제2 복수의 타일을 결정하도록 작동할 수 있다. 통신 컴포넌트(120)은 클라이언트 애플리케이션(190)이 제2 복수의 타일을 요청하도록 명령하고, 응답하여 클라이언트 애플리케이션(190)으로 제2 복수의 타일을 전송하도록 작동할 수 있다. 클라이언트 애플리케이션(190)은 복수의 타일(170)의 전송 완료에 응답하여 제2 복수의 타일에 대한 요청을 제출하도록 작동할 수 있다.
예를 들어, 클라이언트 애플리케이션(190)은 위치 기반 요청(130)을 검색 시스템(100)에 제출하고 응답으로 복수의 타일(170)과 프리-페치 명령을 수신할 수 있다. 클라이언트 애플리케이션(190)은 복수의 타일(170)의 수신이 완료될 때까지 기다리고 그 후 프리-페치 명령을 사용하여 추가적인 관련 타일의 다운로드를 시작할 수 있다. 일실시예에서, 프리-페치 명령은 단일 식별자, 구조 또는 위치 기반 요청(130)을 참조하거나 포함하고 검색 시스템(100)이 추가적인 타일을 제공하도록 요청하기 충분한 다른 기표를 포함할 수 있다. 대안적으로, 프리-페치 명령은 클라이언트 애플리케이션(190)이 명시적으로 요청할 수 있는 프리-페치되어야 할 타일의 리스트를 포함할 수 있다.
도 7은 중앙형 시스템(700)의 블록 다이어그램을 도시한다. 중앙형 시스템(700)은 가령 전적으로 하나의 장치(720) 내에서와 같이 하나의 컴퓨팅 엔티티에서 검색 서비스(100)에 대한 구조 및/또는 동작의 일부 또는 전부를 구현할 수 있다.
장치(720)는 검색 서비스(100)에 대한 정보를 수신, 처리 및 송신할 수 있는 임의의 전자식 장치를 포함할 수 있다. 전자식 장치의 예들은 제한 없이 초-모바일(ultra-mobile) 장치, 모바일 장치, 개인용 정보 단말기(PDA), 모바일 컴퓨팅 장치, 스마트폰, 전화, 디지털 전화, 셀룰러 전화, 전자책 리더, 핸드셋, 단방향 페이저, 양방향 페이저, 메시징 장치, 컴퓨터, 개인용 컴퓨터(PC), 데스크톱 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, 휴대용 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜(server farm), 웹 서버, 네트워크 서버, 인터넷 서버, 워크 스테이션, 미니-컴퓨터, 메인 프레임 컴퓨터, 슈퍼컴퓨터, 네트워크 가전, 웹 가전, 분산형 컴퓨팅 시스템, 멀티프로세서 시스템, 프로세서-기반 시스템, 소비자 전자기기, 프로그램가능한 소비자 전자기기, 게임 장치, 텔레비전, 디지털 텔레비전, 셋톱 박스, 무선 접속점, 기지국, 구독자 스테이션, 모바일 구독자 센터, 무선 네트워크 컨트롤러, 라우터, 허브, 게이트웨이, 브릿지, 스위치, 기계 또는 이들의 조합을 포함할 수 있다. 실시예들이 이와 같이 제한되는 것은 아니다.
장치(720)는 프로세싱 컴포넌트(730)를 사용하여 검색 시스템(100)에 대한 프로세싱 동작이나 로직을 실행할 수 있다. 프로세싱 컴포넌트(730)는 다양한 하드웨어 요소, 소프트웨어 요소 또는 둘 모두의 조합을 포함할 수 있다. 하드웨어 요소의 예들은 장치들, 로직 장치들, 컴포넌트들, 프로세서들, 마이크로프로세서들, 회로들, 프로세서 회로들, 회로 요소들(예컨대, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적회로들, ASIC(application specific integrated circuits), PLD(programmable logic devices), DSP(digital signal processors), FPGA(field programmable gate array), 메모리 유닛들, 로직 게이트들, 레지스터들, 반도체 장치, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어 요소의 예들은 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 기계 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수들, 방법들, 절차들, 소프트웨어 인터페이스, 응용 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 단어들, 값들, 기호들 또는 이들의 임의의 조합을 포함할 수 있다. 한 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현되는지에 대한 결정은, 소정의 구현에 적절한 경우, 가령 소정의 연산 속도(computational rate), 전력 레벨, 내열성, 프로세싱 사이클 예산(processing cycle budget), 입력 데이터 속도, 출력 데이터 속도, 메모리 리소스, 데이터 버스 속도와 다른 설계 또는 성능 제약과 같은 임의의 수의 인자들에 따라 변할 수 있다.
장치(720)는 통신 컴포넌트(740)를 사용하여 검색 시스템(100)에 대한 통신 동작이나 로직을 실행할 수 있다. 통신 컴포넌트(740)는 가령 패킷-교환형 네트워크(예컨대, 인터넷과 같은 공중 네트워크, 기업 인트라넷과 같은 사적 네트워크 등), 회로-교환형 네트워크(예컨대, 공중 교환 전화망) 또는 (적절한 게이트웨이와 변환기를 가진) 패킷-교환형 네트워크와 회로-교환형 네트워크의 조합과 같이 임의의 널리 알려진 통신 기술 및 프로토콜을 구현할 수 있다. 통신 컴포넌트(740)는 가령 하나 이상의 통신 인터페이스, 네트워크 인터페이스, 네트워크 인터페이스 카드(NIC), 라디오, 무선 송신기/수신기(송수신기), 유선 및/또는 무선 통신 미디어, 물리적 커넥터 등과 같이 다양한 타입의 표준 통신 구성요소들을 포함할 수 있다. 예로서 제한 없이, 통신 미디어(712, 742)는 유선 통신 미디어 및 무선 통신 미디어를 포함한다. 유선 통신 미디어의 예들은 와이어, 케이블, 금속 리드(metal leads), 인쇄회로기판(PCB), 백플레인(backplanes), 스위치 패브릭(switch fabrics), 반도체 재료, 트위스트 페어 와이어(twisted-pair wire), 동축 케이블, 광섬유(fiber optics), 전파 신호(propagated signal) 등을 포함할 수 있다. 무선 통신 미디어의 예들은 음향, 무선-주파수(RF) 스펙트럼, 적외선 및 다른 무선 미디어를 포함할 수 있다.
장치(720)는 통신 컴포넌트(740)를 통한 통신 신호(714, 744) 각각을 사용하여 통신 미디어(712, 742) 각각을 통해 다른 장치들(710, 750)과 통신할 수 있다. 장치들(710, 750)은 소정의 구현을 위해 적절한 경우 장치(720)의 내부 또는 외부에 있을 수 있다. 예를 들어, 장치(710)는 클라이언트 장치(180)를 포함하여 미디어(712)를 통해 전송되는 신호(714)가 위치 기반 요청(130)의 검색 시스템(100)으로의 전송 및 복수의 타일(170)의 검색 시스템(100)으로부터 장치(710)으로의 전송을 포함할 수 있다. 장치(750)는 다른 사용자에 의해 사용되는 제2 클라이언트 장치를 포함할 수 있는데, 검색 시스템(100)과 상호작용하여 장치(710)보다 빨리, 늦게 또는 병렬적으로 타일을 요청하고, 타일을 수신할 수 있다.
도 8은 분산형 시스템(800)의 블록 다이어그램을 도시한다. 분산형 시스템(800)은 다수의 컴퓨팅 엔티티에 걸쳐 검색 시스템(100)에 대한 구조 및/또는 동작의 부분들을 분산할 수 있다. 분산형 시스템(800)의 예들은 제한 없이 클라이언트-서버 구조, 3-티어 구조(3-tier architecture), N-티어 구조, 밀착-결합형 또는 클러스터형 구조, 피어-투-피어(peer-to-peer) 구조, 마스터-슬레이브(master-slave) 구조, 공유형 데이터베이스 구조 및 다른 타입의 분산형 시스템을 포함할 수 있다. 실시예들이 이와 같이 제한되는 것은 아니다.
분산형 시스템(800)은 클라이언트 장치(180), 부하 밸런서(load balancer)(810) 및 복수의 서버 장치들(820-f)을 포함할 수 있다. 통상, 클라이언트 장치(180), 부하 밸런서(810) 및 복수의 서버 장치들(820-f)은 도 7을 참조로 기술되는 바와 같이 클라이언트 장치(720)와 동일하거나 유사할 수 있다. 예컨대, 클라이언트 장치(180), 부하 밸런서(810) 및 서버 시스템들(820-f)은 도 7을 참조로 기술되는 바와 같이 처리 컴포넌트(730)와 통신 컴포넌트(740)와 각각 동일하거나 유사한 처리 컴포넌트(830)와 통신 컴포넌트(840)를 각각 포함할 수 있다. 또 다른 예로, 장치(180, 810 및 820)은 통신 컴포넌트(840)를 통한 통신 신호(814 및 844)를 사용하여 통신 미디어(812 및 842)를 통해 통신할 수 있다.
클라이언트 장치(180)는 기술된 실시예들에 따라 다양한 방법론을 수행하도록 동작하는 하나 이상의 클라이언트 프로그램을 포함하거나 이용할 수 있다. 일실시예에서, 예를 들어, 부하 밸런서(810)은 클라이언트 애플리케이션(190)를 구현할 수 있다.
부하 밸런서(810)는 예컨대 클라이언트 장치(180)에서 실행되는 다양한 클라이언트 애플리케이션 및 다양한 타일 컴포넌트(850-g) 사이를 중재하도록 작동할 수 있다. 부하 밸런서(810)는 클라이언트 장치(180)로부터 위치 기반 요청(130)을 수신하고 분산형 컴퓨팅 환경의 병렬 서버에서 작업 분산을 위한 알려진 기술 중 임의의 하나에 기반하여 위치 기반 요청을 복수의 타일 컴포넌트(850-g) 중 한 타일 컴포넌트(150)에 분산할 수 있다.
서버 장치들(820-f)은 기술된 실시예들에 따라 다양한 방법론을 수행하도록 동작하는 하나 이상의 서버 프로그램을 포함하거나 이용할 수 있다. 일실시예에서, 예를 들어, 서버 장치(820-f)는 복수의 타일 컴포넌트(850-g)를 구현할 수 있다. 복수의 타일 컴포넌트(850-g) 각각은 위치 기반 정보를 위한 요청을 수신하고 요청한 클라이언 장치로 다시 전송하기 위한 타일의 세트 응답을 결정할 수 있다.
개시된 구조의 신규한 태양을 수행하기 위한 예시적인 방법론을 표현하는 흐름도의 세트가 본 명세서에 포함된다. 설명의 간소화를 위해, 예컨대 흐름도이나 흐름 다이어그램의 형태로 본 명세서에 도시된 하나 이상의 방법이 도시되고 일련의 행위로 기술되지만, 방법론은 몇몇의 행위는 그에 따라 본 명세서에 도시되고 기술되는 다른 행위들과 다른 순서로 및/또는 동시에 발생할 수 있기 때문에 그 행위의 순서에 국한되지 않는다고 이해되고 인식된다. 예컨대, 방법론은 가령 상태 다이어그램과 같이 일련의 상호연관된 상태나 이벤트로서 대안으로 표현될 수 있다고 당업자가 이해하고 인식할 것이다. 게다가, 방법론에 설명된 모든 행위들이 신규한 구현에 요구되는 것은 아닐 수 있다.
도 9는 로직 흐름(900)의 일실시예를 도시한다. 로직 흐름(900)은 본 명세서에 기술된 하나 이상의 실시예들에 의해 실행되는 동작들의 일부 또는 전부를 표현할 수 있다.
도 9에 도시된 실시예에서, 로직 흐름(900)은 블록(902)에서 클라이언트 애플리케이션(190)로부터 위치 기반 요청(130)을 수신할 수 있고, 위치 기반 요청(130)은 지리적 영역을 포함한다. 예를 들어, 위치 기반 요청(130)은 모바일 장치의 클라이언트 애플리케이션(190)로부터 수신되고, 지리적 영역은 모바일 장치의 현재 위치(225)를 포함한다. 일부 실시예에서 위치 기반 요청(130)은 줌 레벨을 명시할 수 있다.
로직 흐름(900)은 클라이언트 애플리케이션(190)으로부터 제2 위치 기반 요청을 수신할 수 있는데, 제2 위치 기반 요청은 제2 지리적 영역을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청(130) 및 지리적 영역을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청에서의 지리적 위치와 중첩한다.
로직 흐름(900)은 블록(904)에서 지리적 영역을 덮는 복수의 타일(170)을 결정할 수 있고, 복수의 타일(170) 중 각 타일은 지리적 영역의 부분을 덮고 장소의 세트를 포함한다.
예를 들어, 복수의 타일(170) 각각은 장소 타입의 카테고리에 특정될 수 있다. 복수의 타일(170)을 결정하는 것은 수신된 위치 기반 요청(130)을 장소 타입의 카테고리에 매핑하고 장소 타입의 매핑된 카테고리에 따라 복수의 타일(170)을 결정하는 것을 포함할 수 있다. 복수의 타일(170)은 제1 타일을 포함할 수 있는데, 제1 타일은 제1 지리적 영역을 덮고, 제1 타일은 제1 지리적 영역 내의 장소의 제1 세트를 포함하고, 장소의 전체 세트에서 선택된 제1 세트는 장소의 전체 세트 내의 장소의 선택된 제1 세트의 상대적 중요도에 따른다. 복수의 타일(170) 각각은 장소 타입의 카테고리에 특정되고, 제1 타일은 장소 타입의 그 카테고리의 장소의 전체 세트로부터 장소 타입의 카테고리로 특정된 장소의 전체 세트 내의 장소의 선택된 제1 세트의 상대적 중요도에 따라 선택된 장소의 제1 세트를 포함할 수 있다.
위치 기반 요청(130)이 줌 레벨을 명시할 때, 복수의 타일(170)의 결정은 명시된 줌 레벨을 복수의 타일(170) 각각과 연관된 줌 레벨의 범위와 매칭시키는 것을 포함할 수 있다.
복수의 타일(170)은 제1 타일 및 제2 타일을 포함할 수 있는데, 제1 타일은 제1 지리적 영역을 덮고, 제2 타일은 제1 지리적 영역과 구분되는 제2 지리적 영역을 덮고, 제1 지리적 영역은 제2 지리적 영역보다 크다. 일부 실시예에서, 제1 지리적 영역은 제1 지리적 영역이 더 낮은 밀도의 관련된 장소를 포함한다는 결정에 응답하여 제2 지리적 영역보다 크게 구성될 수 있다.
로직 흐름(900)은 구분되는 인접 지리적 영역을 덮거나 적어도 다른 줌 레벨의 지리적 여영? 부분을 덮는 위치 기반 요청(130)에 관한 제2 복수의 타일의 결정, 클라이언트 애플리케이션(190)에 제2 복수의 타일을 요청하도록 지시하기, 클라이언트 애플리케이션(190)으로부터 제2 복수의 타일을 뒤한 요청 수신하기 및 클라이언트 애플리케이션(190)으로 제2 복수의 타일 전송하기를 더 포함할 수 있다.
제2 위치 기반 요청이 클라이언트 애플리케이션(190)으로부터 수신될 때, 로직 흐름(900)은 남은 영역을 덮는 제2 복수의 타일을 결정하고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용될 타일을 제외한다.
로직 흐름(900)은 블록(906)에서 클라이언트 애플리케이션(190)으로 복수의 타일(170)을 전송할 수 있다. 예를 들어, 전송된 복수의 타일(170)은 장소의 수신된 세트에 상대적인 모바일 장치의 현재 위치(225)의 디스플레이를 포함하는 지도 상에 오버레이로서 모바일 장치에 디스플레이되기 위한 것일 수 있다.
제2 복수의 타일이 결정될 때, 로직 흐름(900)은 제2 복수의 타일을 클라이언트 애플리케이션(190)으로 전송할 수 있다.
실시예는 이 예시에 제한되지 않는다.
도 10은 상술한 바와 같이 다양한 실시예들을 구현하는데 적합한 예시적인 컴퓨팅 구조(1000)의 한 실시예를 도시한다. 일실시예로, 컴퓨팅 구조(1000)는 전자 장치의 일부로 포함하거나 구현될 수 있다. 전자 장치의 예들은 다른 것들 중에서 도 7 및 8을 참조로 기술되는 것들을 포함할 수 있다. 실시예들이 이와 같이 제한되는 것은 아니다.
본 출원에서 사용되는 바와 같이, "시스템" 및 "컴포넌트"란 용어는 컴퓨터-관련 엔티티, 어느 하나의 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 실행중의 소프트웨어, 예시적인 컴퓨팅 구조(1000)에 의해 제공되는 예들을 일컫는 것으로 의도된다. 예컨대, 컴포넌트는 프로세서에서 실행하는 프로세스, 프로세서, 하드 디스크 드라이브, (광학 및/또는 자기 저장매체의) 다수의 저장 드라이브, 객체, 실행가능한 것들, 실행의 쓰레드(thread), 프로그램 및/또는 컴퓨터일 수 있으나 이에 국한되지 않는다. 예로서, 서버에서 실행하는 애플리케이션과 서버 모두는 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행의 쓰레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터에 로컬화될 수 있고/있거나 2 이상의 컴퓨터들 사이에 분산될 수 있다. 게다가, 컴포넌트는 동작들을 편성하도록 다양한 타입의 통신 미디어에 의해 서로 통신가능하게 연결될 수 있다. 편성(coordination)은 정보의 단방향이나 양방향 교환을 포함할 수 있다. 예컨대, 컴포넌트는 통신 미디어를 통해 통신되는 신호의 형태로 정보를 통신할 수 있다. 정보는 다양한 신호 라인에 할당된 신호들로서 구현될 수 있다. 이런 할당에서, 각 메시지는 신호이다. 그러나, 추가의 실시예들이 대안으로 데이터 메시지를 이용할 수 있다. 이런 데이터 메시지는 다양한 연결을 통해 송신될 수 있다. 예시적인 연결은 병렬 인터페이스, 직렬 인터페이스 및 버스 인터페이스를 포함한다.
컴퓨팅 구조(1000)는 가령 하나 이상의 프로세서, 멀티-코어 프로세서, 코-프로세서(co-processors), 메모리 유닛, 칩셋, 컨트롤러, 주변기기, 인터페이스, 오실레이터, 타이밍 장치, 비디오 카드, 오디오 카드, 멀티미디어 입력/출력(I/O) 컴포넌트, 전원 등과 같이 다양한 공통의 컴퓨팅 구성요소들을 포함한다. 그러나, 실시예들은 컴퓨팅 구조(1000)에 의한 구현으로 국한되지 않는다.
도 10에 도시된 바와 같이, 컴퓨팅 구조(1000)는 프로세싱 유닛(1004), 시스템 메모리(1006) 및 시스템 버스(1008)를 포함한다. 프로세싱 유닛(1004)은 제한 없이 AMD® Athlon®, Duron® 및 Opteron® 프로세서; ARM® 애플리케이션, 임베디드 및 보안 프로세서; IBM® 및 Motorola® DragonBall® 및 PowerPC® 프로세서; IBM 및 Sony® Cell 프로세서; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®, Xeon® 및 XScale® 프로세서; 및 유사한 프로세서들을 포함하는 임의의 다양한 영리적으로 이용가능한 프로세서일 수 있다. 또한, 듀얼 멀티프로세서, 멀티-코어 프로세서 및 다른 멀티-프로세서 구조가 프로세싱 유닛(1004)으로 이용될 수 있다.
시스템 버스(1008)는 시스템 메모리(1006)를 포함하나 이에 국한되지 않는 시스템 컴포넌트용 인터페이스를 프로세싱 유닛(1004)에 제공한다. 시스템 버스(1008)는 임의의 다양한 영리적으로 이용가능한 버스 구조를 사용하여 (메모리 컨트롤러를 가지거나 가지지 않은) 메모리 버스, 주변기기 버스 및 로컬 버스와도 또한 상호연결할 수 있는 임의의 여러 타입의 버스 구조일 수 있다. 인터페이스 어댑터는 슬롯 구조를 통해 시스템 버스(1008)와 연결할 수 있다. 예시적인 슬롯 구조는 제한 없이 AGP(Accelerated Graphics Port), 카드 버스, (E)ISA((Extended) Industry Standard Architecture), MCA(Micro Channel Architecture), NuBus, PCI(X)(Peripheral Component Interconnect (Extended)), PCI Express, PCMCIA(Personal Computer Memory Card International Association) 등을 포함할 수 있다.
컴퓨팅 구조(1000)는 다양한 제조 물품을 포함하거나 구현할 수 있다. 제조 물품은 로직을 저장하는 컴퓨터-판독가능한 저장매체를 포함할 수 있다. 컴퓨터-판독가능한 저장매체의 예는 휘발성 메모리나 비-휘발성 메모리, 착탈식이나 비착탈식 메모리, 소거가능하거나 비-소거가능한 메모리, 쓰기가능하거나 다시-쓰기가능한 메모리 등을 포함하는, 전자 데이터를 저장할 수 있는 임의의 유형의 미디어를 포함할 수 있다. 로직의 예는 가령 소스 코드, 컴파일된 코드, 번역된 코드, 실행가능한 코드, 정적 코드, 동적 코드, 객체-지향 코드, 비주얼 코드 등과 같이 임의의 적절한 타입의 코드를 사용하여 구현되는 실행가능한 컴퓨터 프로그램 명령어를 포함할 수 있다. 또한, 실시예들은 본 명세서에 기술되는 동작들의 수행을 가능하게 하는 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는, 비-일시적 컴퓨터-판독가능한 매체에 포함되는 명령어로서 적어도 부분적으로 구현될 수 있다.
시스템 메모리(1006)는 가령 읽기-전용 메모리(ROM), 랜덤-액세스 메모리(RAM), 동적 RAM(DRAM), 이중-데이터-레이트 DRAM(DDRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM), 프로그램가능한 ROM(PROM), 소거가능하고 프로그램가능한 ROM(EPROM), 전기적으로 소거가능하고 프로그램가능한 ROM(EEPROM), 플래시 메모리, 가령 강유전성 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리(ovonic memory), 위상 변이 또는 강유전성 메모리, SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자기 또는 광학 카드, 가령 RAID(Redundant Array of Independent Disks) 드라이브와 같은 장치 어레이, 고체 상태 메모리 장치(예컨대, USB 메모리, 고체 상태 드라이브(SSD)) 및 정보를 저장하는데 적합한 임의의 다른 타입의 저장매체와 같이 하나 이상의 고속 메모리 유닛의 형태의 다양한 타입의 컴퓨터-판독가능한 저장매체를 포함할 수 있다. 도 10에 도시되는 예시의 실시예에서, 시스템 메모리(1006)는 비-휘발성 메모리(1010) 및/또는 휘발성 메모리(1012)를 포함할 수 있다. 기본 입력/출력 시스템(BIOS)은 비-휘발성 메모리(1010)에 저장될 수 있다.
컴퓨터(1002)는 내부(또는 외부) 하드디스크 드라이브(HDD)(1014), 착탈식 자기 디스크(1018)로부터 판독하거나 자기 디스크에 기록하는 자기 플로피 디스크 드라이브(FDD)(1016) 및 착탈식 광학 디스크(1022)로부터 판독하거나 광학 디스크에 기록하는 광학 디스크 드라이브(1020)(예컨대, CD-ROM 또는 DVD)를 포함하는 하나 이상의 저속 메모리 유닛의 형태의 다양한 타입의 컴퓨터-판독가능한 저장매체를 포함할 수 있다. HDD(1014), FDD(1016) 및 광학 디스크 드라이브(1020)는 HDD 인터페이스(1024), FDD 인터페이스(1026) 및 광학 디스크 인터페이스(1028)에 의해 각각 시스템 버스(1008)와 연결될 수 있다. 외부 드라이브 구현용 HDD 인터페이스(1024)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술들 중 적어도 하나 또는 둘 모두를 포함할 수 있다.
드라이브 및 관련 컴퓨터-판독가능한 매체는 휘발성 및/또는 비휘발성 데이터 저장, 데이터 구조, 컴퓨터-실행가능한 명령어 등을 제공한다. 예컨대, 다수의 프로그램 모듈은 운영 시스템(1030), 하나 이상의 애플리케이션 프로그램(1032), 다른 프로그램 모듈(1034) 및 프로그램 데이터(1036)를 포함하는 드라이브 및 메모리 유닛(1010, 1012)에 저장될 수 있다. 일실시예로, 하나 이상의 애플리케이션 프로그램(1032), 다른 프로그램 모듈(1034) 및 프로그램 데이터(1036)는 예컨대 검색 시스템(100)의 다양한 애플리케이션 및/또는 컴포넌트를 포함할 수 있다.
사용자는 예컨대 키보드(1038) 및 마우스(1040)와 같은 포인팅 장치와 같은 하나 이상의 유선/무선 입력 장치를 통해 명령 및 정보를 컴퓨터(1002)로 입력할 수 있다. 다른 입력 장치는 마이크로폰, 적외선(IR) 원격 컨트롤, 무선-주파수(RF) 원격 컨트롤, 게임 패드, 스타일러스 펜, 카드 리더, 동글(dongles), 지문 리더, 글로브(gloves), 그래픽 태플릿, 조이스틱, 키보드, 망막 리더, (예컨대, 정전용량식, 저항식 등의) 터치 스크린, 트랙볼, 트랙패드, 센서, 스타일러스 등을 포함할 수 있다. 이런 입력 장치 및 다른 입력 장치는 흔히 시스템 버스(1008)와 연결되는 입력 장치 인터페이스(1042)를 통해 프로세싱 유닛(1004)과 연결되지만, 가령 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같이 다른 인터페이스들로 연결될 수 있다.
또한, 모니터(1044) 또는 다른 타입의 디스플레이 장치는 가령 비디오 어댑터(1046)와 같은 인터페이스를 통해 시스템 버스(1008)와 연결된다. 모니터(1044)는 컴퓨터(1002)의 내부 또는 외부에 있을 수 있다. 모니터(1044) 이외에, 컴퓨터는 가령 스피커, 프린터 등과 같은 다른 주변의 출력 장치들을 일반적으로 포함한다.
컴퓨터(1002)는 가령 원격 컴퓨터(1048)와 같은 하나 이상의 원격 컴퓨터로의 유선 및/또는 무선 통신을 통한 논리적 연결을 사용하여 네트워크형 환경에서 동작할 수 있다. 원격 컴퓨터(1048)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 엔터테인먼트 가전, 피어 장치 또는 다른 공통의 네트워크 노드일 수 있고, 간결함을 위해 단지 하나의 메모리/저장 장치(1050)만이 도시되지만, 일반적으로 컴퓨터(1002)에 대하여 기술되는 많은 구성요소 또는 모든 구성요소를 포함한다. 도시되는 논리적 연결은 근거리 네트워크(LAN)(1052)로의 유선/무선 연결 및/또는 예컨대 광역 네트워크(WAN)(1054)와 같은 더 큰 네트워크를 포함한다. 이런 LAN 및 WAN 네트워킹 환경은 사무실과 회사에서 매우 흔하며, 가령 인트라넷과 같은 기업-광역 컴퓨터 네트워크를 용이하게 하는데 이들 모두는 예컨대 인터넷과 같은 글로벌 통신 네트워크와 연결할 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1002)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1056)를 통해 LAN(1052)과 연결된다. 어댑터(1056)는 LAN(1052)으로의 유선 및/또는 무선 통신을 용이하게 할 수 있고, 이것은 또한 어댑터(1056)의 무선 기능과 통신하기 위해 그곳에 배치되는 무선 접속점을 포함할 수 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1002)는 모뎀(1058)을 포하할 수 있거나, WAN(1054)에서 통신 서버와 연결되거나, 가령 인터넷과 같이 WAN(1054)을 통해 통신을 확립하기 위한 다른 수단을 가진다. 내부 또는 외부 및 유선 및/또는 무선 장치일 수 있는 모뎀(1058)은 입력 장치 인터페이스(1042)를 통해 시스템 버스(1008)와 연결한다. 네트워크형 환경에서, 컴퓨터(1002)에 대해 묘사되는 프로그램 모듈들 또는 이들의 부분들은 원격 메모리/저장 장치(1050)에 저장될 수 있다. 도시된 네트워크 연결은 예시적이고 컴퓨터 사이의 통신 링크를 확립하는 다른 수단이 사용될 수 있음이 이해될 것이다.
컴퓨터(1002)는 가령 무선 통신(예컨대, 무선(over-the-air) 변조 기술의 IEEE 802.10)에서 동작가능하게 배치되는 무선 장치와 같이 IEEE 802 표준 패밀리를 사용하여 유선 및 무선 장치 또는 엔티티와 통신하도록 동작한다. 이는 적어도 Wi-Fi(또는 Wireless Fidelity), WiMax 및 BluetoothTM 무선 기술 등을 포함한다. 따라서, 통신은 종래의 네트워크 또는 적어도 2개의 장치 사이의 간단한 애드 혹(ad hoc) 통신의 기정의된 구조일 수 있다. Wi-Fi 네트워크는 IEEE 802.10x(a, b, g, n 등)라고 하는 무선 기술을 사용하여 보안의 신뢰성 있는 신속한 무선 연결을 제공한다. Wi-Fi 네트워크는 (IEEE 802.3-관련 미디어 및 기능을 사용하여) 서로, 인터넷으로 그리고 유선 네트워크로 컴퓨터들을 연결하는데 사용될 수 있다.
도 11는 상술한 바와 같이 다양한 실시예들을 구현하는데 적합한 예시적인 통신 구조(1100)의 블록 다이어그램을 도시한다. 통신 구조(1100)는 가령 송신기, 수신기, 송수신기, 라디오, 네트워크 인터페이스, 기저대역 프로세서, 안테나, 증폭기, 필터, 전원 등과 같이 다양한 공통의 통신 구성요소들을 포함한다. 그러나, 실시예들이 통신 구조(1100)에 의한 구현으로 국한되는 것은 아니다.
도 11에 도시된 바와 같이, 통신 구조(1100)는 하나 이상의 클라이언트(1102) 및 서버(1104)를 포함한다. 클라이언트(1102)는 클라이언트 장치(910)을 구현할 수 있다. 서버(1104)는 장치(950)을 구현할 수 있다. 클라이언트(1102) 및 서버(1104)는 가령 쿠키 및/또는 관련 컨텍스트형 정보와 같이 각각의 클라이언트(1102) 및 서버(1104)에 대한 로컬 정보를 저장하는데 이용될 수 있는 하나 이상의 각각의 클라이언트 데이터 스토어(1108) 및 서버 데이터 스토어(1110)와 동작가능하게 연결된다.
클라이언트(1102) 및 서버(1104)는 통신 프레임워크(1106)를 사용하여 서로 간에 정보를 통신할 수 있다. 통신 프레임워크(1106)는 임의의 널리 알려진 통신 기술 및 프로토콜을 구현할 수 있다. 통신 프레임워크(1106)는 패킷-교환형 네트워크(예컨대, 인터넷과 같은 공중 네트워크, 기업 인트라넷과 같은 사적 네트워크 등), 회로-교환형 네트워크(예컨대, 공중 교환 전화망) 또는 (적절한 게이트웨이와 변환기를 가진) 패킷-교환형 네트워크와 회로-교환형 네트워크의 조합으로서 구현될 수 있다.
통신 프레임워크(1106)는 통신 네트워크를 수락, 통신 및 연결하도록 배열되는 다양한 네트워크 인터페이스를 구현할 수 있다. 네트워크 인터페이스는 특수화된 형태의 입출력 인터페이스로 간주될 수 있다. 네트워크 인터페이스는 제한 없이 직접 연결, 이더넷(예컨대, thick, thin, twisted pair 10/100/1000 Base T 등), 토큰 링, 무선 네트워크 인터페이스, 셀룰러 네트워크 인터페이스, IEEE 802.11a-x 네트워크 인터페이스, IEEE 802.16 네트워크 인터페이스, IEEE 802.20 네트워크 인터페이스 등을 포함하는 연결 프로토콜을 이용할 수 있다. 게다가, 다수의 네트워크 인터페이스는 다양한 통신 네트워크 타입과 연계하는데 사용될 수 있다. 예컨대, 다수의 네트워크 인터페이스는 방송, 멀티캐스트 및 유니캐스트 네트워크를 통한 통신을 가능하게 하는데 이용될 수 있다. 프로세싱 조건이 더 높은 속도와 성능을 요구하면, 분산형 네트워크 컨트롤러 구조는 마찬가지로 클라이언트(1102) 및 서버(1104)에 의해 요구되는 통신 대역폭을 풀링(pool), 부하 균형(load balance) 및 증가하는데 이용될 수 있다. 통신 네트워크는 제한 없이 직접형 상호연결, 보안형 커스텀 연결, 사적 네트워크(예컨대, 기업 인트라넷), 공중 네트워크(예컨대, 인터넷), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 대도시 네트워크(MAN), OMNI(Operating Missions as Nodes on the Internet), 광역 네트워크(WAN), 무선 네트워크, 셀룰러 네트워크 및 다른 통신 네트워크들을 포함하는 임의의 하나 및 유선 및/또는 무선 네트워크의 조합일 수 있다.
일부의 실시예들은 "일실시예(one embodiment)" 또는 "한 실시예(an embodiment)"의 표현 및 그 파생어들을 사용하여 기술될 수 있다. 이들 용어는 그 실시예와 함께 기술되는 특정한 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 본 명세서의 곳곳에서 "일실시예로"라는 문구의 형태는 반드시 동일한 실시예를 일컫는 모든 것이 아니다. 게다가, 일부의 실시예들은 "연결되는(connected)" 및 "결합되는(coupled)"의 표현 및 그 파생어들을 사용하여 기술될 수 있다. 이들 용어는 서로에 대해 반드시 동의어로 의도되는 것은 아니다. 예컨대, 일부의 실시예들은 2 이상의 구성요소들이 서로에 대해 직접적인 물리적이거나 전기적으로 접촉함을 표시하기 위해 "연결되는(connected)" 및/또는 "결합되는(coupled)"의 용어를 사용하여 기술될 수 있다. 그러나, "결합되는(coupled)"이란 용어는 또한 2 이상의 구성요소들이 서로 직접 접촉하지는 않지만 여전히 함께 동작하거나 서로 상호작용함을 의미할 수 있다.
본 명세서에서 사용되는 표기법 및 명명법을 일반적으로 참조하여, 본 명세서의 상세한 설명은 컴퓨터 또는 컴퓨터의 네트워크에서 실행되는 프로그램 절차의 관점에서 제시될 수 있다. 이런 절차적 설명 및 표현은 당업자가 해당 기술분야의 다른 사람들에게 그 발명의 요지를 가장 효과적으로 전달하는데 사용된다.
절차는 본 명세서에서 일반적으로 소정의 결과로 이어지는 일관성 있는 일련의 동작들이라고 이해된다. 동작들은 물리량의 물리적 조작을 요구하는 동작들이다. 보통, 반드시 그런 것은 아니지만, 이런 물리량은 저장되고, 전달되며, 결합되고, 비교되며, 그렇지 않으면 조작될 수 있는 전기적 신호, 자기적 신호 또는 광학적 신호의 형태를 취한다. 원칙상 공통의 사용을 이유로 이런 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 일컫는 것이 때때로 간편하다고 판명되었다. 그러나, 이런 용어들 및 유사한 용어들 모두는 적절한 물리량과 관련되는 것이고 단지 이런 물리량에 적용되는 편의상의 라벨임을 유의해야 한다.
게다가, 수행되는 조작은 사람 운영자가 수행한 정신적인 동작과 통상 관련되는 가령 추가하기 또는 비교하기와 같은 용어들로 흔히 일컬어질 수 있다. 사람 운영자의 이런 능력이 하나 이상의 실시예들의 일부를 형성하는 본 명세서에 기술되는 임의의 동작에서 대부분의 경우 반드시 필요하거나 바람직한 것은 아니다. 그 대신, 동작들은 기계 동작들이다. 다양한 실시예들의 동작들을 수행하기 위한 유용한 기계는 범용의 디지털 컴퓨터 또는 유사한 장치들을 포함한다.
또한, 다양한 실시예들은 이런 동작들을 수행하기 위한 장치 또는 시스템에 관한 것이다. 이런 장치는 요구되는 목적으로 특수하게 구성될 수 있거나, 컴퓨터에 저장되는 컴퓨터 프로그램에 의해 선택적으로 활성되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 본 명세서에서 제시되는 절차가 본래적으로 특정 컴퓨터 또는 다른 장치에 관한 것은 아니다. 다양한 범용 기계는 본 명세서에 시사된 것에 따라 작성되는 프로그램으로 사용될 수 있거나, 요구되는 방법 단계들을 수행하도록 더 특수화된 장치를 구성하는 것이 간편하다고 판명될 수 있다. 다양한 이런 기계들에 대해 요구되는 구조는 제시되는 상세한 설명에 나타날 것이다.
독자(reader)가 기술적 개시의 성질을 신속히 파악할 수 있게 하도록 본 명세서의 요약이 제공됨이 강조된다. 이런 요약의 제시가 청구항들의 범위 또는 의미를 해석하거나 제한하는데 사용되지 않는다고 이해될 것이다. 또한, 상술한 상세한 설명에서, 본 명세서를 간소화하기 위해 다양한 특징들이 하나의 실시예에서 함께 그룹화됨을 알 수 있다. 본 명세서의 이런 방법은 청구된 실시예들이 각 청구항에 명확히 기재되는 것보다 더 많은 특징들을 필요로 한다는 의도를 반영하는 것으로 해석되는 것은 아니다. 그 대신, 하기의 청구항들이 반영하는 바와 같이, 발명의 주제는 개시된 하나의 실시예의 모든 특징 미만 내에 있다. 따라서, 하기의 청구항들은 본 명세서에서 상세한 설명에 통합되며, 각 청구항은 개별 실시예로서 그 자체를 기초로 한다. 첨부된 청구항들에서, "포함하는(including)" 및 "여기서(in which)"란 용어는 각각의 "포함하는(comprising)" 및 "그 점에서(wherein)"이란 용어와 평이한 영어로 동등하게 각각 사용된다. 게다가, "제1의(first)", "제2의(second)", "제3의(third)" 등의 용어는 단지 라벨로 사용되며, 그 객체에 대해 수치적 요건을 부여하려는 의도는 아니다.
상술한 내용들은 본 발명의 개시된 구조의 예들을 포함한다. 물론, 컴포넌트들 및/또는 방법론들의 모든 구상가능한 조합을 기술하는 것은 불가능하지만, 당업자는 많은 추가의 조합과 치환이 가능함을 인식할 수 있다. 따라서, 신규한 구조는 첨부된 청구항들의 사상 및 범위 내에 있는 이런 모든 변경, 수정 및 변형을 포함하는 것으로 의도된다.

Claims (35)

  1. 클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하는 단계;
    수신된 위치 기반 요청을 장소 타입의 카테고리에 매핑하는 단계;
    매핑된 장소 타입의 카테고리에 따라서 지리적 영역을 덮는 복수의 타일을 결정하는 단계; 및
    장소의 세트 중 장소의 제1 서브셋을 검색어와 관련되는 것으로 및 장소의 세트 중 장소의 제2 서브셋을 검색어와 무관한 것으로 플래그 표시하는 단계; 및
    장소의 제1 및 제2 서브셋을 포함하여 복수의 타일을 클라이언트 애플리케이션으로 전송하는 단계를 포함하고,
    위치 기반 요청은 지리적 영역 및 검색어를 포함하고,
    복수의 타일의 각 타일은 장소 타입의 카테고리를 명시하고, 지리적 영역의 부분을 덮고, 장소의 세트를 포함하는 컴퓨터 구현 방법.
  2. 청구항 1에 있어서,
    위치 기반 요청은 모바일 장치의 클라이언트 애플리케이션으로부터 수신되고, 지리적 영역은 모바일 장치의 현재 위치를 포함하고, 지도 상에 오버레이로서 모바일 장치에 디스플레이되기 위해 전송된 복수의 타일은 장소의 수신된 세트에 관하여 모바일 장치의 현재 위치의 디스플레이를 포함하는 컴퓨터 구현 방법.
  3. 청구항 1에 있어서,
    위치 기반 요청은 줌 레벨을 명시하고, 복수의 타일의 각 타일은 줌 레벨의 범위와 연관되고,
    명시된 줌 레벨을 복수의 타일 각각에 연관된 줌 레벨의 범위와 매칭시킴으로써 복수의 타일을 결정하는 단계를 더 포함하는 컴퓨터 구현 방법.
  4. 청구항 1에 있어서,
    복수의 타일은 제1 타일을 포함하고, 제1 타일은 제1 지리적 영역을 덮고, 제1 타일은 제1 지리적 영역 내의 장소의 제1 세트를 포함하고, 장소의 제1 세트는 장소의 전체 세트에서 장소의 전체 세트 중 선택된 장소의 제1 세트의 상대적 중요도에 따라 선택되는 컴퓨터 구현 방법.
  5. 청구항 1에 있어서,
    복수의 타일은 제1 타일 및 제2 타일을 포함하고, 제1 타일은 제1 지리적 영역을 덮고, 제2 타일은 제1 지리적 영역과는 구분되는 제2 지리적 영역을 덮고, 제1 지리적 영역은 제2 지리적 영역보다 큰 컴퓨터 구현 방법.
  6. 청구항 5에 있어서,
    제1 지리적 영역은 제1 지리적 영역이 보다 낮은 밀도의 관련된 장소를 포함한다는 결정에 응답하여 제2 지리적 영역보다 크게 구성되는 컴퓨터 구현 방법.
  7. 청구항 1에 있어서,
    구분되는 인접 지리적 영역을 덮거나 다른 줌 레벨에서 지리적 영역의 적어도 부분을 덮는 위치 기반 요청에 관한 제2 복수의 타일을 결정하는 단계;
    클라이언트 애플리케이션에 제2 복수의 타일을 요청하도록 지시하는 단계;
    클라이언트 애플리케이션으로부터 제2 복수의 타일에 대한 요청을 수신하는 단계; 및
    클라이언트 애플리케이션으로 제2 복수의 타일을 전송하는 단계를 포함하는 컴퓨터 구현 방법.
  8. 청구항 1에 있어서,
    클라이언트 애플리케이션으로부터 제2 위치 기반 요청을 수신하는 단계;
    남은 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외하는 제2 복수의 타일을 결정하는 단계; 및
    클라이언트 애플리케이션으로 제2 복수의 타일을 전송하는 단계를 포함하고,
    제2 위치 기반 요청은 제2 지리적 영역을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청 및 지리적 영역을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩하는 컴퓨터 구현 방법.
  9. 장치 상의 프로세서 회로;
    프로세서 회로 상에서 클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하고, 클라이언트 애플리케이션으로 복수의 타일을 전송하도록 동작하는 통신 컴포넌트; 및
    프로세서 회로 상에서 수신된 위치 기반 요청을 장소 타입의 카테고리에 매핑하고, 지리적 영역을 덮는 매핑된 장소 타입의 카테고리에 따라서 복수의 타일을 타일의 세트로 결정하고, 장소의 세트 중 제1 서브셋을 검색어와 관련되는 것으로 및 제2 서브셋을 검색어와 무관한 것으로 플래그 표시하도록 동작하는 타일 컴포넌트;
    위치 기반 요청은 지리적 영역 및 검색어를 포함하고,
    복수의 타일의 각 타일은 장소 타입의 카테고리를 명시하고, 지리적 영역의 부분을 덮고, 장소의 세트를 포함하는 장치.
  10. 청구항 9에 있어서,
    위치 기반 요청은 줌 레벨을 명시하고, 복수의 타일의 각 타일은 줌 레벨의 범위와 연관되고, 타일 컴포넌트는 명시된 줌 레벨을 복수의 타일 각각에 연관된 줌 레벨의 범위와 매칭시킴으로써 복수의 타일을 결정하도록 동작하는 장치.
  11. 청구항 9에 있어서,
    복수의 타일은 제1 타일을 포함하고, 제1 타일은 제1 지리적 영역을 덮고, 제1 타일은 제1 지리적 영역 내의 장소의 제1 세트를 포함하고, 장소의 제1 세트는 장소의 전체 세트에서 장소의 전체 세트 중 선택된 장소의 제1 세트의 상대적 중요도에 따라 선택되는 장치.
  12. 청구항 9에 있어서,
    복수의 타일은 제1 타일 및 제2 타일을 포함하고, 제1 타일은 제1 지리적 영역을 덮고, 제2 타일은 제1 지리적 영역과는 구분되는 제2 지리적 영역을 덮고, 제1 지리적 영역은 제2 지리적 영역보다 큰 장치.
  13. 청구항 9에 있어서,
    구분되는 인접 지리적 영역을 덮거나 다른 줌 레벨에서 지리적 영역의 적어도 부분을 덮는 위치 기반 요청에 관한 제2 복수의 타일을 결정하도록 동작하는 타일 컴포넌트; 및
    클라이언트 애플리케이션에 제2 복수의 타일을 요청하도록 지시하고, 클라이언트 애플리케이션으로부터 제2 복수의 타일에 대한 요청을 수신하고, 및 클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 동작하는 통신 컴포넌트를 포함하는 장치.
  14. 청구항 9에 있어서,
    클라이언트 애플리케이션으로부터 제2 위치 기반 요청을 수신하고, 클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 동작하는 통신 컴포넌트; 및
    남은 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외하는 제2 복수의 타일을 결정하도록 동작하는 제2 타일 컴포넌트를 포함하고,
    제2 위치 기반 요청은 제2 지리적 영역을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 위치 기반 요청 및 지리적 영역을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩하는 장치.
  15. 명령어를 포함하는 적어도 하나의 비일시적 컴퓨터 판독가능한 저장 매체로서, 명령어는 실행될 때 시스템으로 하여금:
    클라이언트 애플리케이션으로부터 위치 기반 요청을 수신하고;
    수신된 위치 기반 요청을 장소 타입의 카테고리에 매핑하고;
    매핑된 장소 타입의 카테고리에 따라서 지리적 영역을 덮는 복수의 타일을 결정하고; 및
    장소의 세트 중 장소의 제1 서브셋을 검색어와 관련되는 것으로 및 장소의 세트 중 장소의 제2 서브셋을 검색어와 무관한 것으로 플래그 표시하고; 및
    장소의 제1 및 제2 서브셋을 포함하여 복수의 타일을 클라이언트 애플리케이션으로 전송하도록 야기하고,
    위치 기반 요청은 지리적 영역, 검색어 및 줌 레벨을 포함하고,
    복수의 타일의 각 타일은 장소 타입의 카테고리를 명시하고, 지리적 영역의 부분을 덮고, 줌 레벨을 포함하는 줌 레벨의 범위와 연관되고, 장소의 세트를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체.
  16. 청구항 15에 있어서,
    복수의 타일은 제1 타일을 포함하고, 제1 타일은 제1 지리적 영역을 덮고, 제1 타일은 제1 지리적 영역 내의 장소의 제1 세트를 포함하고, 장소의 제1 세트는 장소의 전체 세트에서 장소의 전체 세트 중 선택된 장소의 제1 세트의 상대적 중요도에 따라 선택되는 비일시적 컴퓨터 판독가능한 저장 매체.
  17. 청구항 15에 있어서,
    복수의 타일은 제1 타일 및 제2 타일을 포함하고, 제1 타일은 제1 지리적 영역을 덮고, 제2 타일은 제1 지리적 영역과는 구분되는 제2 지리적 영역을 덮고, 제1 지리적 영역은 제2 지리적 영역보다 큰 비일시적 컴퓨터 판독가능한 저장 매체.
  18. 청구항 15에 있어서,
    실행될 때, 시스템으로 하여금:
    구분되는 인접 지리적 영역을 덮거나 다른 줌 레벨에서 지리적 영역의 적어도 부분을 덮는 위치 기반 요청에 관한 제2 복수의 타일을 결정하고;
    클라이언트 애플리케이션에 제2 복수의 타일을 요청하도록 지시하고;
    클라이언트 애플리케이션으로부터 제2 복수의 타일에 대한 요청을 수신하고; 및
    클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 야기하는 비일시적 컴퓨터 판독가능한 저장 매체.
  19. 청구항 15에 있어서,
    실행될 때, 시스템으로 하여금:
    클라이언트 애플리케이션으로부터 제2 위치 기반 요청을 수신하고;
    줌 레벨에서 남은 영역을 덮고 이전 위치 기반 요청으로부터의 지리적 영역을 덮기 위해 사용되는 타일을 제외하는 제2 복수의 타일을 결정하고; 및
    클라이언트 애플리케이션으로 제2 복수의 타일을 전송하도록 야기하고,
    제2 위치 기반 요청은 제2 지리적 영역 및 줌 레벨을 포함하고, 제2 위치 기반 요청은 이전 위치 기반 요청으로 태그된 줌 레벨, 위치 기반 요청 및 지리적 영역을 포함하고, 제2 지리적 영역은 이전 위치 기반 요청으로부터의 지리적 영역과 중첩하는 비일시적 컴퓨터 판독가능한 저장 매체.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
KR1020167004209A 2013-09-05 2014-07-09 위치 기반 정보의 서버 제어 타일링을 위한 기술 KR102027892B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/018,908 2013-09-05
US14/018,908 US9241240B2 (en) 2013-09-05 2013-09-05 Techniques for server-controlled tiling of location-based information
PCT/US2014/045859 WO2015034578A1 (en) 2013-09-05 2014-07-09 Techniques for server-controlled tiling of location-based information

Publications (2)

Publication Number Publication Date
KR20170047189A KR20170047189A (ko) 2017-05-04
KR102027892B1 true KR102027892B1 (ko) 2019-10-04

Family

ID=52584774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167004209A KR102027892B1 (ko) 2013-09-05 2014-07-09 위치 기반 정보의 서버 제어 타일링을 위한 기술

Country Status (9)

Country Link
US (1) US9241240B2 (ko)
JP (1) JP6515102B2 (ko)
KR (1) KR102027892B1 (ko)
CN (1) CN106471488B (ko)
AU (1) AU2014315668B2 (ko)
CA (1) CA2918213A1 (ko)
IL (1) IL243882B (ko)
MX (1) MX359118B (ko)
WO (1) WO2015034578A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5547860B1 (ja) * 2013-08-05 2014-07-16 ソノー電機工業株式会社 ユーザの現在位置と現在方位角を用いて目的の地理的情報を検索してユーザに提供するユーザ携帯端末
US20150163721A1 (en) * 2013-12-11 2015-06-11 Jdsu Uk Limited Method and apparatus for processing data
US20150290535A1 (en) * 2014-04-15 2015-10-15 King.Com Limited Device, game and methods therefor
US10171939B2 (en) 2014-07-15 2019-01-01 Belkin International, Inc. Control based on geo-dependent conditions
US10200330B2 (en) 2015-12-10 2019-02-05 Facebook, Inc. Techniques for ephemeral messaging with a message queue
US9906480B2 (en) * 2015-12-10 2018-02-27 Facebook, Inc. Techniques for ephemeral messaging with legacy clients
US11704344B2 (en) 2016-10-25 2023-07-18 Here Global B.V. Method and apparatus for determining weather-related information on a tile basis
EP3485388A1 (en) * 2017-09-30 2019-05-22 Beijing Didi Infinity Technology and Development Co., Ltd. Systems and methods for stations loading and display
KR102181345B1 (ko) * 2018-02-20 2020-11-20 한국전자통신연구원 이미지 타일 가시화 정보의 계층적 표현을 이용한 이미지 표현 방법, 이를 이용하는 디바이스 및 시스템
CN110704057B (zh) * 2019-10-09 2021-04-27 腾讯科技(深圳)有限公司 一种基于地图业务的业务处理方法及相关装置
CN114061599A (zh) * 2020-07-31 2022-02-18 华为技术有限公司 导航定位方法、电子设备以及导航定位系统
CN112380302B (zh) * 2020-10-23 2023-07-21 北京建筑大学 基于轨迹数据的热力图生成方法、装置、电子设备以及存储介质
CN112612779A (zh) * 2020-12-29 2021-04-06 清华大学 瓦片数据的迁移方法、装置、设备及存储介质
CN112800470A (zh) * 2021-02-20 2021-05-14 和芯星通科技(北京)有限公司 一种差分数据的管理方法和系统以及服务器和客户端
WO2023077436A1 (en) * 2021-11-05 2023-05-11 Nvidia Corporation Thread specialization for collaborative data transfer and computation
US20230160713A1 (en) * 2021-11-19 2023-05-25 Here Global B.V. Method, apparatus and computer program product for identifying work zones within a map
US11887364B2 (en) * 2022-04-07 2024-01-30 Anthony M. Brunetti Systems and methods for mapping project sites using ground and aerial imagery

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100321399A1 (en) 2009-06-18 2010-12-23 Patrik Ellren Maps from Sparse Geospatial Data Tiles
JP2012515994A (ja) 2009-01-26 2012-07-12 グーグル インコーポレイテッド 密度に基づいて検索結果を表示するシステム及び方法
JP2013037416A (ja) 2011-08-04 2013-02-21 Kokusai Kogyo Co Ltd メッシュデータ検索システム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6577714B1 (en) 1996-03-11 2003-06-10 At&T Corp. Map-based directory system
JP2001060262A (ja) * 1999-08-20 2001-03-06 Shashin Kagaku Co Ltd 大規模画像のディジタル画像情報データベースシステム
CN103398718B (zh) * 2004-03-23 2017-04-12 咕果公司 数字地图描绘系统
JP4437690B2 (ja) * 2004-03-31 2010-03-24 アイシン・エィ・ダブリュ株式会社 ナビゲーション装置及び記憶媒体
CA2533279C (en) 2005-01-18 2011-09-20 Ryan Eccles System and method for processing map data
US7945546B2 (en) 2005-11-07 2011-05-17 Google Inc. Local search and mapping for mobile devices
US20080172632A1 (en) 2006-09-29 2008-07-17 Stambaugh Thomas M Distributed web-based processing, spatial organization and display of information
US7734412B2 (en) 2006-11-02 2010-06-08 Yahoo! Inc. Method of client side map rendering with tiled vector data
US8749585B2 (en) 2007-03-29 2014-06-10 Microsoft Corporation Adding custom content to mapping applications
US8872846B2 (en) 2007-12-04 2014-10-28 The Weather Channel, Llc Interactive virtual weather map
US20110055290A1 (en) 2008-05-16 2011-03-03 Qing-Hu Li Provisioning a geographical image for retrieval
US20090303251A1 (en) 2008-06-10 2009-12-10 Andras Balogh Displaying, processing and storing geo-located information
US20100138294A1 (en) * 2008-12-03 2010-06-03 Microsoft Corporation Provision of location-based advertising
US8037166B2 (en) * 2009-01-26 2011-10-11 Google Inc. System and method of displaying search results based on density
JP4920718B2 (ja) * 2009-04-27 2012-04-18 ヤフー株式会社 広告表示システム及び広告表示方法
US8175794B1 (en) * 2009-10-06 2012-05-08 Google Inc. Switching between best views of a place
US8386715B2 (en) * 2009-11-30 2013-02-26 Nokia Corporation Method and apparatus for tile mapping techniques
US8514968B2 (en) * 2010-09-03 2013-08-20 Qualcomm Incorporated Methods and apparatus for encoding and transmitting mobile device location information
US20120221595A1 (en) 2011-02-25 2012-08-30 Hipmunk, Inc. System and method for displaying hotel information
US20130073374A1 (en) * 2011-09-15 2013-03-21 Stephan HEATH System and method for providing combined coupon/geospatial mapping/ company-local & socially conscious information and social networking (c-gm-c/l&sc/i-sn)
US20130124563A1 (en) * 2011-11-16 2013-05-16 Google Inc. Controlling pre-fetching of map data tiles based on selectable parameters
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
US8803920B2 (en) * 2011-12-12 2014-08-12 Google Inc. Pre-fetching map tile data along a route
US8954860B1 (en) * 2012-08-27 2015-02-10 Google Inc. Method and apparatus for generating and displaying tourist maps
US8849308B2 (en) * 2012-11-21 2014-09-30 Apple Inc. Tiling of map data
US9292189B2 (en) * 2013-09-11 2016-03-22 Facebook, Inc. Techniques to display location-based information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012515994A (ja) 2009-01-26 2012-07-12 グーグル インコーポレイテッド 密度に基づいて検索結果を表示するシステム及び方法
US20100321399A1 (en) 2009-06-18 2010-12-23 Patrik Ellren Maps from Sparse Geospatial Data Tiles
JP2013037416A (ja) 2011-08-04 2013-02-21 Kokusai Kogyo Co Ltd メッシュデータ検索システム

Also Published As

Publication number Publication date
CN106471488B (zh) 2020-03-03
IL243882B (en) 2019-08-29
AU2014315668B2 (en) 2019-09-19
IL243882A0 (en) 2016-04-21
US20150067032A1 (en) 2015-03-05
CA2918213A1 (en) 2015-03-12
JP6515102B2 (ja) 2019-05-15
KR20170047189A (ko) 2017-05-04
MX2016002843A (es) 2017-01-11
JP2017523485A (ja) 2017-08-17
AU2014315668A1 (en) 2016-03-03
WO2015034578A1 (en) 2015-03-12
MX359118B (es) 2018-09-14
US9241240B2 (en) 2016-01-19
CN106471488A (zh) 2017-03-01

Similar Documents

Publication Publication Date Title
KR102027892B1 (ko) 위치 기반 정보의 서버 제어 타일링을 위한 기술
KR101719238B1 (ko) 포워드 인덱스를 사용하여 검색하기 위한 방법, 컴퓨터-판독가능한 비-일시적 저장매체 및 시스템
JP6574807B2 (ja) 場所のポリゴンベースの索引作成
EP2619691B1 (en) Method and apparatus for information aggregation around locations
CN103023962B (zh) 共享媒体文件的技术
JP6062604B2 (ja) 画像レイアウトの決定
CN104935462B (zh) 一种端服务器部署方法及装置
CN105229639B (zh) 短词散列
TWI490523B (zh) 資訊處理方法、伺服器設備及移動終端機
US20090326811A1 (en) Method, Apparatus, and Computer Program Product for Location Sharing
TW201837749A (zh) 基於社交網路的群組查找方法和裝置
JP2016212908A (ja) バーティカルベースのクエリのオプション化
CN110799969B (zh) 语义矢量片
JP2016540428A (ja) 仮想私設ネットワークを用いてデータ使用をレート調整する方法
EP3090534A1 (en) Method for providing on-demand digital representations to mobile devices in other geographic locations
US10713322B2 (en) Field mappings for properties to facilitate object inheritance
EP2846277B1 (en) Techniques for server-controlled tiling of location-based information
CN106796599A (zh) 基于附近位置解释用户查询
US9519667B2 (en) Method of spatial storage of an object by means of a flexible hierarchical structure, and a non-transient storage medium
CN106537381B (zh) 基于装置定向解释用户查询
US10409857B2 (en) Method and system of generating and using a geographical hierarchy model
US10510095B2 (en) Searching based on a local density of entities
CN113761289A (zh) 图学习方法、框架、计算机系统及可读存储介质
CN116070979A (zh) 二派热力图生成方法、装置、设备及计算机可读存储介质
CN114116931A (zh) 数据获取方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right