KR20140075760A - 집성 특징부 식별자를 이용한 지도 요소들 관리 - Google Patents

집성 특징부 식별자를 이용한 지도 요소들 관리 Download PDF

Info

Publication number
KR20140075760A
KR20140075760A KR1020147010891A KR20147010891A KR20140075760A KR 20140075760 A KR20140075760 A KR 20140075760A KR 1020147010891 A KR1020147010891 A KR 1020147010891A KR 20147010891 A KR20147010891 A KR 20147010891A KR 20140075760 A KR20140075760 A KR 20140075760A
Authority
KR
South Korea
Prior art keywords
map
feature
elements
data
map data
Prior art date
Application number
KR1020147010891A
Other languages
English (en)
Other versions
KR102056882B1 (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 KR20140075760A publication Critical patent/KR20140075760A/ko
Application granted granted Critical
Publication of KR102056882B1 publication Critical patent/KR102056882B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • G09B29/007Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods

Abstract

통신 네트워크를 통해 클라이언트 장치로 지도 데이터를 제공하기 위한 컴퓨터-구현 방법은, 비-래스터 포맷에 따르고 클라이언트 장치에서 지리적 영역의 래스터 지도 이미지를 렌더링하기 위한 것인 지도 데이터를 생성하는 단계를 포함한다. 상기 래스터 지도 이미지는 복수의 지도 요소를 포함하고, 각각의 지도 요소는 지리적 영역 내 각각의 물리적 개체 또는 물리적 개체의 일부분에 대응한다. 상기 방법은 또한 복수의 지도 요소 중 둘 이상의 지도 요소를 포함하고 상기 복수의 지도 요소 중 적어도 하나의 지도 요소를 포함하지 않는 지도 특징부의 기술을 생성하는 단계를 포함하며, 상기 지도 특징부에 포함된 지도 요소는 관련 물리적 개체 또는 동일 물리적 개체의 부분들에 대응한다. 지도 특징부의 기술을 생성하는 단계는 지도 특징부에 대응하는 지도 데이터의 일부분의 지시자를 제공하는 단계와 상기 지도 특징부를 고유하게 식별하는 지도 특징부 식별자를 제공하는 단계를 포함한다. 상기 방법은 통신 네트워크를 통해 지도 데이터 및 지도 특징부의 기술을 클라이언트 장치로 전송되게 하는 단계를 더 포함한다.

Description

집성 특징부 식별자를 이용한 지도 요소들 관리{MANAGING MAP ELEMENTS USING AGGREGATE FEATURE IDENTIFIERS}
본 발명은 지도 렌더링 시스템, 가령, 전자 지도 디스플레이 시스템에 관한 것이며, 더 구체적으로, 개별 지도 요소(map element)를 포함하는 지도 데이터(map data)를 이용해 지도 이미지(map image)가 렌더링되는 지도 렌더링 시스템(map rendering system)에 관한 것이다.
본원에 제공된 배경 기술은 본원의 맥락을 일반적으로 제공하기 위한 목적을 가진다. 본원의 발명자의 작업은, 이 배경기술 섹션에 기재되는 범위는 물론, 출원 시점에서 공지 기술의 자격을 갖지 않을 수 있는 기재의 양태까지, 본 발명에 비해 종래 기술로 명시적으로 또는 묵시적으로도 인정되지 않는다.
오늘날, 지리적 영역의 지도가 다양한 장치, 가령, 모바일 전화기, 자동차 내비게이션 시스템, 핸드-헬드 글로벌 측위 시스템(GPS: global positioning system) 유닛 및 컴퓨터 상에서 실행되는 소프트웨어 애플리케이션에 의해 디스플레이될 수 있다. 애플리케이션 및/또는 사용자 선호도에 따라서, 지도는 지형적 데이터, 거리 데이터, 도시 철도 정보, 트래픽 데이터 등을 디스플레이할 수 있다. 덧붙여, 일부 애플리케이션은 상호대화 모드(interactive mode)로 지도를 디스플레이하여, 사용자가 예를 들어 줌 레벨(zoom level)을 변경하거나 "카메라"를 새 장소로 팬(pan)하도록 다양한 컨트롤(라디오 버튼(radio button), 스크롤바(scrollbar) 등)을 동작시킬 수 있다. 일부 경우에서 사용자는 또한 특정 정보의 디스플레이를 선택하거나 선택해제할 수 있다. 예를 들어, 사용자는 자전거 도로의 디스플레이를 켜기 위해 적절한 컨트롤을 동작시킬 수 있다.
지도 이미지를 렌더링하기 위해, 클라이언트 장치는 전용 서버로부터 래스터 이미지(raster image)를 수신하는 것이 일반적이다. 예를 들어, 지도 서버(map server)가 인터넷 상에서 동작할 수 있고, 특정 지리적 영역에 대해 휴대망 그래픽스(PNG: Portable Network Graphics) 포맷의 이미지를 다양한 클라이언트 장치로 제공할 수 있다. 래스터 이미지가 클라이언트 장치에서 렌더링되기 비교적 쉽지만, 일반적으로 래스터 이미지 데이터는 종합 지도를 위한 많은 양의 저장 공간을 필요로 한다. 또한, 클라이언트 장치에서 래스터 이미지를 효율적으로 조작하는 것이 어렵다. 예를 들어, 선택된 영역 상에서 줌 인(zoom in)하기 위해, 서버로부터 새 래스터 이미지 데이터가 불러와지거나, 눈에 띌만한 품질 손실과 함께 이용 가능한 래스터 이미지 데이터가 확대된다. 덧붙이자면, 지도 이미지의 시각적 속성을 변경하기 위해, 클라이언트 장치는 지도 서버로부터 새로운 래스터 이미지 데이터를 요청해야 한다.
하나의 실시예에서, 통신 네트워크를 통해 클라이언트 장치로 지도 데이터를 제공하기 위한 컴퓨터-구현 방법은, 비-래스터 포맷에 따르고 클라이언트 장치에서 지리적 영역의 래스터 지도 이미지를 렌더링하기 위한 것인 지도 데이터를 생성하는 단계를 포함한다. 상기 래스터 지도 이미지는 복수의 지도 요소를 포함하고, 각각의 지도 요소는 지리적 영역 내 각각의 물리적 개체 또는 물리적 개체의 일부분에 대응한다. 상기 방법은 또한 복수의 지도 요소 중 둘 이상의 지도 요소를 포함하고 상기 복수의 지도 요소 중 적어도 하나의 지도 요소를 포함하지 않는 지도 특징부의 기술을 생성하는 단계를 포함하며, 상기 지도 특징부에 포함된 지도 요소는 관련 물리적 개체 또는 동일 물리적 개체의 부분들에 대응한다. 지도 특징부의 기술을 생성하는 단계는 지도 특징부에 대응하는 지도 데이터의 일부분의 지시자를 제공하는 단계와 상기 지도 특징부를 고유하게 식별하는 지도 특징부 식별자를 제공하는 단계를 포함한다. 상기 방법은 통신 네트워크를 통해 지도 데이터 및 지도 특징부의 기술을 클라이언트 장치로 전송되게 하는 단계를 더 포함한다.
또 다른 실시예에서, 통신 네트워크 상에서 동작하는 컴퓨팅 장치는 지도 데이터 생성기 및 지도 특징부 제어기를 포함한다. 상기 지도 데이터 생성기는 클라이언트 장치에서 지리적 영역의 래스터 지도 이미지를 렌더링하기 위한 지도 데이터를 생성하며, 상기 지도 데이터는 비-래스터 포맷에 따라 복수의 기하학적 형태를 특정하고, 상기 래스터 지도 이미지는 지리적 영역 내 복수의 물리적 개체를 도시한다. 지도 특징부 제어기는 복수의 물리적 개체로부터 선택된 둘 이상의 물리적 개체의 그룹 또는 하나의 물리적 개체의 둘 이상의 부분들에 대응하는 지도 특징부의 기술을 생성하며, 지도 특징부는 복수의 물리적 개체 중 적어도 하나의 물리적 개체에 대응하지 않는 지도 특징부의 기술을 생성하기 위해, 상기 지도 특징부 제어기는 지도 특징부에 대응하는 지도 데이터의 일부분의 지시자를 제공하고 상기 지도 특징부를 고유하게 식별하는 지도 특징부 식별자를 제공한다. 상기 컴퓨팅 장치는 통신 네트워크를 통해 클라이언트 장치로 지도 데이터 및 지도 특징부의 기술이 전송되게 한다.
또 다른 실시예에서, 컴퓨팅 장치에서 상호대화형 지도 콘텐츠를 제공하기 위한 방법이, 통신 네트워크를 통해 비-래스터 포맷에 따르는 지리적 영역에 대한 지도 데이터를 수신하는 단계를 포함한다. 상기 지도 데이터를 수신하는 단계는, 복수의 지도 요소의 각각의 지도 요소의 기하학적 형태를 각각 특정하는 복수의 기술어를 수신하는 단계를 포함하며, 각각의 기술어는 대응하는 지도 요소를 렌더링하기 위해 독립적으로 해석 가능하다. 상기 방법은 복수의 지도 요소 중 둘 이상의 지도 요소를 포함하고 상기 복수의 지도 요소 중 적어도 하나의 지도 요소를 포함하지 않는 지도 특징부의 기술을 수신하는 단계를 더 포함하여, 상기 지도 특징부에 포함된 지도 요소가 지리적 영역 내 관련 물리적 개체들 또는 단일 물리적 개체의 일부분들에 대응하도록 한다. 덧붙여, 지도 특징부의 기술을 수신하는 단계는 복수의 지도 요소 중 어느 지도 요소가 지도 특징부와 연관되는지에 대한 지시자를 수신하는 단계를 포함한다. 또한 상기 방법은 복수의 지도 요소를 렌더링하는 단계를 포함하는, 사용자 인터페이스를 통해 디스플레이될 래스터 지도 이미지를 생성하도록 지도 데이터를 해석하는 단계, 및 사용자 인터페이스를 통해 복수의 지도 요소 중 둘 이상의 지도 요소가 지도 특징부와 연관된다는 지시자를 제공하는 단계를 포함한다.
도 1은 하나의 실시예에 따라, 지도 제어기를 갖는 지도 서버가 클라이언트 장치로 지도 이미지를 렌더링하기 위한 지도 데이터 및 지도 이미지의 일부로서 렌더링되는 복수의 지도 요소를 집성한 지도 특징부의 기술을 제공하는 시스템의 블록도이다.
도 2는 도 1의 시스템에서 동작할 수 있는 예시적 지도 제어기의 블록도이다.
도 3A는 도 1의 시스템에서 동작하는 클라이언트 장치에서 디스플레이될 수 있는 복수의 건물, 평야, 및 보행자 길을 포함하는 지도 특징부를 갖는 예시적 지도이다.
도 3B는 복수의 지도 타일로 구성된 래스터 지도 이미지로서 렌더링될 수 있는 도 3A의 지도이며, 지도 특징부는 서로 다른 지도 타일에서 렌더링되는 지도 요소를 포함한다.
도 3C는 복수의 지도 요소가 지도 특징부의 구성요소로서 자동으로 선택되는 도 3A의 지도이다.
도 4는 지도 데이터 및 지도 특징부 기술을 도 1의 시스템에서 동작할 수 있는 클라이언트 장치로 제공하기 위한 정보의 예시적 교환을 도시하는 상호대화 다이어그램이다.
도 5는 도 1의 시스템에서 동작할 수 있는 지도 서버에서의 지도 데이터 및 지도 특징부 기술을 생성하기 위한 예시적 방법의 흐름도이다.
도 6은 도 1의 시스템에서 동작할 수 있는 지도 서버에서의 지도 특징부 기술을 생성하기 위한 예시적 방법의 흐름도이다.
도 7은 도 1의 시스템에서 동작할 수 있는 클라이언트 장치에서 지도 데이터 및 지도 특징부 기술을 처리하기 위한 예시적 방법의 흐름도이다.
일반적으로 말하자면, 지도 서버(map server)가 비-래스터 포맷(non-raster format)의 지도 데이터를 클라이언트 장치로 제공하여, 다양한 지도 요소, 가령, 건물, 공원, 평야, 물줄기, 도로의 구간, 자전거 도로, 및 보행자 길을 보여주는 래스터 지도 이미지를 렌더링하고, 하나의 공통 관리 유닛에 대응하거나 그 밖의 다른 방식으로 논리적으로 관련된 몇 개의 개별 지도 요소를 갖는 적어도 하나의 집성 지도 특징부(aggregate map feature)의 설명을 제공한다. 가령, 비-래스터 포맷은 벡터 그래픽 포맷일 수 있다. 상기 지도 서버는, 클라이언트 장치의 사용자가 상기 집성 지도 특징부와 연관된 복수의 지도 요소를 효과적으로 선택하고 조작할 수 있도록 지도 데이터의 어느 부분이 집성 지도 특징부에 대응하는지에 대한 지시자(indication)를 제공할 수 있다. 이러한 방식으로, 사용자는 집성 지도 특징부를 참조하여 상기 집성 지도 특징부를 구성하는 다양한 지도 요소의 시각적 특성을 자동으로 강조, 제거, 이동, 및 업데이트할 수 있다. 또한 상기 지도 서버는 차후의 통신에서 집성 지도 특징부를 참조하기 위해 지도 서버와 클라이언트가 사용할 수 있는 고유의 지도 특징부 식별자(map feature identifier)를 제공할 수 있다. 더 구체적으로, 지도 특징부 식별자를 이용해, 클라이언트 장치가 집성 지도 특징부와 관련된 추가 정보, 가령, 새로운 줌 레벨에서 보여질 또는 새로운 유형의 지도가 선택될 때 보여질 추가 지도 요소를 렌더링하기 위한 지도 데이터를 요청할 수 있다. 덧붙여, 지도 서버가 클라이언트 장치에 시각적 스타일 데이터(visual style data), 즉, 지도 요소, 가령, 선 두께, 선 색상, 채움 색상 등의 시각적 속성과 관련된 정보를 제공할 때 지도 특징부 식별자를 이용할 수 있다.
집성 지도 특징부는 학문 기관, 가령, 대학교, 상업적 개체, 가령, 쇼핑 몰, 사업체, 가령, 기업, 소공장(factory), 또는 공장(plant), 종합 병원, 거주 구역, 또는 지리적 영역 내 관련 물리적 개체를 포함하는 그 밖의 다른 것에 대응할 수 있다. 일부 경우, 예를 들어, 물리적 개체가 서로 다른 지도 타일(map tile)(이하에서 더 상세히 설명됨)에 제공된 복수의 지도 요소로 표현되는 경우, 집성 지도 특징부가 동일한 물리적 개체의 복수의 부분에 대응할 수 있다. 일반적으로, 지도 특징부는 복수의 지도 요소를 갖는 집성형(aggregate)이거나, 단 하나의 지도 요소만 갖는 비-집성형(non-aggregate)일 수 있다. 예를 들어, 지도 서버는, 클라이언트 장치에서 개별적으로 해석 및 렌더링되고, 줌 레벨 또는 지도 유형을 업데이트할 때 그 밖의 다른 지도 요소에 독립적으로 추가 또는 제거될 수 있으며, 개별 라벨(individual label)이 할당되는 등의 특정 지도 특징부(map feature)로서 건물의 벡터-기반 기술(vector-based description)을 제공할 수 있다. 다른 한편으로는, 집성 지도 특징부가 동일한 유형의 복수의 지도 요소(가령, 복수의 건물의 복합체) 또는 상이한 유형의 복수의 지도 요소(가령, 건물, 공원, 및 보행자 길)를 포함할 수 있다. 덧붙여, 일부 시나리오에서의 집성 지도 특징부가 "네스티드(nested)" 구조물을 갖고, 복수의 지도 요소를 갖는 하나 또는 복수의 지도 특징부를 포함한다. 예를 들어, 일부 실시예에서, 각각의 지도 요소는 각자의 지도 특징부를 정의하고, 특정 지도 특징부 그룹들이 더 큰 집성 지도 특징부로 집성되며, 상기 더 큰 지도 특징부 중 일부가 훨씬 더 큰 집성 지도 특징부로 집성된다. 또한, 집성 지도 특징부는 개별 지도 타일(map tile)로 렌더링되는 지도 요소 또는 특정 크기의 지도 이미지의 일부분을 포함할 수 있다.
간결성을 위해, 본원에서, 단 하나의 지도 요소를 포함하는 지도 특징부는 지도 요소라고 지칭될 수 있다. 또한 이하의 설명은 주로 복수의 지도 요소를 갖는 집성 지도 특징부에 관련되기 때문에, 간단히, 이하에서 때때로 이러한 지도 특징부는 지도 특징부라고 지칭될 수 있다.
도 1을 참조하면, 클라이언트 장치로 지도 및 지도 특징부를 제공하기 위한 기법뿐 아니라 지도 특징부를 효율적으로 조작하기 위해 클라이언트 장치에서 제공된 데이터를 이용하기 위한 기법이 시스템(10)에서 구현될 수 있다. 하나의 실시예에서, 시스템(10)은 지도 서버(12), 네트워크(16)를 통해 상기 지도 서버(12)로 통신 가능하게 연결된 클라이언트 장치(14), 및 상기 지도 서버(12)로 통신 가능하게 연결된 지도 데이터베이스(18)를 포함한다. 상기 네트워크(16)는 광역 네트워크(WAN: wide area network) 가령, 인터넷, 지역 네트워크(LAN: local area network), 또는 그 밖의 다른 임의의 적합한 유형의 네트워크일 수 있다. 지도 및 특징부 데이터를 클라이언트 장치(15)로 제공하기 위해, 상기 지도 서버(12)는 전자 메시지를 생성하고 네트워크(16)를 통해 이들 메시지를 송신할 수 있다. 실시예에 따라, 도 1에 도시된 바와 같이 지도 데이터베이스(18)는 네트워크(16) 또는 또 다른 통신 링크를 통해 지도 서버(12)로 연결될 수 있다. 간결성을 위해, 도 1에 상기 지도 서버(12), 클라이언트 장치(14), 및 지도 데이터베이스(18)의 하나의 예시가 도시되어 있다. 그러나 그 밖의 다른 실시예에서, 시스템(10)은 둘 이상의 지도 서버(12), 둘 이상의 클라이언트 장치(14), 및/또는 둘 이상의 지도 데이터베이스(18)를 포함할 수 있다. 예를 들어, 하나의 실시예에서, 지도 서버(12)는, 데스크톱 컴퓨터, 휴대용 컴퓨터, 태블릿 컴퓨터, 스마트폰 등을 포함하는 다양한 클라이언트 장치(14)로 지도 데이터를 제공한다.
상기 지도 서버(12)는 프로세서(20)와, 가령, 상기 프로세서(20) 상에서 직접적으로(가령, 컴파일된 코드로서) 또는 간접적으로(가령, 프로세서(20) 상에서 실행되는 또 다른 애플리케이션에 의해 해석되는 스크립트로서) 실행될 수 있는 컴퓨터 명령의 형태로 된 지도 제어기(map controller)(30)를 저장하는 컴퓨터-판독형 메모리(22)를 포함할 수 있다. 컴퓨터-판독형 메모리(22)는 컴퓨터 명령 및 상기 컴퓨터 명령이 런타임에서 연산하는 데이터를 저장하기 위한 휘발성 메모리(가령, 랜덤 액세스 메모리, 즉 RAM)를 포함하고, 하나의 실시예에서, 영속 메모리(persistent memory), 가령, 하드 디스크를 포함할 수 있다. 일부 실시예에서, 지도 서버(12)는 복수의 프로세서(20)를 포함한다. 덧붙여, 일부 실시예에서, 지도 제어기(30)가 하드웨어 구성요소, 펌웨어 구성요소, 소프트웨어 구성요소, 또는 이들의 조합을 이용해 구현될 수 있다.
하나의 실시예에서, 지도 제어기(30)는 비-래스터 포맷(non-raster format), 가령, 벡터 그래픽 포맷으로 된 선택된 지리적 영역이 지도 데이터로서 클라이언트 장치(14)로 제공되도록, 다양한 지도 요소의 기술(description)을 생성한다. 일반적으로, 벡터-기반 지도 데이터는 (가령, 점 및 상기 점들을 연결하는 경로에 대한 수학적 기술을 이용해) 다양한 지리적 형태를 특정하고 이들 형태가 다양한 지도 요소, 가령, 도로, 건물, 공원, 물줄기 등을 렌더링하도록 위치설정되어야 하는 방식을 가리킬 수 있다. 예를 들어, 선분(line segment)의 래스터 이미지를 구성하는 각각의 픽셀을 특정하기보다는, 선분의 벡터-기반 기술이 선분의 2개의 종단점을 특정하고 상기 2개의 종단점이 직선에 의해 연결됨을 가리킬 수 있다. 본원에서 지도 요소들의 벡터-기반 기술은 벡터 기술어(vector descriptor), 또는 단순히 벡터라고 지칭될 수 있으며, 하나 또는 복수의 벡터 기술어의 세트는 벡터 데이터라고 지칭될 수 있다. 일반적으로, 지도 요소는 특정 벡터 기술어를 이용해 기재될 수 있다. 도 2를 참조하여 더 상세히 언급될 바와 같이, 지도 제어기(30)는 지리적 영역의 지도가 클라이언트 장치에서 렌더링될 줌 레벨, 클라이언트 장치에서 지도가 렌더링될 때 따를 지도 유형(가령, 지형 지도, 교통 지도, 철도 지도 등), 이전에 제공된 지도 데이터 등의 관점에서 지리적 영역의 벡터-기반 기술을 생성할 수 있다. 또한 일부 실시예에서, 상기 지도 서버는 벡터가 렌더링될 방식을 가리키는 스타일 데이터와 별개로 지도 콘텐츠를 기술하는 벡터 데이터를 제공할 수 있다.
지도 제어기(30)는 하나 또는 복수의 지도 요소를 갖는 지도 특징부의 기술을 생성하는 지도 특징부 제어기(32)를 포함할 수 있다. 하나의 실시예에서, 지도 특징부 제어기(32)는 특정 지도 특징부에 대응하는 벡터 기술어(와, 따라서 지도 요소)에 대한 지시자를 생성한다. 예를 들어, 지도 특징부 제어기(32)는 집성 지도 특징부의 집성 특징부 식별자를 특정하는 필드와, 이 뒤에, 집성 특징부 식별자와 관련된 지도 특징부의 리스트를 포함하는 메시지를 생성할 수 있다. 상기 지도 특징부의 리스트는 벡터 기술어 및/또는 라벨 데이터를 포함할 수 있다. 대안적으로, 지도 특징부의 리스트는 각각의 특징부 식별자를 포함할 수 있다. 어느 경우라도, 메시지를 파싱할 때, 클라이언트 장치(14)는 리스트에 포함되는 지도 특징부가 동일한 집성 특징부 식별자와 연관됨을 결정할 수 있다. 지도 데이터의 어느 부분(가령, 어느 벡터 기술어 세트)이 특정 지도 특징부와 연관되는지를 결정하기 위해, 지도 특징부 제어기(32)는 지도 데이터베이스(18)에 저장된 집성 그래픽 영역에 대한 지도 콘텐츠 테이블(34)을 이용할 수 있다.
도 1을 계속 참조하면, 지도 콘텐츠 테이블(34)은 개별 지도 요소, 가령, 건물, 도로, 공원 등에 대한 레코드(record)를 포함할 수 있다. 각각의 지도 요소에 대해, 지도 콘텐츠 테이블(34)은 지도 요소의 기하적 형태를 특정하는 벡터 기술어를 제공할 수 있다. 하나의 실시예에서, 상기 지도 콘텐츠 테이블(34)은 추가 정보, 가령, 스타일 데이터(style data)(상기 스타일 데이터는 서로 다른 지도 유형에 따라 지도 요소를 렌더링하기 위해 복수의 시각적 스타일을 특정할 수 있음), 지도 요소가 또 다른 겹치는 지도 요소 위에 또는 아래에 렌더링되는지를 가리키기 위한 심도 지시자(depth indication), 라벨 정보, 지도 요소가 가시화되거나 가시화되지 않게 되는 줌 레벨을 가리키기 위한 줌 데이터 등을 제공한다. 또한 지도 콘텐츠 테이블(34)은 지도 요소와 연관된 지도 특징부가 존재하는지 그렇다면 무엇인지를 가리킬 수 있다. 예를 들어, 도 1에 도시된 지도 콘텐츠 테이블(34)의 일부분에서, 유형 건물의 지도 요소, 유형 도로의 지도 요소, 유형 공원의 지도 요소가 서로 다른 벡터 기술어에 의해 기술되지만 동일한 지도 특징부 F 1 과 연관된다.
지도 제어기(30)는 특정 지리적 영역(하나의 실시예에 따라, 특정 줌 레벨 및/또는 특정 지도 유형)에 대해, 실시예에 따라, 단일 전자 메시지로 또는 일련의 전자 메시지로, 지도 데이터를 클라이언트 장치(14)로 제공할 수 있다. 더욱이, 하나의 실시예에서, 지도 제어기(30)는 지도 타일 기술어의 세트로서 지도 데이터를 생성하여, 각각의 지도 타일 기술어가 지도 타일, 즉, 특정 크기(가령, 256×256 픽셀)의 지도 이미지의 일부분을 기술하도록 한다. 개별 지도 타일에 의해 나타내어지는 지리적 영역의 크기는 지도 타일이 연관된 줌 레벨에 따라 달라질 수 있다. 일반적으로, 줌 레벨은 (가령, 시점의 높이를 변경시킨 결과로서) 지도 이미지 또는 지도 이미지의 일부분까지의 겉보기 거리(apparent distance)에 대응한다. 하나의 실시예에서, 낮은 줌 레벨에서의 단일 지도 타일일수록 높은 줌 레벨에서의 단일 지도 타일보다 넓은 지리적 면적을 도시한다. 상기 지도 제어기(30)는 벡터 그래픽 포맷에 따라 지도 타일 기술어 각각을 생성할 수 있고, 클라이언트 장치, 가령, 도 1의 클라이언트 장치(14)는 하나 또는 복수의 타일을 포함하는 래스터 이미지를 로컬하게 생성할 수 있다. 일부 시나리오에서, 지도 특징부의 지도 요소들이 서로 다른 지도 타일로 제공될 수 있다. 예를 들어, 지도 제어기(30)는 지도 요소가 개별적인 지도 요소로 제공되는 경우, 단일 물리적 개체, 가령, 건물의 각각의 부분에 대응하는 복수의 지도 요소를 생성할 수 있다.
도 1을 다시 참조하면, 클라이언트 장치(14)가 명령을 실행시키기 위한 프로세서(50)와 명령 및 데이터를 저장하기 위한 메모리(52)를 포함할 수 있다. 상기 클라이언트 장치(14)는 또한, 사용자로부터 입력을 수신하고 사용자에게 출력을 제공하기 위한 입력 장치(54)와 출력 장치(56)를 포함할 수 있다. 입력 장치(54)는 키보드, 마우스 및 터치스크린 중 하나 이상을 포함할 수 있고, 출력 장치(56)는 터치스크린 또는 그 밖의 다른 유형의 모니터를 포함할 수 있다. 상기 클라이언트 장치(14)는 상호대화형 사용자 인터페이스를 구현하기 위해 입력 장치(54) 및 출력 장치(56)를 제어하기 위해, 다양한 소프트웨어 구성요소, 가령, 장치 드라이버, 운영 체제(OS) 이벤트 핸들러 등을 포함할 수 있다. 덧붙여, 프로세서(50) 상에서 실행되는 소프트웨어 애플리케이션은 이들 소프트웨어 구성요소를 활용하여 애플리케이션-특정 사용자 인터페이스를 제공할 수 있다.
실시예에 따라, 상기 클라이언트 장치(14)는 개인 컴퓨터, 가령, 데스크톱 컴퓨터, 랩톱 컴퓨터, 또는 태블릿 PC, 워크스테이션, 휴대용 통신 장치, 가령, 스마트폰, 또는 그 밖의 다른 임의의 적합한 컴퓨팅 장치일 수 있다. 하나의 실시예에서, 상기 클라이언트 장치(14)는 이른바, 특정 컴퓨팅 및/또는 저장 기능에 대해 또 다른 컴퓨팅 장치에 의존하는 씬 클라이언트(thin client)이다. 예를 들어, 하나의 이러한 실시예에서, 메모리(52)는 휘발성 메모리, 가령, RAM만 포함하고, 영속 메모리(persistent memory)를 갖는 프로그램 및/또는 저장 유닛은 클라이언트 장치(14)의 외부에 위치한다. 또 다른 실시예에서, 메모리(52)는 휘발성 메모리 구성요소와 영속성 메모리 구성요소를 모두 포함한다.
브라우저 애플리케이션(60)이 프로세서(50) 상에서 실행되는 컴퓨터 판독형 명령의 세트를 포함할 수 있다. 일반적으로, 브라우저 애플리케이션(60)은 콘텐츠, 가령, 텍스트, 이미지, 임베디드 비디오 등과, 마크-업 언어(mark-up language), 가령, HTML(Hypertext Markup Language)로 된 명령을 포함하는 웹 페이지를 액세스하고 상기 마크-업 언어로 된 명령에 따라 출력 장치(56) 상에 콘텐츠를 렌더링한다. 이러한 목적으로, 브라우저 애플리케이션(60)은 HTTP(Hypertext Transfer Protocol)에 따르며, HTML 콘텐츠를 파싱하고, SSL(Secure Socket Layer) 프로토콜에 따라 데이터를 인코딩하며, 디지털 인증서를 요청 및 검증하는 데이터 패킷을 생성 및 처리하기 위한 기능뿐 아니라, 웹 페이지 데이터의 내비게이션, 렌더링, 및 관리와 관련된 다양한 사용자 명령어를 수신하기 위한 사용자 인터페이스 기능까지 구현할 수 있다. 일부 실시예에서, 브라우저 애플리케이션(60)은 웹 페이지에 제공된 스크립트 언어(가령, 자바스크립트(Javascript))로 된 명령을 해석(interpret)하도록 구성된다.
지도 렌더링 엔진(62)은 브라우저 애플리케이션(60)의 구성요소로서 실행될 수 있다. 그러나 또 다른 실시예에서, 지도 렌더링 엔진(62)에 유사한 소프트웨어 모듈은 자립형 애플리케이션(standalone application) 또는 또 다른 애플리케이션의 구성요소로서 실행될 수 있다. 실시예에 따르면, 지도 렌더링 엔진(62)은 플러그인(plugin)(가령, 브라우저 애플리케이션(60)의 기능을 확장하고 프로세서(50) 상에서 실행되는 컴파일된 명령의 세트), 스크립트(가령, 런타임 시 브라우저 애플리케이션(60)에 의해 해석되는 스크립트 언어로 된 명령의 세트), 또는 또 다른 적합한 소프트웨어 구성요소일 수 있다. 하나의 예시적 시나리오에 따르면, 클라이언트 장치(14)를 동작시키는 사용자가 임베디드 상호대화형 지도를 포함하는 웹 페이지를 방문할 때 지도 렌더링 엔진(62)이 다운로드된다. 더 구체적으로, 상기 웹 페이지는 온라인 지도 서버 및 특정 지리적 위치로의 제 1 하이퍼링크뿐 아니라, 상기 제 1 하이퍼링크에 따르는 온라인 지도 서버로부터 수신된 지도 데이터를 렌더링하기 위해 요구되는 상기 지도 렌더링 엔진(62)의 카피(copy)로의 제 2 하이퍼링크도 포함할 수 있다. 상기 지도 렌더링 엔진(62)은 지도 서버(12)로부터 벡터 데이터(일부 실시예에서, 스타일 데이터)를 수신하고, 수신된 벡터 데이터를 이용해 대응하는 지도 이미지를 렌더링하며, 브라우저 애플리케이션(60)에 의해 할당된 특정 영역 내에 지도 이미지가 디스플레이되게 할 수 있다. 예를 들어, 브라우저 애플리케이션(60)은 지도 이미지를 디스플레이하기 위한 HTML5 Canvas 요소를 생성할 수 있다.
덧붙여 지도 렌더링 엔진(62)은 예를 들어 브라우저 애플리케이션(60)의 사용자 인터페이스를 통한 상호대화형 컨트롤을 제공할 수 있다. 상기 상호대화형 컨트롤은 사용자가 지리적 영역 또는 면적, 지도 유형(가령, 기본형, 교통, 철도), 줌 레벨 등을 선택할 수 있게 할 수 있다. 덧붙여, 하나의 실시예에서, 지도 렌더링 엔진(62)은 개별 지도 요소(또는 비-집성 지도 특징부)에 추가로 집성 지도 특징부를 선택하기 위한 상호대화형 사용자 컨트롤을 제공하는 특징부 조작기(feature manipulator)(64)를 포함한다. 예를 들어, 지도 특징부 조작기(64)는 복수의 지도 요소를 갖는 지도 특징부를 조작하기 위해 추가 버튼을 제공 및/또는 추가 키스트로크(keystroke) 이벤트를 인식할 수 있다. 상기 특징부 조작기(64)는 지도 서버(12)로부터 수신된 지도 특징부 기술을 처리할 수 있고, 사용자가 특정 지도 특징부를 선택하기로 결정한 것에 응답하여, 지도 특징부와 연관된 지도 요소를 자동으로 식별 및 선택할 수 있다. 더 구체적인 예시를 들면, 사용자는 지도 상에 도시된 개별 지도 요소를 클릭할 수 있고, 특징부 조작기(64)는 지도 요소가 복수의 지도 요소를 갖는 집성 지도 특징부와 연관됨을 결정하고 전체 지도 특징부, 즉, 클릭된 지도 요소뿐 아니라 사용자가 클릭하지 않은 하나 이상의 추가 지도 요소까지 강조할 수 있다. 또 다른 예를 들면, 특징부 조작기(64)는 마우스 포인터가 집성 지도 특징부와 연관된 지도 요소 위에서 "호버(hover)"함을 결정하고 앞서 기재된 시나리오와 유사하게, 상기 지도 요소를 포함하는 전체 지도 특징부를 자동으로 강조할 수 있다. 더 일반적으로, 상기 특징부 조작기(64)는 마우스 이벤트 또는 호버, 터치, 및 그 밖의 다른 유형의 사용자 상호대화를 지원하기에 적합한 또 다른 장치로부터의 이벤트를 처리할 수 있다.
간결성을 위해, 클라이언트 장치(14)는 단일 프로세서(50)와 함께 도시된다. 그러나 또 다른 실시예에서의 클라이언트 장치(14)는 추가 프로세싱 유닛(도시되지 않음), 가령, 출력 장치(56) 상에서의 이미지 렌더링을 촉진시키도록 구성된 그래픽 처리 유닛(GPU: graphics processing unit)을 포함할 수 있다. 덧붙여, 하나의 실시예에서, 브라우저 애플리케이션(60)은 지도 이미지를 효율적으로 생성하기 위한 그래픽 기능의 라이브러리를 이용할 수 있다. 예를 들어, 브라우저 애플리케이션(60)은 3D 그래픽, 가령, WebGL을 지원하는 소프트웨어 라이브러리를 이용할 수 있다. 또 다른 예를 들면, 상기 메모리(52)는 클라이언트(14) 상에서 실행되는 다양한 애플리케이션, 가령, 브라우저 애플리케이션(60)이 애플리케이션 프로그래밍 인터페이스(API)를 통해 액세스할 수 있는 그래픽을 렌더링하기 위한 기능을 갖는 플러그인, 가령, OpenGL® 또는 Direct3D® 라이브러리를 저장할 수 있다. 또한 일부 실시예에서, 메모리(52)는 출력 장치(56)를 통해 이미지의 효율적인 렌더링을 촉진시키는 추가 소프트웨어 구성요소를 저장한다. 예를 들어, 메모리(52)는 Adobe® Flash® 플러그인 또는 O3D 플러그인을 저장할 수 있다.
브라우저 애플리케이션(60)에 추가로 또는 이의 대안으로서, 지도 렌더링 엔진(62)이 임의의 적합한 애플리케이션, 가령, 맵핑 애플리케이션(mapping application)에서 동작할 수 있다. 브라우저 애플리케이션(60)과 유사하게, 상기 맵핑 애플리케이션은 메모리(52)에 저장되고 클라이언트 장치(14) 또는 이와 유사한 장치의 하나 이상의 프로세서 상에서 실행 가능한 명령의 세트를 포함할 수 있다. 일부 구현예에서, 맵핑 애플리케이션은 (가령, 대응하는 브라우저 API를 통해) 브라우저 애플리케이션(60)에 의해 제공되는 네트워킹 기능을 이용한다. 또 다른 구현예에서, 상기 맵핑 애플리케이션은 지도 서버(12)를 액세스하기 위해 TCP, IP, HTTP 등을 지원하는 적어도 부분적인 브라우저 기능, 가령, 통신 스택(communication stack)을 포함한다.
이제 도 2를 참조하면, 지도 제어기(80)가, 예를 들어, 지도 제어기(30)처럼 도 1의 지도 서버(12) 내에서 동작하거나, 하나 또는 복수의 클라이언트 장치로 지도 데이터를 제공하도록 구성된 또 다른 장치 내에서 동작할 수 있다. 상기 지도 제어기(80)는 소프트웨어 모듈로서 구현되는 몇 가지 구성요소(가령, 컴퓨터 판독형 매체 상에 저장되고 하나 또는 복수의 프로세서에 의해 해석 가능한 컴퓨터 명령), 하드웨어 모듈, 펌웨어 모듈, 또는 이들의 임의의 적합한 조합을 포함할 수 있다. 일반적으로, 지도 제어기(80)는 클라이언트 장치, 가령, 클라이언트 장치(14)로부터의 특정 지리적 영역에 대응하는 지도 데이터에 대한 요청을 처리하도록 구성될 수 있다. 예를 들어, 상기 지도 제어기(80)는 위도 41°52′43″ 및 경도 -87°38′11″를 중심으로 하는 2-마일-폭의 영역에 대응하는 지도 데이터에 대한 요청을 수신할 수 있다. 상기 요청은 또한 지도 데이터가 요청된 줌 레벨을 가리킬 수 있다. 상기 요청은 또한 지도 유형, 가령, 기본형, 교통형, 철도형 등을 가리킬 수 있다.
하나의 실시예에서, 지도 제어기(80)는 지도 데이터 생성기(82), 스타일 생성기(84), 지도 특징부 제어기(86), 및 지도 데이터의 레포지토리(repository), 가령, 도 1의 지도 데이터베이스(18)와 구성요소(82, 84, 및 86) 간 통신을 제공하기 위한 데이터베이스 인터페이스 모듈(88)을 포함한다. 동작 중에, 지도 데이터 생성기(82)는 가령 클라이언트 장치(14)로 지도 콘텐츠로서 제공되는 다양한 지도 요소에 대한 벡터-기반 지도 데이터를 생성한다. 이러한 목적으로, 상기 지도 데이터 생성기(82)는 데이터베이스 인터페이스 모듈(88)을 통해 지도 서버와 통신할 수 있다. 상기 지도 데이터 생성기(82)는 지도 요소의 기하적 형태를 특정하는 벡터 기술어를 생성할 수 있고, 일부 경우, 라벨 데이터, 심도 지시자, 및 그 밖의 다른 파라미터를 상기 지도 데이터의 일부로서(또는 지도 데이터에 추가로) 더 제공할 수 있다. 일부 실시예에서, 상기 지도 데이터 생성기(82)는 지도 타일 기술어의 세트로서 지도 데이터를 생성하며, 하나의 실시예에 따라, 각각의 지도 타일 기술어가 하나의 지도 타일을 기술하도록 한다. 개별 지도 타일에 의해 나타내어지는 지리적 영역의 크기는 지도 타일이 연관되는 줌 레벨에 따라 달라져서, 낮은 줌 레벨에서의 단일 지도 타일일수록 높은 줌 레벨에서의 단일 지도 타일보다 더 넓은 지리적 영역을 도시하도록 한다. 상기 지도 데이터 생성기(82)는 벡터 그래픽 포맷에 따르는 각각의 지도 타일 기술어를 생성할 수 있고 클라이언트 장치는 하나 또는 복수의 타일에 대응하는 지리적 영역에 대한 래스터 이미지를 로컬하게 생성할 수 있다. 각각의 타일이 개별적으로 서로에 독립적으로 렌더링될 수 있지만, 일부 실시예에서, 지도 데이터 생성기(82)는 단일 래스터 이미지를 생성하도록 복수의 타일을 다 함께 렌더링한다.
덧붙여, 지도 스타일 생성기(84)가 클라이언트 장치에서 지도 콘텐츠에 적용되기 위한 스타일 데이터를 생성할 수 있다. 일반적으로 스타일은 각각의 고유 스타일 식별자에 의해 식별될 수 있고 각각의 스타일은 지도 요소를 렌더링하기 위한 하나 또는 복수의 시각적 스타일(visual style)에 대응할 수 있다. 상기 시각적 스타일은 벡터-기반 지도 데이터를 렌더링할 때 사용될 시각적 특성을 특정할 수 있다. 상기 지도 스타일 생성기(84)는 특징부-유형 단위로 스타일 데이터를 제공할 수 있다. 예를 들어, 지도 데이터 생성기(82)는 각각의 건물에 대한 벡터 데이터를 유형 건물인 지도 특징부로서 제공할 수 있고 지도 스타일 생성기(84)는 클라이언트 장치가 이 유형의 지도 특징부에 대응하는 모든 벡터 기술어에 적용하는 스타일 데이터를 제공할 수 있다.
지도 특징부 제어기(86)는 대응하는 지도 데이터와 함께 클라이언트 장치로 제공될 지도 특징부의 기술어를 생성할 수 있다. 앞서 언급된 지도 특징부 제어기(32)에 유사하게, 지도 특징부 제어기(86)는 비-래스터 지도 데이터의 어느 부분이 특정 지도 특징부에 대응하는지에 대한 지시자를 생성하도록 구성될 수 있다. 상기 지도 특징부 제어기(86)는 클라이언트 장치 및/또는 지도 제어기(80)가 구현되는 장치에서 사용되기 위한 고유의 지도 특징부 식별자를 생성하도록 더 구성될 수 있다. 일부 실시예에서, 상기 지도 특징부 제어기(86)는 지도 특징부와 연관된 각각의 벡터 기술어에 대해 플래그 또는 그 밖의 다른 지시자를 제공한다. 예를 들어, 벡터 기술어는 벡터 기술어에 의해 특정된 지도 요소가 속하는 지도 특징부가 존재하는 경우 무엇인지를 특정하는 특징부_식별자 필드를 갖는 데이터 구조체일 수 있다. 집성 지도 특징부가 복수의 지도 특징부를 포함할 수 있고, 각각의 지도 특징부는 각자의 특징부 식별자를 갖기 때문에, 상기 지도 특징부 제어기(86)는 개별 지도 특징부들이 하나의 집성 지도 특징부로 그룹화되는 방식을 가리키기 위한 추가 데이터를 더 제공할 수 있다. 예를 들어, 상기 지도 특징부 제어기(86)는 비-집성 지도 특징부의 식별자로 필드 특징부_식별자를 채울 수 있고, 또한 대응하는 집성 지도 특징부의 식별자로 필드 집성_특징부_식별자를 채울 수 있다.
또 다른 실시예에서, 상기 지도 특징부 제어기(86)는 지도 특징부와 연관된 모든 지도 요소를 포함하는 지도 특징부 영역의 경계부를 특정한다. 상기 경계부는 임의의 적합한 방식으로 특정될 수 있는데, 가령, 위도/경도 튜플(tuple)의 세트, 벡터 그래픽 포맷으로 된 다각형(polygon), 등으로 특정될 수 있다. 여러 경우에서, 상기 지도 특징부 영역의 경계부는 지도 타일의 경계부와 일치하지 않는다. 덧붙여, 지도 특징부 영역은 복수의 지도 타일 내 지도 요소들을 포함할 수 있다.
또한, 일부 시나리오에서 지도 특징부 제어기(86)는 클라이언트 장치에서 지도 특징부와 함께 디스플레이되는 공통 텍스트 라벨(가령, 문숫자열)을 생성한다. 일부 경우, 지도 특징부를 구성하는 지도 요소가 개별 라벨과도 연관됨을 알아야 한다. 또한, 지도 특징부 제어기(86)는 클라이언트 장치에게, 하나의 집성 지도 특징부와 연관되는 일부 또는 모든 지도 요소 또는 특징부에 공통되는 스타일 정보를 제공할 수 있다. 예를 들어, 상기 지도 특징부 제어기(86)는 철도 지도의 일부로서 렌더링되는 특정 집성 지도 특징부 MF 1 에 대해, 모든 연관된 지도 요소가 철도 지도 유형에 대한 시각적 스타일 VS 1 에 대응하는 스타일 S 1 을 이용해 클라이언트 장치에서 디스플레이된다는 지시자를 생성할 수 있고 이 지시자를 클라이언트 장치로 제공할 수 있다. 이러한 방식으로, 서로 다른 유형(가령, 건물, 도로, 공원)의 지도 요소가 유사한 선 두께, 색상, 등을 이용해 디스플레이될 수 있다. 또 다른 실시예에서, 지도 특징부 제어기(86)는 클라이언트 장치에서 지도 특징부가 강조될 때만 사용되는 집성 지도 특징부에 대한 공통의 스타일을 특정한다. 하나의 집성 지도 특징부를 구성하는 지도 특징부들 중 일부가 특정 지도 특징부 유형과 연관될 때, 상기 클라이언트 장치는 집성 지도 특징부가 강조되지 않을 때 대응하는 지도 특징부 유형에 따라 벡터 기술어에 스타일을 적용하고, 지도 특징부가 강조될 때 집성 지도 특징부에 대해 특정된 스타일을 적용할 수 있다.
일부 실시예에 따라, 지도 제어기(80)가 특정 영역 또는 지리적 영역에 대응하는 제 1 지도 이미지(가령, 기본 지도 이미지)를 렌더링하기 위한 지도 데이터를 클라이언트 장치로 제공한 후, 지도 서버는 동일한 영역에 대응하는 상이한 제 2 지도 이미지(가령, 교통 지도 이미지)를 렌더링하기 위한 수정 데이터(modification data)를 클라이언트 장치로 제공한다. 그 후, 상기 클라이언트 장치는 제 1 지도 이미지를 렌더링하기 위해 이전에 제공된 지도 데이터 및 수정 데이터를 이용해 제 2 지도 이미지를 렌더링하고 상기 지도 서버는 제 1 지도 이미지와 제 2 이미지를 모두 렌더링하는 데 사용되는 지도 데이터를 클라이언트 장치로 2번 이상 제공할 필요는 없다. 시나리오에 따라, 수정 데이터는 새로운 벡터 기술어의 형태로 된 이전에 제공된 지도 데이터에의 하나 이상의 추가, (특징부 식별자를 이용해 식별될 수 있는) 이전에 제공된 지도 데이터의 하나 또는 복수의 부분의 삭제, 또는 (역시 특징부 식별자를 이용해 식별될 수 있는) 이전에 제공된 지도 데이터의 하나 또는 복수의 부분의 수정을 포함할 수 있다. 이들 경우 중 일부에서, 추가되는 벡터 기술어는 집성 지도 특징부의 식별자를 포함할 수 있다. 덧붙여, 삭제되는 지도 특징부에 대한 특징부 식별자는 단일 특징부 식별자만 이용해 복수의 지도 요소를 효율적으로 제거하도록 집성 지도 특징부를 식별할 수 있다.
그 후, 하나의 지리적 영역 내 관련 물리적 개체들의 그룹에 대응하는 집성 지도 특징부를 도시하는 지도의 몇 가지 예시가 도 3A-3C를 참조하여 설명된다. 특히, 대학의 복수의 건물, 평야, 및 보행자 통로를 포함하는 예시적 지도 특징부가 도 3A를 참조하여 설명되며, 복수의 지도 타일로의 래스터 지도 이미지의 예시적 분할이 도 3B에 도시되며, 지도 특징부의 몇 가지 구성요소의 예시적 선택이 도 3C에 도시된다. 도 1을 다시 참조하면, 지도 렌더링 엔진(62)이 예를 들어 지도 제어기(30)에 의해 제공되는 지도 데이터를 이용해 도 3A-3C의 지도 이미지를 생성할 수 있다.
도 3A를 먼저 참조하면, 지도 이미지(100)는 워싱턴주 시애틀의 몇 개의 도시 블록을 도시하며 이들 블록 중 일부는 Seattle University(시애틀 유니버시티)에 속한다. 더 구체적으로, 지도 이미지(100)은 몇 개의 지도 요소, 가령, 보행자 통로(120)로 상호연결된 대학 건물(102, 104, 106, 108, 및 110)을 도시한다. 대학교는 또한 일반 도로에 의해 건물(102-110)과 분리된 체육 및/또는 여가 구조물(112, 130, 및 132)을 포함한다. 하나의 실시예에서, 지도 요소(102-132)는 개별 벡터 기술어에 의해 기술되어, 지도 요소(102-132) 각각이 개별적으로 그 밖의 다른 지도 요소와 독립적으로 렌더링될 수 있게 한다. 덧붙여, 벡터 기술어는 각자의 비-집성 지도 특징부를 정의할 수 있고, 이들 중 적어도 일부는 개별 라벨(가령, "Student Center(스튜던트 센터)")와 연관될 수 있다. 또한 블록(140 및 142)은 Seattle University와 연관되고, Seattle University와 연관되지 않은 인접 도시 블록에 적용되는 색상 또는 음영과 상이한 색상 또는 음영을 이용해 렌더링된다. 그러나 블록(140 및 142)은 적어도 지도 이미지(100)가 대응하는 줌 레벨에서 개별적으로 도시되는 구조물, 공원, 또는 그 밖의 다른 물리적 개체를 포함하지 않는다. 하나의 실시예에서, 다양한 도시 블록, 가령, 블록(140 및 142)은 각자의 영역을 둘러싸는 다각형을 특정하는 벡터 기술어의 형태로 제공된다.
지도 이미지(100)에 도시된 기하적 형태를 기술하는 지도 데이터에 추가로, 클라이언트 장치는 지도 요소(102-142)가 하나의 집성 지도 특징부와 연관된다는 지시자를 수신할 수 있다. 이를 위해, 공통의 특징부 식별자가 지도 요소(102-142)에 대응하는 각각의 벡터 기술어에 대해 제공될 수 있다. 또 다른 실시예에서, 지도 요소(102-142)에 대응하는 벡터 기술어가 공통의 지도 특징부에 대응한다는 지시자를 갖는 헤더(header) 및/또는 트레일러(trailer) 부분을 포함하는 데이터의 블록으로 제공된다. 일반적으로, 지도 요소(102-142)가 집성 지도 특징부와 연관된다는 지시자에 대한 임의의 적합한 기법이 사용될 수 있다.
예시적 시나리오에 따르면, Seattle University에 대응하는 집성 지도 특징부가 다양한 지도 타일에 지도 요소를 가진다. 예를 들어, 도 3B에 도시된 바와 같이, 지도 이미지(100)는 지도 타일(150, 152, 154, 및 156)로 구성될 수 있다. 지도 타일(150-156) 각각은 지도 데이터를 이용해 생성되는 래스터 이미지의 일부분일 수 있다. 예시적 구현예에서, 지도 데이터는 클라이언트 장치로 전송될 때 지도 타일에 따라 그룹화된다. 상기 클라이언트 장치는 각각의 지도 타일을 다른 지도 타일에 독립적으로 렌더링하도록 구성될 수 있다. 대안적으로, 클라이언트 장치는 복수의 타일에 대응하는 지도 데이터를 수신하며, 각각의 지도 타일을 대응하는 래스터 이미지로서 개별적으로 렌더링하기보다, 상기 클라이언트 장치가 복수의 지도 타일에 대응하는 단일 래스터 이미지를 생성할 수 있다. 도 3B의 예시에서, 지도 요소(102-110, 120, 140, 및 142)가 지도 타일(152)에 제공되며, 상기 지도 요소(130 및 132)는 지도 타일(156)에 제공되고 지도 요소(112)는 지도 타일(154)에 제공된다. 복수의 지도 타일에 대응하는 래스터 이미지를 생성할 때, 클라이언트 장치는 지도 타일에 제공된 지도 요소와 집성 특징부 간 연관관계를 유지하여, 사용자가 복수의 지도 타일에 걸쳐 있는 집성 지도 특징부를 선택 및 조작할 수 있게 한다.
또한, 일부 경우, 집성 지도 특징부가 동일한 단일(unitary) 지도 요소, 가령, 건물, 공원, 호수 등의 일부분에 대응하는 지도 요소를 포함할 수 있다. 예를 들어, 특정 건물의 표현의 3분의 2가 하나의 지도 타일 내 제 1 지도 요소로서 제공되고, 상기 건물의 표현의 나머지 3분의 1이 또 다른 지도 타일 내 제 2 지도 요소로서 제공될 수 있다. 이 시나리오에서의 지도 서버는 각각 대응하는 지도 요소를 포함하는 2개의 지도 타일의 개별 기술(description)을 생성할 수 있으며, 이들 기술을 클라이언트 장치로 전송할 수 있다. 그러나 클라이언트 장치가 자신의 사용자 인터페이스를 통해 제 1 지도 요소 및 제 2 지도 요소를 단일 지도 요소로서 표시할 수 있게 하기 위해서, 상기 지도 서버는 제 1 지도 요소와 제 2 지도 요소를 포함하는 집성 지도 특징부의 기술도 생성할 수 있다.
덧붙여, 하나의 실시예에서, 지도 요소 또는 특징부를 집성 지도 특징부로 그룹화하는 것은 복수 레벨로 구현될 수 있다. 예를 들어, 도 3C에 도시된 바와 같이, 몇 개의, 그러나 전부는 아닌, Seattle University와 연관된 지도 요소가 지도 특징부(180)에 대응할 수 있다. 도 3A에 도시된 예시에서, 지도 특징부(180)의 기술은 (도 3A 및 3B를 참조하여 앞서 설명된 요소(102-119 및 120)일 수 있는) 대응하는 지도 요소를 포함하는 지리적 영역의 경계부를 특정한다. 예시적 시나리오에서, 사용자가 Student Center라고 라벨링된 건물 옆을 지도 상에서 클릭하며, 상기 지도 특징부(180)의 경계부가 둘러싸는 영역이 선택된다.
다음으로, 하나 또는 복수의 집성 지도 특징부를 포함하는 지도 이미지를 렌더링하기 위한 정보의 예시적 교환이 도 4를 참조하여 기재된다. 메시지 교환(200)은 클라이언트 장치(가령, 도 1의 클라이언트(14))에 포함되거나 그 밖의 다른 방식으로 연관되는 사용자 인터페이스(202), 상기 클라이언트 장치에서 동작하는 지도 렌더링 엔진(204), 및 서버(206)(가령, 도 1의 지도 서버(12))를 포함한다. 도 1로 다시 돌아와서, 사용자 인터페이스는 브라우저(60)에 의해 제공될 수 있으며, 동적 지도 렌더링 엔진(204) 및 서버(206)는 각각, 구성요소(62 및 12)에서 구현될 수 있다.
사용자 명령어에 응답하여, 사용자 인터페이스(202)는 특정 영역 R에 대한 지도 데이터에 대한 요청(210)을 생성하고 상기 요청을 지도 렌더링 엔진(204)으로 제공할 수 있다. 상기 요청(210)은 가령 구성요소(202 및 204)가 구현되는 클라이언트 장치 내부의 전자 메시지로서 전송될 수 있다. 하나의 실시예에서, 요청(210)은 줌 레벨 및 지도 유형(가령, 기본형 지도)을 특정한다. 동적 지도 렌더링 엔진(204)은 통신 네트워크를 통해 서버(206)로 전송될, 지도 데이터에 대한 요청(212)을 생성할 수 있다. 상기 요청(212)은 (가령, GPS 장치를 이용해 획득될 수 있는) 위도 및 경도를 이용하거나, 그 밖의 다른 적합한 방식으로 영역 R을 특정할 수 있다.
요청(212)에 응답하여, 서버(206)는 지도 이미지를 렌더링하기 위해, 비-래스터 포맷으로 된, 가령, 벡터 그래픽 포맷으로 된 지도 데이터를 포함하는 응답(214)을 생성할 수 있다. 상기 응답(114)은 임의의 적합한 방식으로, 가령, 하나 또는 복수의 타일 기술어 T 1 , T 2 , … T N 로 구성된 지도 데이터를 포함할 수 있다. 일반적으로, 지도 데이터가 임의의 개수의 타일, 예컨대, 단일 타일에 대해 제공될 수 있다. 타일 각각에 대해, 응답(214)은, 각각 적합한 벡터 그래픽 포맷에 따르는 벡터 기술어를 이용해 특정될 수 있는 다양한 지도 요소 또는 비-집성 지도 특징부 F 1 , F 2 , … F M 를 기술할 수 있다. 비-집성 지도 특징부 F 1 , F 2 , … F M 에 추가로, 응답(214)은 비-집성 지도 특징부 F 1 , F 2 , … F M 중 둘 이상을 포함하는 집성 지도 특징부 FA를 기술할 수 있다. 앞서 언급된 바와 같이, 집성 지도 특징부 F A 의 기술은 비-집성 지도 특징부 F 1 , F 2 , … F M 중 어느 것이 지도 특징부 F A 와 연관되는지에 대한 지시자, 다음 번 통신에서의 지도 특징부 F A 를 식별하기 위한 고유 특징부 식별자, 특정 상태 하에서의 지도 특징부 F A 와 함께 디스플레이될 라벨 등을 포함할 수 있다. 동적 지도 렌더링 엔진(204)은 지도 이미지를 렌더링하고, 지도 이미지를 사용자 인터페이스(202)로 제공하며, 대응하는 이벤트(216)를 생성할 수 있다. 일부 실시예에서, 동적 지도 렌더링 엔진(204)은 미래 사용을 위해 수신된 지도 데이터(그리고, 이용 가능하다면 스타일 데이터도 함께)를 메모리에 저장할 수 있다.
차후, 사용자는 사용자 인터페이스(202)를 통해 제공되는 상호대화형 컨트롤을 이용해 집성 지도 특징부를 선택할 수 있다. 이에 응답하여, 사용자 인터페이스(202)는 지도 특징부가 선택됐음을 가리키기 위해 이벤트(218)를 생성할 수 있다. 하나의 실시예에서, 이벤트(218)는 사용자가 선택한 지도 이미지 상의 위치만 특정하고, 사용자가 집성 지도 특징부를 선택하기를 원함을 가리킨다. 상기 지도 렌더링 엔진(204)은 사용자가 선택한 지도 요소를 결정하고, 동일한 집성 지도 특징부와 연관된 그 밖의 다른 모든 지도 요소를 자동으로 식별하며, 지도 이미지를 업데이트하여 상기 지도 특징부가 선택됐음을 가리킬 수 있다(이벤트(220)). 예를 들어, 도 3C를 다시 참조하면, 이벤트(220)는 둘러싸인 영역 내 지도 요소가 강조되게 할 수 있다.
다음으로 도 1의 시스템 또는 이와 유사한 환경에서 동작하는 컴퓨팅 장치에서 구현될 수 있는 몇 가지 예시적 방법이 도 5-7을 참조하여 설명된다. 이들 방법은 임의의 적합한 프로그래밍 언어로 개발되고 유형(tangible)의 비-일시적(non-transitory), 컴퓨터 판독형 매체(가령, 하나 또는 복수의 하드 디스크 드라이브)에 저장되고 하나 또는 복수의 프로세서 상에서 실행될 수 있는 컴퓨터 프로그램으로서 구현될 수 있다. 예를 들어, 도 5 및 6의 방법은 지도 서버(12)에서 구현될 수 있고, 도 7의 방법은 클라이언트 장치(14)에서 구현될 수 있다. 도 5-7의 방법이 개별 컴퓨터, 가령, 서버 또는 개인 컴퓨터(PC) 상에서 실행될 수 있지만, 이들 방법의 적어도 일부를, 가령, 클라우드 컴퓨팅 환경에서, 복수의 컴퓨터를 이용하는 분산 방식으로 구현하는 것이 또한 가능하다.
먼저 도 5를 참조하면, 집성 지도 특징부의 기술(description)과 함께 지도 데이터를 생성하기 위한 예시적 방법(300)은 예를 들어 지도 제어기(30 또는 80)에서 구현될 수 있다. 하나의 실시예에 따르면, 특정 지리적 영역에 대응하는 제 1 지도 이미지를 렌더링하기 위한 비-래스터 포맷으로 된 지도 데이터가 블록(302)에서 생성된다. 상기 지도 데이터는, 가령, 벡터 그래픽 포맷에 따르고 각자의 지도 요소를 기술하는 벡터 기술어를 포함할 수 있다. 하나의 실시예에서, 벡터 기술어 각각은 각자의 지도 특징부를 정의한다. 상기 지도 데이터는 지도 서버 및 클라이언트 장치에 의해 인식되는 특정 포맷에 따르는 전자 메시지의 형태로 전송되기 위한 데이터 구조체로서 제공될 수 있다.
그 후, 블록(304)에서, 집성 지도 특징부에 대응하는 지도 데이터의 일부분이 특정된다. 상기 집성 지도 특징부는 몇 개의 비-집성 지도 특징부뿐 아니라, 가령, 추가 정보, 가령, 공통 라벨, 심도 지시자 등까지 포함할 수 있다. 지도 특징부에 대응하는 지도의 일부분의 지시자가 지도 특징부의 기술어에 포함될 수 있다. 블록(306)에서, 지도 특징부에 대한 고유의 특징부 식별자가 제공된다. 일부 경우, 상기 고유의 특징부 식별자는 지도 데이터베이스, 가령, 도 1의 데이터베이스(18)로부터 불러와질 수 있다. 또 다른 경우, 고유의 특징부 식별자는 방법(300)의 실행 중에 생성된다. 임의의 경우, 고유의 특징부 식별자가 블록(304)에서 생성된 지시자와 함께 지도 특징부의 기술어에 포함될 수 있다.
블록(308)에서, 지도 데이터 및 지도 특징부의 기술어가 클라이언트 장치로 제공된다. 예를 들어, 하나 또는 복수의 전자 메시지가 통신 네트워크를 통해 클라이언트 장치로 전송될 수 있다.
이제 도 6을 참조하면, 지도 특징부 기술을 생성하기 위한 예시적 방법(350)이 가령, 지도 특징부 제어기(86) 또는 이와 유사한 모듈에서 구현될 수 있다. 하나의 실시예에서, 방법(350)의 단계들 중 적어도 일부가 앞서 기재된 방법(300)의 블록(304-306)에서 실행된다.
블록(352)에서, 선택된 지리적 영역, 줌 레벨, 및 지도 유형에 대한 하나의 지도 이미지에 포함될 지도 요소들이 식별된다. 그 후, 블록(354)에서 둘 이상의 지도 요소를 포함하는 집성 지도 특징부가 식별되고, 블록(356)에서 각각의 지도 요소에 대한 벡터 기술이 제공된다. 블록(358)에서, 블록(352)에서 식별된 지도 요소들 중 어느 것이 지도 특징부와 연관되는지에 대한 지시자가 생성된다. 하나의 실시예에서, 지도 요소 각각은 각자의 특징부 식별자를 갖는 비-집성 지도 특징부로서 제공되고, 블록(358)에서 생성된 지시자는 특징부 식별자의 리스트를 포함한다. 특징부 식별자의 리스트는 개별 지도 특징부의 기술어와 함께, 또는 개별적으로 제공될 수 있다. 또 다른 실시예에서, 블록(358)에서 생성되는 지시자는 벡터 기술어 중 어느 것이 집성 지도 특징부와 연관되는지를 가리키기 위해 벡터 기술어의 리스트의 일부분을 제한하는 하나 이상의 플래그를 포함한다.
도 7은 클라이언트 장치에서의 지도 데이터 및 지도 특징부 기술을 처리하기 위한 예시적 방법(400)의 흐름도이다. 하나의 실시예에 따르면, 상기 방법(400)은 도 1에 도시된 클라이언트 장치(14)에서 구현된다.
블록(402)에서, 비-래스터 포맷으로 된 지도 데이터가 지도 서버로부터 수신된다. 하나의 실시예에서, 상기 지도 데이터는 지도 데이터의 어느 부분이 집성 지도 특징부에 대응하는지를 가리킨다. 블록(404)에서 상기 지도 데이터는 해석되어 다양한 지도 요소를 렌더링할 수 있다. 그 후, 블록(406)에서, 사용자 인터페이스를 통해 특정 지도 요소가 선택된다. 예를 들어, 사용자는 지도에 도시된 특정 건물을 클릭 또는 터치할 수 있다. 그 후 블록(408)에서 선택된 지도 요소와 연관된 지도 특징부를 선택하기 위한 요청이 수신된다. 이에 응답하여, 방법(400)은 선택된 지도 요소가 연관되는 지도 특징부를 식별한다(블록(410)). 블록(412)에서, 또한 지도 특징부와 연관된 하나 이상의 추가 지도 요소가 식별된다. 그 후 블록(414)에서 지도 이미지는 집성 지도 특징부와 연관된 복수의 지도 요소의 자동 선택을 반영하도록 업데이트될 수 있다. 예를 들어, 상기 지도 이미지는 지도 특징부에 속하는 모든 가시적인 지도 요소를 강조하도록 업데이트될 수 있다.
본 명세서 전체에 걸쳐, 복수의 사례는 구성요소, 동작, 또는 구조물을 하나의 단일 사례로서 구현할 수 있다. 하나 이상의 방법의 개별적인 동작이 별개의 동작들로서 도시되고 기술되었지만, 개별 동작들 중 하나 이상은 동시에 수행될 수 있고, 동작은 반드시 도시된 순서로 수행되어야 하는 것은 아니다. 예시적 구성에서 개별 구성요소로서 제공된 구조물 및 기능들이 조합된 구조물 또는 구성요소로서 구현될 수 있다. 마찬가지로, 단일 구성요소로서 제공된 구조물 및 기능들은 개별 구성요소로서 구현될 수 있다. 이들 및 그 밖의 다른 변형, 수정, 추가, 및 개선은 본 발명의 범위 내에 있다. 예를 들어, 네트워크(16)는 LAN, MAN, WAN, 모바일, 유선 또는 무선 네트워크, 사설 네트워크, 가상 사설 네트워크의 임의의 조합을 비-제한적으로 포함할 수 있다.
덧붙여, 특정 실시예가 본원에서 로직 또는 복수의 구성요소, 모듈, 또는 메커니즘을 포함하는 것으로 기술된다. 모듈은 소프트웨어 모듈(가령, 기계 판독형 매체 상에 내장된 코드 또는 전송 신호로 된 코드) 또는 하드웨어 모듈을 구성할 수 있다. 하드웨어 모듈은 특정 동작을 수행할 수 있는 유형의 유닛이고 특정 방식으로 구성 또는 배열될 수 있다. 예시적 실시예에서, 하나 이상의 컴퓨터 시스템(가령, 자립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(가령, 프로세서 또는 프로세서 그룹)이 소프트웨어(가령, 애플리케이션 또는 애플리케이션 부분)에 의해 본원에 기재된 바의 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 구성될 수 있다.
다양한 실시예에서, 하드웨어 모듈은 특정 동작을 수행하기 위해 (가령, 특수 프로세서, 가령, 현장 프로그램 가능한 게이트 어레이(FPGA: field programmable gate array), 또는 주문형 집적 회로(ASIC: application-specific integrated circuit)로서) 영구적으로 구성된 전용 회로 또는 로직을 포함할 수 있다. 하드웨어 모듈은 또한 특정 동작을 수행하도록 소프트웨어에 의해 일시적으로 구성된 (가령, 범용 프로세서 또는 또 다른 프로그램 가능한 프로세서 내에 포함되는) 프로그램 가능한 로직 또는 회로를 포함할 수 있다. 따라서, 용어 하드웨어는 유형의 개체를 포함하며, 특정 방식으로 동작하도록 또는 본원에 기재된 특정 동작을 수행하도록 물리적으로 구성된, 또는 영구적으로 구성된(가령, 하드와이어링된), 또는 일시적으로 구성된(가령, 프로그램된) 개체인 것으로 이해되어야 한다. 하드웨어 모듈이 일시적으로 구성된(가령, 프로그램된) 실시예를 고려하면, 하드웨어 모듈 각각이 임의의 하나의 시점에서 구성되거나 인스턴스화될 필요는 없다. 예를 들어, 하드웨어 모듈이 소프트웨어를 이용해 구성된 범용 프로세서를 포함하는 경우, 범용 프로세서는 서로 다른 때에 각각의 서로 다른 하드웨어 모듈로서 구성될 수 있다. 따라서 소프트웨어는 프로세서를 하나의 시점에서 특정 하드웨어 모듈이도록, 그리고 상이한 시점에서 상이한 하드웨어 모듈이도록 구성할 수 있다.
하드웨어 및 소프트웨어 모듈은 그 밖의 다른 하드웨어 및/또는 소프트웨어 모듈로 정보를 제공하고 이로부터 정보를 수신할 수 있다. 따라서 기재된 하드웨어 모듈은 통신 가능하게 연결된 것으로 간주될 수 있다. 이러한 복수의 하드웨어 또는 소프트웨어 모듈이 동시에 존재하는 경우, 통신은 하드웨어 또는 소프트웨어 모듈을 연결하는 (가령, 적절한 회로 및 버스를 통한) 신호 전송을 통해 얻어질 수 있다. 서로 다른 때에 복수의 하드웨어 모듈 또는 소프트웨어가 구성되고 인스턴스화되는 실시예에서, 이러한 하드웨어 또는 소프트웨어 모듈 간 통신이, 예들 들어, 복수의 하드웨어 또는 소프트웨어 모듈이 액세스하는 메모리 구조물 내 정보의 저장 및 불러오기를 통해 이뤄질 수 있다. 예를 들어, 하나의 하드웨어 또는 소프트웨어 모듈은 동작을 수행하고 상기 동작의 출력을 자신이 통신 가능하게 연결된 메모리 장치에 저장할 수 있다. 그 후, 추가 하드웨어 또는 소프트웨어 모듈이 저장된 출력을 불러오고 처리하기 위해 메모리 장치를 액세스할 수 있다. 또한 하드웨어 및 소프트웨어 모듈은 입력 또는 출력 장치와의 통신을 개시할 수 있고, 자원(가령, 정보의 집합)에 대해 동작할 수 있다.
본원에 기재된 예시적 방법의 다양한 동작이, 관련 동작을 수행하도록 (가령, 소프트웨어에 의해) 일시적으로 구성된, 또는 영구적으로 구성된 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 구성되거나 영구적으로 구성되거나에 무관하게, 이러한 프로세서는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서-구현 모듈을 구성할 수 있다. 본원에서 언급되는 모듈은, 일부 예시적 실시예에서, 프로세서-구현형 모듈을 포함할 수 있다.
마찬가지로, 본원에 기재되는 방법 또는 루틴이 적어도 부분적으로 프로세서-구현형일 수 있다. 예를 들어, 방법의 동작들 중 적어도 일부가 하나 이상의 프로세서 또는 프로세서-구현형 하드웨어 모듈에 의해 수행될 수 있다. 동작들 중 특정 동작의 수행이 단일 기계 내에 위치하는 것 뿐 아니라 복수의 기계에 걸쳐 배치되는 하나 이상의 프로세서에 걸쳐 분산될 수 있다. 일부 예시적 실시예에서, 프로세서 또는 프로세서들은 단일 위치에 (가령, 가정 환경, 사무실 환경 내에, 또는 서버 팜(server farm)으로서) 위치할 수 있으며, 그 밖의 다른 실시예에서 프로세서들은 복수의 위치에 걸쳐 분산되어 있을 수 있다.
또한 하나 이상의 프로세서는 "클라우드 컴퓨팅" 환경에서의 관련 동작의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작의 적어도 일부는 (프로세서를 포함하는 기계의 예시로서) 컴퓨터들의 그룹에 의해 수행될 수 있고, 이들 동작은 네트워크(가령, 인터넷)를 통해, 그리고 하나 이상의 적절한 인터페이스(가령, 애플리케이션 프로그램 인터페이스(API: application program interface))를 통해 액세스될 수 있다.
동작들 중 특정 동작의 수행은 단일 기계 내에 위치하는 것뿐 아니라 복수의 기계에 걸쳐 전개되는 하나 이상의 프로세서에 걸쳐 분산될 수 있다. 일부 예시적 실시예에서, 하나 이상의 프로세서 또는 프로세서 구현 모듈이 단일 지리적 위치 내에(가령, 가정 환경, 사무실 환경, 또는 서버 팜) 내에 위치할 수 있다. 또 다른 예시적 실시예에서, 하나 이상의 프로세서 또는 프로세서-구현형 모듈이 복수의 지리적 위치에 걸쳐 분산될 수 있다.
이 명세서의 일부 부분들이 기계 메모리(가령, 컴퓨터 메모리) 내에 비트 또는 이진 디지털 신호로서 저장된 데이터에 대한 동작들의 알고리즘 또는 심볼적 표현으로 제공되었다. 이들 알고리즘 또는 심볼적 표현은 데이터 처리 분야의 통상의 기술자가 자신의 작업의 요지를 해당 분야의 다른 자에게 전달하기 위해 사용하는 기법의 예시이다. 본원에서 사용될 때, "알고리즘" 또는 "루틴"은 원하는 결과를 이끄는 동작 또는 유사한 처리의 자기 부합적인 시퀀스이다. 이러한 맥락에서, 알고리즘, 루틴 및 동작은 물리 양의 물리적 조작을 포함한다. 이러한 양이 기계에 의해 저장, 액세스, 전송, 조합, 비교, 또는 그 밖의 다른 방식으로 조작될 수 있는 전기적, 자기적, 또는 광학적 신호의 형태를 취할 수 있는 것이 일반적이나, 반드시 그런 것은 아니다. 때때로 일반 용법을 이유로, 이러한 신호를 "데이터", "콘텐츠", "비트", "값", "요소", "심볼", "문자", "항", "수치", "수사" 등의 단어를 이용해 지칭하는 것이 편리하다. 그러나 이들 단어는 적절한 물리 양과 연관된 편리한 라벨에 불과하다.
달리 특정하게 언급되지 않는 한, 가령, "처리", "컴퓨팅", "계산", "결정", "제공", "디스플레이" 등의 단어를 이용한 본원에서의 설명은, 하나 이상의 메모리(가령, 휘발성 메모리, 비-휘발성 메모리, 또는 이들의 조합), 레지스터, 또는 정보를 수신, 저장, 전송, 또는 디스플레이하는 그 밖의 다른 기계 구성요소 내 물리 (가령, 전자적, 자기적, 또는 광학적) 양을 조작하거나 변화하는 기계(가령, 컴퓨터)의 동작이나 프로세스를 지칭할 수 있다.
본원에서 사용될 때, "하나의 실시예" 또는 "실시예"라는 임의의 언급은 실시예와 관련하여 기재되는 특정 요소, 특징부, 구조물, 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 명세서의 다양한 위치에서의 "하나의 실시예에서"라는 구문의 등장이 모두 반드시 동일한 실시예를 지칭하는 것은 아니다.
일부 실시예는 표현 "결합된" 및 "연결된"를 이들의 파생어와 함께 이용해 기재될 수 있다. 예를 들어, 일부 실시예는 둘 이상의 요소가 직접 물리적 또는 전기적으로 접촉하고 있음을 가리키기 위해, 용어 "결합된"을 이용해 기술될 수 있다. 그러나 상기 용어 "결합된"은 둘 이상의 요소가 서로 직접 접촉하지 않지만 서로 협업하거나 상호대화하는 것을 의미할 수도 있다. 실시예는 이러한 맥락에 제한되지 않는다.
본원에 사용될 때, 용어 "포함하다(comprise)", "포함하는(comprising)", "포함하다(include)", "포함하는(including)", "가지다(has)", "갖는(having)" 또는 그 밖의 다른 임의의 변형이 비-배제적 포함(non-exclusive inclusion)을 아우르도록 의도된다. 예를 들어, 요소들의 리스트를 포함하는 프로세서, 방법, 물품, 또는 장치는 반드시 이들 요소들에만 국한되지 않으며, 명시적으로 나열되지 않지만 이러한 프로세스, 방법, 물품, 또는 장치에 내재적인 그 밖의 다른 요소들을 포함할 수 있다. 덧붙여, 명시적으로 달리 언급되지 않는 한, "또는"은 포함적 논리합(inclusive or)을 지칭하며 배타적 논리합을 지칭하는 것이 아니다. 예를 들어, 조건 A 또는 B는 다음 중 임의의 하나에 의해 만족된다: A는 참(또는 존재함) 그리고 B는 거짓(또는 존재하지 않음), A가 거짓(또는 존재하지 않음) 그리고 B가 참(또는 존재함), 및 A와 B 모두 참(또는 존재함).
덧붙여, 단수표현("a" 또는 "an")의 사용이 본원의 실시예의 요소 및 구성요소를 기술하기 위해 사용된다. 이는 편의상 그리고 기술의 일반적인 측면에서 이뤄지는 것에 불과하다. 이러한 기술은 하나 또는 적어도 하나를 포함하는 것으로 읽혀야 하고, 다른 의도가 자명하지 않는 한 단수형은 복수형도 포함한다.
또한, 도면은 단지 예시 목적으로 지도 렌더링 시스템의 바람직한 실시예를 도시한다. 해당 분야의 통상의 기술자라면 다음의 기재로부터 본원에 제공된 구조물 및 방법의 대안적 실시예가 본원에 기재된 원리의 범위 내에서 사용될 수 있음을 쉽게 알 것이다.
해당 분야의 통상의 기술자라면 본원을 읽은 후 본원에 개시된 원리를 이용해 지도 및 지도 특징부 데이터를 제공하기 위한 시스템 및 프로세서에 대한 또 다른 추가 대안적 구조적 및 기능적 설계에 대해 알 것이다. 따라서 특정 실시예 및 애플리케이션이 도시되고 기술되지만, 개시된 실시예는 본원에 개시된 정확한 구조물 및 구성요소에 한정되지 않음을 이해할 것이다. 본원에 개시된 방법 및 장치의 배열, 동작, 및 세부사항의 다양한 수정, 변경, 변형이 이하의 특허청구범위에서 정의된 사상 및 범위 내에서 가능함이 해당 분야의 통상의 기술자에게 자명하다.

Claims (30)

  1. 통신 네트워크를 통해 클라이언트 장치로 지도 데이터를 제공하기 위한 컴퓨터-구현 방법으로서, 상기 방법은:
    비-래스터 포맷(non-raster format)에 따르는 지도 데이터를 생성하는 단계 - 상기 지도 데이터는 클라이언트 장치에서 지리적 영역의 래스터 지도 이미지(raster map image)를 렌더링하기 위한 것이고, 상기 래스터 지도 이미지는 복수의 지도 요소(map element)를 포함하고, 각각의 지도 요소는 상기 지리적 영역 내 물리적 개체 또는 물리적 개체의 일부분에 대응함 - ,
    상기 복수의 지도 요소 중 둘 이상의 지도 요소를 포함하고 상기 복수의 지도 요소 중 적어도 하나의 지도 요소를 포함하지 않는 지도 특징부(map feature)의 기술(description)을 생성하는 단계 - 상기 지도 특징부에 포함된 지도 요소가 관련 물리적 개체 또는 동일 물리적 개체의 부분들에 대응하며, 상기 생성하는 단계는:
    지도 특징부에 대응하는 지도 데이터의 일부분의 지시자를 제공하는 단계, 및
    상기 지도 특징부를 고유하게 식별하는 지도 특징부 식별자를 제공하는 단계를 포함함 - , 및
    통신 네트워크를 통해 지도 데이터 및 지도 특징부의 기술이 클라이언트 장치로 전송되게 하는 단계
    를 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  2. 제1항에 있어서, 지도 데이터를 생성하는 단계는 복수의 지도 요소 중 각각의 지도 요소에 대해, 벡터 그래픽 포맷에 따라 지도 요소의 기하학적 형태(geometry)를 특정하는 각자의 벡터 기술어(vector descriptor)를 생성하는 단계를 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  3. 제1항에 있어서, 상기 래스터 지도 이미지는 동일 크기의 복수의 지도 타일에 대응하며, 지도 데이터를 생성하는 단계는:
    복수의 지도 타일 중 제 1 지도 타일을 렌더링하기 위해 지도 데이터의 제 1 서브세트를 생성하는 단계, 및
    복수의 지도 타일 중 제 2 지도 타일을 렌더링하기 위해 지도 데이터의 제 2 서브세트를 생성하는 단계
    를 포함하며,
    지도 데이터의 제 1 서브세트 및 지도 데이터의 제 2 서브세트 각각은 지도 데이터의 서브세트 및 지도 데이터의 제 2 서브세트 서로에 대해 독립적으로 각자의 래스터 이미지로서 렌더링되도록 구성되며,
    상기 지도 특징부는 상기 제 1 지도 요소의 제 1 서브세트에 제공된 제 1 지도 요소와 지도 데이터의 제 2 서브세트에 제공된 제 2 지도 요소를 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  4. 제3항에 있어서, 제 1 지도 요소는 상기 물리적 개체의 제 1 부분에 대응하고, 제 2 지도 요소는 상기 물리적 개체의 제 2 부분에 대응하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  5. 제4항에 있어서, 상기 물리적 개체는 건물(building)인, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  6. 제1항에 있어서, 지도 특징부의 기술을 생성하는 단계는, 상기 지도 특징부의 복수의 지도 요소 중 둘 이상의 지도 요소와 함께 사용되기 위한 공통 텍스트 라벨(common text label)을 제공하는 단계를 더 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  7. 제6항에 있어서, 상기 지도 특징부의 복수의 지도 요소 중 둘 이상의 지도 요소 각각에 대해 각자의 개별 텍스트 라벨을 제공하는 단계를 더 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  8. 제1항에 있어서, 상기 지도 특징부의 복수의 지도 요소 중 둘 이상의 지도 요소가 클라이언트 장치에서 렌더링될 때 따르는 스타일(style)을 가리키기 위해 공통 스타일 식별자를 제공하는 단계를 더 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  9. 제1항에 있어서,
    지도 데이터 및 지도 특징부의 기술이 클라이언트 장치로 전송되게 하는 단계 후, 지리적 영역에 대응하는 추가 지도 데이터에 대한 요청을 수신하는 단계,
    비-래스터 포맷으로 추가 지도 요소의 세트의 기술을 생성하는 단계 - 상기 추가 지도 요소는 지도 데이터와 함께 제공되지 않았음 - ,
    추가 지도 요소의 세트에서, 지도 특징부와 연관된 지도 요소를 식별하는 단계,
    식별된 지도 요소가 지도 특징부에 대응한다는 지시자를 제공하는 단계 - 상기 제공하는 단계는 식별된 지도 요소와 함께 지도 특징부 식별자를 제공하는 단계를 포함함 - , 및
    통신 네트워크를 통해, 상기 추가 지도 요소의 세트의 기술 및 식별된 지도 요소가 지도 특징부에 대응한다는 지시자가 클라이언트 장치로 전송되게 하는 단계
    를 더 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  10. 제9항에 있어서, 지리적 영역에 대응하는 추가 지도 데이터에 대한 요청을 수신하는 단계는 (ⅰ) 지리적 영역의 새 래스터 지도 이미지가 클라이언트 장치에서 렌더링될 때의 새 줌 레벨(new zoom level), 또는 (ⅱ) 지리적 영역의 새 래스터 지도 이미지가 클라이언트 장치에서 렌더링될 때 따르는 새 지도 유형(new map type) 중 적어도 하나에 대한 지시자를 수신하는 단계 - 상기 새 지도 유형은 지형 지도(terrain map), 교통 지도(traffic map), 철도 지도(transit map), 위성 지도(satellite map), 또는 자전거 도로 지도(bicycle trail map) 중 하나임 - 를 포함하는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  11. 제1항에 있어서, 복수의 지도 요소 중 각각의 지도 요소는 도로 구간(road segment), 건물, 및 경계 영역(bounded area)을 포함하는 그룹 중에서 선택되는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  12. 제1항에 있어서,
    지도 데이터의 일부분의 지시자를 제공하는 단계는 복수의 지도 요소 중 둘 이상의 지도 요소 모두를 둘러싸는 영역의 경계부를 특정하는 단계를 포함하고, 특정된 경계부는 지도 특징부가 렌더링되는 하나 이상의 지도 타일의 경계부와 일치하지 않는, 지도 데이터를 제공하기 위한 컴퓨터-구현 방법.
  13. 통신 네트워크 상에서 동작하는 컴퓨팅 장치로서, 상기 컴퓨팅 장치는,
    클라이언트 장치에서 지리적 영역의 래스터 지도 이미지를 랜더링하기 위해 지도 데이터를 생성하는 지도 데이터 생성기 - 상기 지도 데이터는 비-래스터 포맷에 따라 복수의 기하학적 형태를 특정하며, 상기 래스터 지도 이미지는 지리적 영역 내 복수의 물리적 개체를 도시함 - , 및
    복수의 물리적 개체로부터 선택된 둘 이상의 물리적 개체의 그룹 또는 복수의 물리적 개체 중 하나의 물리적 개체의 둘 이상의 부분에 대응하는 지도 특징부(map feature)의 기술(description)을 생성하는 지도 특징부 제어기 - 상기 지도 특징부는 복수의 물리적 개체 중 적어도 하나의 물리적 개체에 대응하지 않고, 상기 지도 특징부의 기술을 생성하기 위해, 상기 지도 특징부 제어기는 (ⅰ) 지도 특징부에 대응하는 지도 데이터의 일부분의 지시자를 제공하며, (ⅱ) 상기 지도 특징부를 고유하게 식별하는 지도 특징부 식별자를 제공함 -
    를 포함하며,
    상기 컴퓨팅 장치는 통신 네트워크를 통해 지도 데이터 및 지도 특징부의 기술을 클라이언트 장치로 전송되게 하는, 컴퓨팅 장치.
  14. 제13항에 있어서, 복수의 물리적 개체의 각각의 물리적 개체에 대해, 상기 지도 데이터 생성기는 벡터 그래픽 포맷에 따라 각자의 지도 요소의 적어도 하나의 벡터 기술(vector description)을 생성하고, 각각의 벡터 기술은 대응하는 기하학적 형태를 렌더링하기 위해 클라이언트 장치에서 독립적으로 해석 가능한(interpretable) 것인, 컴퓨팅 장치.
  15. 제14항에 있어서, 상기 지도 데이터 생성기는 각각의 지도 요소에 대한 각자의 심도 지시자를 더 제공하며, 상기 심도 지시자는 지도 요소가 적어도 하나의 겹치는 지도 요소에 비해 렌더링되는 순서를 가리키는, 컴퓨팅 장치.
  16. 제14항에 있어서, 복수의 물리적 개체는 하나의 물리적 개체를 포함하고, 상기 하나의 물리적 개체에 대해 지도 데이터 생성기는 물리적 개체의 제 1 부분에 대응하는 제 1 지도 요소의 제 1 벡터 기술, 및 물리적 개체의 제 2 부분에 대응하는 제 2 지도 요소의 제 2 벡터 기술을 생성하는, 컴퓨팅 장치.
  17. 제13항에 있어서, 복수의 물리적 개체의 각각의 물리적 개체는 건물, 도로 구간, 공원, 또는 물줄기 중 하나인, 컴퓨팅 장치.
  18. 제17항에 있어서, 상기 지도 특징부는 관리상 관련된(administratively) 건물 및 도로 구간을 포함하는 그룹에 대응하는, 컴퓨팅 장치.
  19. 제13항에 있어서, 상기 지도 데이터 생성기는, (ⅰ) 지도 특징부와 함께 디스플레이될 공통 텍스트 라벨, 및 (ⅱ) 지도 특징부와 연관된 각각의 지도 요소와 함께 디스플레이될 각자의 개별 텍스트 라벨을 더 생성하는, 컴퓨팅 장치.
  20. 제13항에 있어서, 통신 링크를 통해:
    지리적 영역 내 복수의 물리적 개체 각각에 대응하는 복수의 지도 요소의 기술(description), 및
    복수의 지도 요소 중 둘 이상의 지도 요소와 각각 연관된 복수의 지도 특징부의 기술
    을 수신하기 위한 데이터베이스 인터페이스 모듈을 더 포함하며,
    지도 데이터를 생성하기 위해, 상기 지도 데이터 생성기는 클라이언트 장치에서 선택된 줌 레벨 및 지도 유형을 기초로 복수의 지도 요소의 기술의 서브세트를 선택하는, 컴퓨팅 장치.
  21. 제20항에 있어서, 복수의 지도 요소 중 적어도 하나가 복수의 지도 특징부 중 둘 이상의 지도 특징부와 연관되는, 컴퓨팅 장치.
  22. 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법으로서, 상기 방법은:
    통신 네트워크를 통해, 비-래스터 포맷(non-raster format)에 따르는 지리적 영역에 대한 지도 데이터를 수신하는 단계 - 상기 지도 데이터를 수신하는 단계는 복수의 지도 요소 중 각각의 지도 요소의 기하학적 형태를 각각 특정하는 복수의 기술어(descriptor)를 수신하는 단계를 포함하고, 복수의 기술어의 각각의 기술어는 대응하는 지도 요소를 렌더링하기 위해 독립적으로 해석 가능함(interpretable) - ,
    복수의 지도 요소 중 둘 이상의 지도 요소를 포함하고 복수의 지도 요소 중 적어도 하나의 지도 요소를 포함하지 않는 지도 특징부의 기술을 수신하는 단계 - 상기 지도 특징부에 포함된 지도 요소는 지리적 영역 내 관련 물리적 개체 또는 단일(unitary) 물리적 개체의 부분들에 대응하며, 상기 지도 특징부의 기술을 수신하는 단계는 복수의 지도 요소 중 어느 지도 요소가 지도 특징부와 연관되는지에 대한 지시자를 수신하는 단계를 포함함 - ,
    사용자 인터페이스를 통해 디스플레이되도록 래스터 지도 이미지를 생성하도록 상기 지도 데이터를 해석하는 단계 - 상기 지도 데이터를 해석하는 단계는 복수의 지도 요소를 렌더링하는 단계를 포함함 - , 및
    사용자 인터페이스를 통해 복수의 지도 요소 중 둘 이상의 지도 요소가 지도 특징부와 연관된다는 지시자를 제공하는 단계
    를 포함하는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  23. 제22항에 있어서, 복수의 지도 요소 중 둘 이상의 지도 요소 각각을 개별적으로 선택하지 않고, 지도 특징부를 선택하기 위한 사용자 컨트롤을 제공하는 단계를 더 포함하며, 상기 복수의 지도 요소 중 둘 이상의 지도 요소 각각은 사용자가 사용자 컨트롤을 활성화시킨 것에 응답하여 자동으로 선택되는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  24. 제23항에 있어서, 사용자가 사용자 컨트롤을 활성화시킨 것에 응답하여 래스터 지도 이미지를 수정하는 단계를 더 포함하며, 상기 래스터 지도 이미지를 수정하는 단계는 지도 특징부와 연관된 복수의 지도 요소 중 둘 이상의 지도 요소 각각의 강조된 표현을 생성하는 단계를 포함하는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  25. 제22항에 있어서, 제거될 복수의 지도 요소 중 둘 이상의 지도 요소 각각을 개별적으로 선택하지 않고, 지도 특징부를 제거하기 위한 사용자 컨트롤을 제공하는 단계를 더 포함하며, 상기 복수의 지도 요소 중 둘 이상의 지도 요소 각각은 사용자가 사용자 컨트롤을 활성화시킨 것에 응답하여 자동으로 제거되는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  26. 제22항에 있어서,
    지도 특징부는 상업적 개체, 사업체, 또는 학문 기관 중 하나에 대응하고,
    상기 지도 특징부는 건물에 대응하는 지도 요소와 공원에 대응하는 지도 요소를 포함하는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  27. 제22항에 있어서, 상기 지도 특징부는 단일 물리적 개체에 대응하고, 상기 물리적 개체의 제 1 부분에 대응하는 제 1 지도 요소와 상기 물리적 개체의 제 2 부분에 대응하는 제 2 지도 요소를 포함하는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  28. 제22항에 있어서, 래스터 지도 이미지를 생성하기 위해 지도 데이터를 해석하는 단계는
    래스터 포맷으로 제 1 지도 타일을 렌더링하기 위해 상기 지도 데이터의 제 1 부분을 해석하는 단계, 및
    래스터 포맷으로 제 2 지도 타일을 렌더링하기 위해 상기 지도 데이터의 제 2 부분을 해석하는 단계
    를 포함하며, 상기 지도 특징부는 제 1 지도 타일에서 렌더링되는 제 1 지도 요소, 및 제 2 지도 타일에서 렌더링되는 제 2 지도 요소를 포함하는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  29. 제22항에 있어서, 지도 특징부의 기술을 수신하는 단계는 지도 특징부를 고유하게 식별하는 특징부 식별자를 수신하는 단계를 더 포함하는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.
  30. 제22항에 있어서, 지도 특징부의 기술을 수신하는 단계는 지도 특징부와 함께 디스플레이될 공통 텍스트 라벨을 수신하는 단계를 더 포함하는, 상호대화형 지도 콘텐츠를 제공하기 위한 컴퓨팅 장치에서의 방법.

KR1020147010891A 2011-09-26 2012-09-25 집성 특징부 식별자를 이용한 지도 요소들 관리 KR102056882B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/244,716 2011-09-26
US13/244,716 US8560600B2 (en) 2011-09-26 2011-09-26 Managing map elements using aggregate feature identifiers
PCT/US2012/057099 WO2013049053A1 (en) 2011-09-26 2012-09-25 Managing map elements using aggregate feature identifiers

Publications (2)

Publication Number Publication Date
KR20140075760A true KR20140075760A (ko) 2014-06-19
KR102056882B1 KR102056882B1 (ko) 2019-12-17

Family

ID=47912440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147010891A KR102056882B1 (ko) 2011-09-26 2012-09-25 집성 특징부 식별자를 이용한 지도 요소들 관리

Country Status (9)

Country Link
US (2) US8560600B2 (ko)
EP (1) EP2761497A4 (ko)
JP (1) JP6184961B2 (ko)
KR (1) KR102056882B1 (ko)
CN (2) CN110084877A (ko)
AU (3) AU2012316226B2 (ko)
CA (1) CA2849992C (ko)
DE (1) DE202012013506U1 (ko)
WO (1) WO2013049053A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016200114A1 (ko) * 2015-06-08 2016-12-15 삼성전자 주식회사 전자 장치 및 전자 장치에서의 전자 지도 표시 방법
KR102174524B1 (ko) * 2020-04-07 2020-11-04 안정훈 전자 지도 서비스 방법 및 시스템

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560600B2 (en) * 2011-09-26 2013-10-15 Google Inc. Managing map elements using aggregate feature identifiers
US8274524B1 (en) * 2011-09-28 2012-09-25 Google Inc. Map rendering using interpolation of style parameters across zoom levels
US9070314B2 (en) * 2012-06-05 2015-06-30 Apple Inc. Method, system and apparatus for rendering a map according to texture masks
US10109255B2 (en) * 2012-06-05 2018-10-23 Apple Inc. Method, system and apparatus for dynamically generating map textures
US8928698B2 (en) * 2012-06-10 2015-01-06 Apple Inc. Compression of road features in map tiles
US20140028679A1 (en) * 2012-07-30 2014-01-30 Nvidia Corporation Render-assisted compression for remote graphics
US20140071119A1 (en) * 2012-09-11 2014-03-13 Apple Inc. Displaying 3D Objects in a 3D Map Presentation
US9360339B2 (en) * 2013-01-14 2016-06-07 Sap Se Rendering maps with canvas elements
US11226995B2 (en) * 2013-03-15 2022-01-18 International Business Machines Corporation Generating business intelligence geospatial elements
WO2014145405A2 (en) * 2013-03-15 2014-09-18 Gaiter Felix R Three-dimensional layered map
EP2997546B1 (en) * 2013-05-15 2020-09-02 Google LLC Efficient composition and rendering of graphical elements
US9448754B2 (en) * 2013-05-15 2016-09-20 Google Inc. Resolving label collisions on a digital map
US9471959B2 (en) * 2013-05-15 2016-10-18 Google Inc. Water color gradients on a digital map
US9542724B1 (en) 2013-07-09 2017-01-10 Google Inc. Systems and methods for stroke rendering on digital maps
NZ719332A (en) 2013-10-25 2021-07-30 Resmed Inc Electronic management of sleep related data
US10444954B2 (en) * 2013-11-11 2019-10-15 Here Global B.V. Distinguishable geographic area presentation
US10740540B2 (en) * 2013-12-13 2020-08-11 Freedom Scientific, Inc. Techniques for programmatic magnification of visible content elements of markup language documents
US20170076328A1 (en) * 2014-03-04 2017-03-16 Google Inc. Map personalization based on social cues
US9495767B2 (en) * 2014-05-15 2016-11-15 Google Inc. Indexed uniform styles for stroke rendering
US10599570B1 (en) 2014-06-20 2020-03-24 Google Llc Expiration of offline map data
WO2016106358A1 (en) * 2014-12-22 2016-06-30 Robert Bosch Gmbh System and methods for interactive hybrid-dimension map visualization
CN104834723A (zh) * 2015-05-12 2015-08-12 天脉聚源(北京)教育科技有限公司 一种地图的显示处理方法及装置
US9702724B2 (en) 2015-06-06 2017-07-11 Apple Inc. Mapping application with transit mode
US10514271B2 (en) * 2015-06-06 2019-12-24 Apple Inc. Mapping application with transit mode
US10094675B2 (en) 2015-06-07 2018-10-09 Apple Inc. Map application with transit navigation mode
CN106997348A (zh) * 2016-01-22 2017-08-01 腾讯科技(深圳)有限公司 一种数据绘制方法和装置
US9922426B2 (en) * 2016-01-25 2018-03-20 Google Llc Reducing latency in presenting map interfaces at client devices
US9875430B1 (en) 2016-03-30 2018-01-23 Descartes Labs, Inc. Iterative relabeling using spectral neighborhoods
US10319062B2 (en) * 2016-09-27 2019-06-11 Google Llc Rendering map data using descriptions of raster differences
CA3043208A1 (en) * 2016-11-14 2018-05-17 OneMarket Network LLC Systems and methods for presenting personalized map labels
US20180181576A1 (en) * 2016-12-22 2018-06-28 Mapbox, Inc. Real-Time Transmittal Of Optimized Map Vector Tile Data
US10482900B2 (en) * 2017-01-18 2019-11-19 Microsoft Technology Licensing, Llc Organization of signal segments supporting sensed features
JP6802393B2 (ja) * 2017-06-09 2020-12-16 株式会社ソニー・インタラクティブエンタテインメント 中心窩レンダリングシステムにおける、遅延ライティングの最適化、パーティクルの中心窩適応、及びシミュレーションモデル
CN107679406B (zh) * 2017-09-01 2021-04-23 百度在线网络技术(北京)有限公司 高精度电子地图的处理方法、装置、设备及计算机可读存储介质
US10956497B1 (en) * 2017-10-05 2021-03-23 United States Automobile Association (USAA) Use of scalable vector graphics format to encapsulate building floorplan and metadata
US11029810B2 (en) * 2018-05-07 2021-06-08 Otis Elevator Company Equipment service graphical interface
CN111126120B (zh) * 2018-11-01 2024-02-23 百度在线网络技术(北京)有限公司 城市区域分类方法、装置、设备和介质
US10832449B1 (en) 2018-11-30 2020-11-10 BlueOwl, LLC Vehicular telematic systems and methods for generating interactive animated guided user interfaces
CA3081445A1 (en) 2019-06-10 2020-12-10 Mappedin Inc. System and method for tracing polygons in design files
US11042961B2 (en) * 2019-06-17 2021-06-22 Risk Management Solutions, Inc. Spatial processing for map geometry simplification
US11270484B2 (en) * 2019-09-03 2022-03-08 Mappedin Inc. System and method for semantic segmentation of a source geometry
JP6979141B1 (ja) * 2020-01-31 2021-12-08 株式会社 ミックウェア 表示装置および制御プログラム
CN111368239A (zh) * 2020-05-27 2020-07-03 航天宏图信息技术股份有限公司 一种栅格数据的处理方法和系统
CN112464132A (zh) * 2020-12-04 2021-03-09 北京五八信息技术有限公司 页面生成、配置方法及装置
CN113434619A (zh) * 2021-06-25 2021-09-24 南京美慧软件有限公司 一种4g的高速公路智能交通路况监控系统
CN113688198B (zh) * 2021-08-27 2024-03-05 湖南省国土资源规划院 城区范围划定中线状地物截断处理方法、存储器及装置
US20230168106A1 (en) * 2021-11-29 2023-06-01 Here Global B.V. Method, apparatus, and system for providing mock map data for map design validation and documentation
CN114185613A (zh) * 2021-11-30 2022-03-15 广州景骐科技有限公司 一种语义地图分块方法、装置、交通工具及存储介质

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2609744B2 (ja) * 1989-07-14 1997-05-14 株式会社日立製作所 画像表示方法及び画像表示装置
US5519809A (en) * 1992-10-27 1996-05-21 Technology International Incorporated System and method for displaying geographical information
JP3622094B2 (ja) 1995-10-05 2005-02-23 株式会社日立製作所 地図更新支援装置および地図情報の編集方法
US6577714B1 (en) * 1996-03-11 2003-06-10 At&T Corp. Map-based directory system
US6199015B1 (en) * 1996-10-10 2001-03-06 Ames Maps, L.L.C. Map-based navigation system with overlays
US5966135A (en) 1996-10-30 1999-10-12 Autodesk, Inc. Vector-based geographic data
DE60003725T2 (de) 1999-10-12 2004-04-22 Autodesk, Inc., San Rafael Geographische karten auf einem persönlichen digitalen assistenten (pda) und server
US7308117B2 (en) * 2000-02-04 2007-12-11 National Science And Technology Development Agency System and method for manipulating information and map for geographical resource management
US7148898B1 (en) * 2000-03-29 2006-12-12 Sourceprose Corporation System and method for synchronizing raster and vector map images
US20020113797A1 (en) * 2000-11-17 2002-08-22 Potter Scott T. Systems and methods for representing and displaying graphics
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
GB0303888D0 (en) * 2003-02-19 2003-03-26 Sec Dep Acting Through Ordnanc Image streaming
US7844417B2 (en) * 2003-02-21 2010-11-30 First American Real Estate Solutions, Llc GIS-based rapid population assessment tool
US7865301B2 (en) 2004-03-23 2011-01-04 Google Inc. Secondary map in digital mapping system
CN103398718B (zh) * 2004-03-23 2017-04-12 咕果公司 数字地图描绘系统
JP2005345495A (ja) * 2004-05-31 2005-12-15 Matsushita Electric Ind Co Ltd 対象情報提供装置、対象情報取得装置、対象情報提供方法、および対象情報取得方法
CN1710554A (zh) * 2004-06-17 2005-12-21 成都四威电子股份有限公司 表现地图信息的方法及传输地图信息数据的方法
US7792331B2 (en) * 2004-06-29 2010-09-07 Acd Systems, Ltd. Composition of raster and vector graphics in geographic information systems
US20060074660A1 (en) * 2004-09-29 2006-04-06 France Telecom Method and apparatus for enhancing speech recognition accuracy by using geographic data to filter a set of words
EP1681656A1 (en) 2005-01-18 2006-07-19 Oculus Info Inc. System and method for processing map data
US20060197781A1 (en) 2005-03-03 2006-09-07 Arutunian Ethan B System and method utilizing enhanced imagery and associated overlays
US20070210937A1 (en) 2005-04-21 2007-09-13 Microsoft Corporation Dynamic rendering of map information
US7777648B2 (en) 2005-04-21 2010-08-17 Microsoft Corporation Mode information displayed in a mapping application
US20060271281A1 (en) * 2005-05-20 2006-11-30 Myron Ahn Geographic information knowledge systems
US7373246B2 (en) * 2005-05-27 2008-05-13 Google Inc. Using boundaries associated with a map view for business location searching
US20060277271A1 (en) 2005-06-07 2006-12-07 Yahoo! Inc. Prefetching content based on a mobile user profile
US20060293847A1 (en) * 2005-06-22 2006-12-28 Marriott Graham H Interactive scaling feature having scalability in three dimensional space
US20070013723A1 (en) * 2005-07-12 2007-01-18 Microsoft Corporation Magnification engine and interface for computers
US8296388B2 (en) * 2005-07-18 2012-10-23 Microsoft Corporation Cross-application encoding of geographical location information
US7706971B2 (en) * 2005-07-21 2010-04-27 The Boeing Company System and method for data mapping and map discrepancy reporting
US7933897B2 (en) * 2005-10-12 2011-04-26 Google Inc. Entity display priority in a distributed geographic information system
EP1955213A4 (en) 2005-11-07 2010-01-06 Google Inc ILLUSTRATION IN MOBILE DEVICES
CN101009058A (zh) * 2006-01-26 2007-08-01 崔宏 用数字来标识地理位置
US9412199B2 (en) 2006-02-13 2016-08-09 Uber Technologies, Inc. Draggable maps
CN101427103A (zh) * 2006-02-17 2009-05-06 英特图形软件技术公司 通过函数样式的基于属性的符号标示
US20070208498A1 (en) 2006-03-03 2007-09-06 Inrix, Inc. Displaying road traffic condition information and user controls
US20070226314A1 (en) 2006-03-22 2007-09-27 Sss Research Inc. Server-based systems and methods for enabling interactive, collabortive thin- and no-client image-based applications
US8560946B2 (en) 2006-03-22 2013-10-15 Vistracks, Inc. Timeline visualizations linked with other visualizations of data in a thin client
WO2007146967A2 (en) * 2006-06-12 2007-12-21 Google Inc. Markup language for interactive geographic information system
CN100458787C (zh) * 2006-08-26 2009-02-04 福州开睿动力通信科技有限公司 一种基于空间数据库和SVG的高速Web电子地图的生成及应用方法
JP4549329B2 (ja) * 2006-08-31 2010-09-22 株式会社ナビタイムジャパン 通信型地図表示システム、地図配信サーバおよび地図表示端末
US7925982B2 (en) * 2006-09-01 2011-04-12 Cheryl Parker System and method of overlaying and integrating data with geographic mapping applications
JP2008071206A (ja) * 2006-09-14 2008-03-27 Navitime Japan Co Ltd 地図表示システム、地図配信サーバおよび地図表示端末
US7734412B2 (en) * 2006-11-02 2010-06-08 Yahoo! Inc. Method of client side map rendering with tiled vector data
US8010407B1 (en) * 2006-11-14 2011-08-30 Google Inc. Business finder for locating local businesses to contact
US8749585B2 (en) 2007-03-29 2014-06-10 Microsoft Corporation Adding custom content to mapping applications
US8374782B2 (en) 2007-08-29 2013-02-12 Vodafone Group Services Limited Pre-fetching navigation maps
US8892455B2 (en) * 2007-09-28 2014-11-18 Walk Score Management, LLC Systems, techniques, and methods for providing location assessments
US20090113296A1 (en) 2007-10-26 2009-04-30 Microsoft Corporation Displaying a map and associated symbolic context information
US20090254841A1 (en) * 2007-11-12 2009-10-08 Move Sales, Inc. Apparatus, method, and computer program product for characterizing user-defined areas
EP2078926B1 (en) 2008-01-14 2013-10-16 BlackBerry Limited System and method for dynamically downloading and displaying map data
US8504945B2 (en) 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
CN102047612A (zh) * 2008-03-24 2011-05-04 惠普开发有限公司 基于图像的远程访问系统
CN100568290C (zh) * 2008-04-22 2009-12-09 北京航空航天大学 一种可快速配置和实时渲染的安防三维电子地图系统
US8032297B2 (en) * 2008-05-08 2011-10-04 Gabriel Jakobson Method and system for displaying navigation information on an electronic map
US7940171B2 (en) * 2008-06-10 2011-05-10 Google Inc. Machine-readable representation of geographic information
US20100034466A1 (en) * 2008-08-11 2010-02-11 Google Inc. Object Identification in Images
US20100073391A1 (en) * 2008-09-25 2010-03-25 Yahoo! Inc. Informational content presentation via backdrop images
US8493408B2 (en) * 2008-11-19 2013-07-23 Apple Inc. Techniques for manipulating panoramas
US8587617B2 (en) * 2009-02-04 2013-11-19 Raytheon Company Apparatus and method for map zooming
CN101556165A (zh) * 2009-04-24 2009-10-14 方舟信息技术(苏州)有限公司 嵌入式移动电子地图数据库的实时更新方法
US20100321399A1 (en) 2009-06-18 2010-12-23 Patrik Ellren Maps from Sparse Geospatial Data Tiles
CA2767768A1 (en) * 2009-07-10 2011-01-13 Georeplica Inc. System of identifying and advertising organizations or other entities by overlaying image files on mapping applications
US9710961B2 (en) * 2009-09-17 2017-07-18 Nokia Technologies Oy Method and apparatus for providing contextual rendering of a map
US8510045B2 (en) * 2009-12-22 2013-08-13 Steven L. Rueben Digital maps displaying search-resulting points-of-interest in user delimited regions
US9068844B2 (en) 2010-01-08 2015-06-30 Dp Technologies, Inc. Method and apparatus for an integrated personal navigation system
US20110191014A1 (en) 2010-02-04 2011-08-04 Microsoft Corporation Mapping interface with higher zoom level inset map
US8874129B2 (en) * 2010-06-10 2014-10-28 Qualcomm Incorporated Pre-fetching information based on gesture and/or location
US8681022B2 (en) * 2011-02-02 2014-03-25 Mapquest, Inc. Systems and methods for generating electronic map displays with points-of-interest based on density thresholds
US8560600B2 (en) * 2011-09-26 2013-10-15 Google Inc. Managing map elements using aggregate feature identifiers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016200114A1 (ko) * 2015-06-08 2016-12-15 삼성전자 주식회사 전자 장치 및 전자 장치에서의 전자 지도 표시 방법
KR102174524B1 (ko) * 2020-04-07 2020-11-04 안정훈 전자 지도 서비스 방법 및 시스템

Also Published As

Publication number Publication date
US8903900B2 (en) 2014-12-02
US20130080504A1 (en) 2013-03-28
DE202012013506U1 (de) 2017-04-27
AU2019204746B2 (en) 2021-05-27
CA2849992C (en) 2020-12-15
EP2761497A1 (en) 2014-08-06
AU2018200087A1 (en) 2018-01-25
KR102056882B1 (ko) 2019-12-17
AU2012316226B2 (en) 2017-10-05
CA2849992A1 (en) 2013-04-04
US20140035948A1 (en) 2014-02-06
US8560600B2 (en) 2013-10-15
CN110084877A (zh) 2019-08-02
AU2012316226A1 (en) 2014-04-10
AU2019204746A1 (en) 2019-07-18
WO2013049053A1 (en) 2013-04-04
EP2761497A4 (en) 2015-04-08
JP6184961B2 (ja) 2017-08-23
JP2014535065A (ja) 2014-12-25
CN103946837A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
AU2019204746B2 (en) Managing map elements using aggregate feature identifiers
AU2017251816B2 (en) Rendering map images using modifications of non-raster map data
US9396508B2 (en) Use of map data difference tiles to iteratively provide map data to a client device
US10533871B2 (en) Rendering a map using style identifiers
US10679386B2 (en) Draggable maps

Legal Events

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