KR102497681B1 - 디지털 지도 기반의 가상현실 및 메타버스 온라인 플랫폼 - Google Patents
디지털 지도 기반의 가상현실 및 메타버스 온라인 플랫폼 Download PDFInfo
- Publication number
- KR102497681B1 KR102497681B1 KR1020220101002A KR20220101002A KR102497681B1 KR 102497681 B1 KR102497681 B1 KR 102497681B1 KR 1020220101002 A KR1020220101002 A KR 1020220101002A KR 20220101002 A KR20220101002 A KR 20220101002A KR 102497681 B1 KR102497681 B1 KR 102497681B1
- Authority
- KR
- South Korea
- Prior art keywords
- map
- layer
- building
- feature
- floor
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 83
- 230000004044 response Effects 0.000 claims description 12
- 239000010410 layer Substances 0.000 description 246
- 230000000875 corresponding effect Effects 0.000 description 51
- 238000010586 diagram Methods 0.000 description 20
- 239000010437 gem Substances 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 239000010432 diamond Substances 0.000 description 12
- 229910003460 diamond Inorganic materials 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 229910001751 gemstone Inorganic materials 0.000 description 11
- 230000003993 interaction Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 239000000463 material Substances 0.000 description 7
- 230000003190 augmentative effect Effects 0.000 description 6
- 239000010979 ruby Substances 0.000 description 6
- 229910001750 ruby Inorganic materials 0.000 description 6
- 229910052594 sapphire Inorganic materials 0.000 description 6
- 239000010980 sapphire Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 239000003550 marker Substances 0.000 description 4
- 241000282994 Cervidae Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 2
- 238000004091 panning Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 229910000906 Bronze Inorganic materials 0.000 description 1
- 229920002160 Celluloid Polymers 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 206010026749 Mania Diseases 0.000 description 1
- 240000007643 Phytolacca americana Species 0.000 description 1
- 101150112439 SMAP gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000010974 bronze Substances 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- KUNSUQLRTQLHQQ-UHFFFAOYSA-N copper tin Chemical compound [Cu].[Sn] KUNSUQLRTQLHQQ-UHFFFAOYSA-N 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004579 marble Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 238000009304 pastoral farming Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/44—Browsing; Visualisation therefor
- G06F16/444—Spatial browsing, e.g. 2D maps, 3D or virtual spaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/909—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- Remote Sensing (AREA)
- Tourism & Hospitality (AREA)
- Computer Graphics (AREA)
- Strategic Management (AREA)
- Multimedia (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Primary Health Care (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Processing Or Creating Images (AREA)
Abstract
디지털 지도 기반으로 VR 콘텐츠를 소비하는 방법을 제공한다. 디지털 지도의 지도 영역(map area)에는 실외 지도(outdoor map) 및 사전에 정해진 조건을 만족하는 지형지물(地形地物, geographic features, terrain features)이 실외 지도상의 올바른 위치에 표시된다. 사용자가 지도 영역에 표시된 어느 한 지형지물을 선택하면 그 지형지물에 연관된 3D 콘텐츠(3D content)가 새 창(window)에서 가상현실(Virtual Reality)로 보여진다.
Description
본 발명은 디지털 지도 기반으로 가상현실 공간이나 메타버스 공간을 탐색할 수 있는 온라인 플랫폼 및 그 방법을 제공한다.
도 1은 대전시의 국가등록문화재인 대전 대흥동성당(大田 大興洞聖堂, Daeheung-dong Catholic Church, Daejeon)의 전경이며, 도 2는 대흥동성당의 앞에 설치된 관광 안내판을 찍은 사진이다. 관광 안내판의 뒤로 대흥동성당이 보이는 것을 알 수 있다. 이 관광 안내판에는 구도심의 역사적인 건물들이 3D로 그려져 있어 관광객들이 다음 목적지를 선택하는데 참고할 수 있다. 이와 같은 그림 지도의 장점은 일부러 가볼 만한 랜드마크(landmark)만 표시되어 있어서 지역의 관광 자원을 한눈에 파악할 수 있으며, 목적지에 대한 시각적인 힌트를 제공한다는 점이다.
또, 도 2의 관광 안내판의 오른쪽 아래에 QR 코드를 볼 수 있으며, 이 QR 코드를 스마트폰에 장착된 카메라로 찍으면 도 3에 보이는 것과 같이 대전 구도심의 근대문화탐방로를 소개하는 웹 페이지로 연결된다. 이와 같이 관광 진흥의 목적으로 관광 안내판에 QR 코드를 삽입하는 방식은 자주 사용되는데, QR 코드를 스마트폰으로 찍으면 관련된 관광 콘텐츠가 증강현실(AR: Augmented Reality)이나 가상현실(VR: Virtual Reality)로 보여지도록 할 수도 있다.
증강현실과 가상현실과 혼합현실(MR: Mixed Reality)은 이제 확장현실(XR: eXtented Reality)이라는 용어로 통합적으로 지칭되기도 한다. 그런데 이런 방법은 관광객이 그 관광 안내판 앞에 서있을 때에만 소용이 있다. 즉, 관광객이 필요한 정보를 얻는 것을 도울 수는 있으나, 새로운 관광객을 유입시키는 효과는 적다고 할 수 있다.
한편, 도 4는 서울특별시의 3D 지도(https://smap.seoul.go.kr)에서 남대문 근처를 찾아본 것이다. 이 지도는 서울시의 디지털 트윈(digital twin)으로 구축된 것이다. 그런데 이와 같은 3D 지도의 단점은 내가 관심있는 건축물에 대한 정보만 따로 보기가 쉽지 않다는 점이다. 예를 들어 다른 고층 건물들은 모두 무시하고 남대문의 상세한 모습만을 감상하기가 쉽지 않다.
QR 코드로 연결되는 웹 페이지나 디지털 트윈(digital twin)에서 3D 형상으로 관광지나 랜드마크를 보여줄 수 있으면 바람직할 것이다. PC나 스마트폰으로 인터넷 기반의 콘텐츠(content)를 소비하기 위해서 HTML5/CSS3/JavaScript만으로 웹 문서(web document)를 작성하면 별도의 플러그인(plugin) 프로그램을 설치할 필요가 없다.
자바스크립트(JavaScript)는 웹 브라우저(web browser)가 사용하는 프로그래밍 언어이다. 자바스크립트에서 원주율(圓周率)과 같이 값이 변하지 않는 상수(constant)는 다음과 같이 선언한다.
const PI = 3.141592654;
한편, 값이 변할 수 있는 변수(variable)는 let이나 var라는 키워드(keyword)를 사용하여 데이터의 형(type)을 나타낸다.
let x;
x = 3;
자바스크립트에서는 상수와 변수에 더하여 객체(客體, object)가 핵심적인 데이터의 한 종류(data type)이다. 자바스크립트 객체(JavaScript object)는 키(key)와 값(value)을 가지는 데이터인데, mdn web docs(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)는 자바스크립트 객체를 다음과 같이 정의하고 있다.
Object 클래스는 JavaScript의 데이터 유형 중 하나를 나타낸다. 다양한 키 모음 및 더 복잡한 엔티티들을 저장하는 데 사용된다. 객체는 Object() 생성자 또는 객체 초기자 / 리터럴 구문을 통해 생성할 수 있다(The Object class represents one of JavaScript's data types. It is used to store various keyed collections and more complex entities. Objects can be created using the Object() constructor or the object initializer / literal syntax).
예를 들어 P라는 이름을 가지는 자바스크립트 객체를 다음과 같이 선언했다고 하자.
let P = {x:3, y:4};
이 객체는 x와 y라는 두 개의 속성(attribute) 또는 키(key)를 가지고 있으며, 키값(key value)은 P.x 및 P.y와 같이 구할 수 있다.
한편, X3D는 로열티가 필요없이 선언적으로 3D 컴퓨터 그래픽을 표현할 수 있는 ISO/IEC 표준이다(X3D is a royalty-free ISO/IEC standard for declaratively representing 3D computer graphics)비특1. X3D는 상업적으로 성공하지 못한 VRML(Virtual Reality Modeling Language)의 스펙(specification)을 따르고 있다. X3D는 XML(eXtensible Markup Language)을 기반으로 웹 상에서 3차원 물체를 표현하기 위한 표준 언어이며, VRML의 모든 특징을 포함하고 있다.
애플릿(applet)이란 다른 프로그램 내에서 특정한 작업을 수행하는 작은 응용 프로그램을 말한다. 자바 애플릿(Java applet)이나 인터넷 익스플로러(Internet Explorer)에 포함된 윈도우 미디어 플레이어(Windows Media Player)가 애플릿의 예이다. 현재 대부분의 웹 브라우저(web browser)에는 OpenGL 3D 그래픽 기술(OpenGL 3D graphics technology)을 사용하는 X3D 애플릿(X3D applet)이 포함되어 있어 웹에서 3D 콘텐츠를 표시할 수 있다.
엑스프리덤(X-freedom)이라고 발음하는 X3DOM은 HTML5에서 동작하는 X3D의 국제 표준이다. X3DOM은 웹 표준 기술인 WebGL과 HTML5만을 사용하는 오픈 소스 자바스크립트 프레임워크(open source JavaScript framework)이다. 따라서 별도의 브라우저 플러그인이 필요없이 스크립트(script)에 x3dom.js 라이브러리만 포함시키면 자바스크립트를 사용하여 웹에서 3D 콘텐츠를 구현할 수 있다.
X3DOM은 X3D와 DOM이 합쳐진 용어인데, X3D는 확장가능한 3D 그래픽스(eXtensible 3D graphics)를 의미하고, DOM은 웹에서 사용하는 문서 객체 모델(文書客體 모델, Document Object Model)을 의미한다비특2. 즉, X3DOM은 HTML5와 사용법이 매우 유사하다.
X3DOM은 노드(node)와 필드(field)로 구성된다. 노드는 3D 장면(3D scene)의 어느 부분(part)이나 측면(aspect)을 나타나며, 필드는 노드의 특성을 기술한다. 예를 들어 빛, 물체(object), 물체의 표면 물질(material) 등이 노드가 될 수 있다. 그리고 그 물질의 색상이 필드가 될 수 있다. 전형적인 노드의 예는 다음과 같다.
<Material diffuseColor = '1 0 0'></Material>
여기에서 볼 수 있는 바와 같이 X3DOM에서는 일반적인 HTML5 DOM과 동일하게 여는 태그(openning tag) <>와 닫는 태그(closing tag) </>가 짝을 이룬다. 이 물질(Material) 노드는 diffuseColor라는 필드(field)를 가지고 있으며, 그 속성의 값은 '1 0 0'이다. X3DOM에서 속성을 표시하는 방식은 HTML5와 조금 다른데, HTML5로 번역한다면 '1 0 0'은 rgb(255, 0, 0)에 해당한다. 즉, 순수한 빨간색을 의미한다.
스크립트에서 X3DOM 코드(code)는 일반적인 HTML5 코드와 구분하기 위하여 여는 태그 <X3d>와 닫는 태그 </X3d> 사이에 위치하여야 한다. 간단한 3D 장면이라도 복수의 노드들로 구성되는데, 이 노드들은 트리(tree) 구조를 이룬다. X3DOM으로 간단한 피라미드(pyramid) 형상을 만드는 코드는 다음과 같다비특3.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>
<script type='text/javascript' src="http://www.x3dom.org/x3dom/release/x3dom.js"></script>
<link rel='stylesheet' type='text/css' href='http://www.x3dom.org/x3dom/release/x3dom.css'/>
</head>
<body>
<X3D>
<Scene>
<Shape>
<IndexedFaceSet solid='false' colorPerVertex='false' ccw='false' coordIndex='0 1 3 2 -1, 0 4 2 -1, 0 4 1 -1, 2 4 3 -1, 1 4 3 -1'>
<Coordinate point='2 0 2, -2 0 2, 2 0 -2, -2 0 -2, 0 4 0'></Coordinate>
<color color='1 0 0, 0 1 0, 0 0 1, 1 1 0, 1 0 1'></color>
</IndexedFaceSet>
</Shape>
</Scene>
</X3D>
</body>
</html>
여기에서 볼 수 있는 바와 같이 X3D 코드는 여는 태그와 닫는 태그가 <X3D><Scene><Shape><IndexedFaceSet></IndexedFaceSet></Shape></Scene></X3D>와 같이 대칭을 이루고 있다. 도 5는 메모장(notepad)으로 이 코드를 작성하여 index.html이라는 이름으로 저장한 뒤, 그 파일을 크롬(Chrome) 브라우저에서 열었을 때 보여지는 모습이다.
이 피라미드는 IndexedFaceSet이라는 노드를 이용하여 작성되었다. IndexedFaceSet 노드를 이용하면 3D 형상을 서로 연결된 다각형 면(polygon surface)들로 묘사할 수 있다. 도 5에서는 피라미드를 표현하기 위하여 하나의 정사각형 면과 4개의 삼각형 면을 사용하였는데, 충분한 숫자의 작은 다각형 면들을 사용하면 아주 복잡한 형상도 표현할 수 있다.
도 6은 x3dom의 1.5.0 버전(x3dom-1.5.0)에 포함된 예제(x3dom_buddhaBG.html)를 실행한 것이다. 3D 형상이므로 마우스나 터치(touch)를 이용하여 도 7과 같이 돌려서 다른 방향에서 바라볼 수 있다.
도 1에 보이는 대전 대흥동성당을 3D 콘텐츠로 만들어서 도 2의 표지판과 연동하기 위해서는 데이터베이스(database)에 3D 콘텐츠를 등록할 수 있는 색인(索引, index)이 필요하다. 예를 들어 대흥동성당의 지리 좌표(geographic coordinate)에 해당하는 위도(latitude)와 경도(longitude)를 색인으로 사용할 수 있으며, 실제로도 많은 데이터베이스들이 그렇게 하고 있다.
그런데 위도와 경도는 여러 가지 이유에서 데이터베이스의 색인으로 사용하기에 가장 이상적이라고 볼 수 없다. 대표적인 이유는 정수가 아닌 실수로 주어진다는 점과, 같은 위도나 경도의 간격이 같은 거리에 대응하지 않는다는 점이다.
[특 1] 내지 [특 2]에는 실외의 지리상의 위치와 건물 내의 실내 위치를 통합적으로 특정하는 새로운 방법이 개시되어 있다. 도 8은 [특 1] 내지 [특 2]의 발명에서 사용되는 북향거리(北向距離, northing)와 동향거리(東向距離, easting)의 개념을 설명하기 위한 도면이다. 도 8에서 지구를 중심이 지구타원체(Earth ellipsoid)의 원점(origin), 즉 지구의 질량 중심(Earth's center of mass)에 위치하는 구(sphere)로 가정하며, 이 구면 모델 지구(spherical model Earth)의 반경은 R이다. R 값은 6,371,008.8m를 사용할 수 있다. 이는 적도(赤道, Equator)에서의 지구의 반경에 해당한다.
세계 좌표계(World coordinate system) 또는 지구 중심 지구 고정 3차원 직각 좌표계(Earth-Centered Earth-Fixed three-dimensional Cartesian coordinate system)의 원점 C는 지구타원체의 중심, 즉 지구의 질량 중심에 위치하며, Z-축은 지구의 자전축과 일치하고, X-축은 원점에서 적도와 본초자오선(本初子午線, prime meridian)의 교점(交點, point of intersection)을 지나는 직선이며, Y-축의 방향은 오른손 좌표계(RHS: Right-Handed coordinate System)의 원리에 의하여 자동적으로 결정된다.
이때 측지위도(測地緯度, geodetic latitude) φ와 경도(經度, longitude) λ와 해발고도(海拔高度, height above sea level) h를 가지는 한 지점 P의 북향거리 N과 동향거리 E는 다음과 같이 정의한다. 먼저 구면 모델 지구의 지표면상에서 적도 Lo와 본초자오선이 만나는 점을 경위도의 원점(latitude-longitude origin) O라고 지칭한다. 그리고 (측지) 위도 φ를 가지는 위선(緯線, parallels, parallels of latitude, lines of latitude)과 본초자오선이 만나는 점 w를 경로점(經路點, waypoint)이라고 지칭한다. 그러면 북향거리는 경위도의 원점 O에서 경로점까지 본초자오선을 따라서 측정한 호(弧, arc)의 길이(arc length)로 정의하고, 동향거리는 경로점에서 측지위도 φ와 경도 λ를 가지는 구면 모델 지구의 지표면상의 한 점 S(φ, λ)까지 위선을 따라서 측정한 호의 길이로 정의한다.
그런데 이 개념을 일반화하여 북향거리와 동향거리의 측정의 시작이 되는 기준점(reference point)을 경위도의 원점 O에서 측지 위도 φo와 경도 λo를 가지는 구면 모델 지구의 지표면상의 임의의 한 점으로 이동시킬 수 있다. 그러면 기준점은 측지위도 φo를 가지는 위선과 경도 λo를 가지는 자오선의 교점이 되며, 경로점은 측지위도 φ를 가지는 위선과 경도 λo를 가지는 자오선의 교점이 된다. 또, 북향거리는 기준점에서 경로점까지 경도 λo를 가지는 자오선을 따라서 측정한 호의 길이이고, 동향거리는 경로점에서 측지위도 φ와 경도 λ를 가지는 지표면 상의 한 점 S(φ, λ)까지 측지위도 φ를 가지는 위선을 따라서 측정한 호의 길이이다.
이와 같은 정의에 의하면 북향거리는 측지위도 φ와 경도 λ의 함수로 수학식 1과 같이 주어지고, 동향거리는 수학식 2와 같이 주어지는데, 각도의 단위는 라디안(radian)이다.
여기서 R은 지구의 평균 반경이고, No는 북향거리의 기본 값이며, Eo는 동향거리의 기본 값이고, φo는 기준점의 측지위도이며, λo는 기준점의 경도이다.
이와 같은 공식을 이용하여 지구상의 임의의 점을 기준점으로 삼을 수 있다. 예를 들어 대한민국의 영토 안에서만 사용할 용도로 세종 기준점(Sejong Continuously Operating Reference Station)을 사용할 수 있고, 대한민국의 영토 안에서는 북향거리와 동향거리가 항상 양의 값을 가지도록 북향거리와 동향거리의 기본값을 부여할 수도 있다.
한편, 전 세계를 대상으로 통일된 하나의 좌표계를 사용하고자 할 경우, 북향거리와 동향거리 측정의 기준이 되는 기준점을 위도상으로는 남극(φo = -90°)으로 하고, 경도상으로는 반대자오선(反對子午線, antimeridian), 즉 경도가 180°(λo = -180°)인 지점을 택하고, 북향거리와 동향거리의 기본값은 0으로 할 수 있다(No = 0, Eo = 0). 여기서 반대자오선을 사용하는 이유는 이와 같은 선택에 의하여 전 지구상에서 북향거리와 동향거리가 양의 값을 갖게 되고, 또, 런던(London)과 같은 인구 밀집 지역에서 북향거리나 동향거리의 값이 불연속적이 되는 사태를 방지할 수 있기 때문이다.
이와 같은 선택에 의하여 북향거리는 수학식 3과 같이 주어지고, 동향거리는 수학식 4와 같이 주어진다.
또한, 역으로 북향거리와 동향거리에서 측지위도와 경도를 얻는 공식은 수학식 5 내지 6과 같이 주어진다.
이와 같은 좌표계에서 지구상의 대표적인 장소들의 북향거리와 동향거리를 계산해보면 표 1과 같다.
번호 | 장소 | 위도 | 경도 | 북향거리 | 동향거리 |
1 | 경위도원점 | 0° | 0° | 10,018,754.171m | 20,037,508.343m |
2 | 대척점 | 0° | 180° | 10,018,754.171m | 40,075,016.686m |
3 | 북극 | 90° | 0° | 20,037,508.343m | 0.000m |
4 | 남극 | -90° | 0° | 0.000m | 0.000m |
5 | 세종기준점 | 36.5222134° | 127.3031899° | 14,084,388.370m | 27,491,115.402m |
6 | 시드니 오페라 하우스 | -33.8567844° | 151.2152967° | 6,249,834.172m | 30,618,651.175m |
표 1에서 볼 수 있는 바와 같이 지구상의 모든 지점에서 북향거리와 동향거리가 유한한 양의 값을 가진다. 한편, 대한민국 영토 안에서 대표적인 지점들의 북향거리와 동향거리를 계산해보면 표 2와 같다.
번호 | 장소 | 위도 | 경도 | 북향거리 | 동향거리 |
1 | 세종기준점 | 36.5222134° | 127.3031899° | 14,084,388.370m | 27,491,115.402m |
2 | 대전 중앙로 사거리 | 36.3286936° | 127.4259233° | 14,062,845.844m | 27,570,728.707m |
3 | 백두산 천지연 | 42.0072268° | 128.0564190° | 14,694,977.268m | 25,481,535.991m |
4 | 대한민국 최남단비 (마라도) |
33.1138727° | 126.2684738° | 13,704,973.619m | 28,556,380.328m |
5 | 독도 영토 표석 | 37.2399286° | 131.8684690° | 14,164,284.060m | 27,638,526.094m |
6 | 서격렬비도 | 36.6115719° | 125.5439153° | 14,094,335.712m | 27,302,128.877m |
표 2에서 볼 수 있는 바와 같이 대한민국의 영토 안에서 임의의 위치를 1m2의 오차 범위로 특정하고자 한다면, 북향거리와 동향거리를 각각 7자리로 표시하면 된다. 예를 들어 이 좌표계를 국내에서만 사용할 목적이라면, 독도 영토 표석의 좌표는 북향거리 4,164,284m, 동향거리 7,638,526m과 같이 특정할 수 있다.
한편, 대부분의 현대인은 도시에서 살아간다. 도시에는 아파트나 상업용 빌딩 등 수많은 건물이 있으며, 실내 공간에서 살아가거나 근무하는 현대인에게는 건물 내에 있을 때 그 실내 위치를 포함하여 통합적으로 위치를 특정할 수 있는 방법이 필요하다.
아파트나 지하상가, 빌딩, 주차 타워와 같은 다층 건물에 있을 때는 해발고도보다는 층(層, floor, level) 정보가 더 중요하다. 예를 들어 높은 비즈니스 빌딩에서 누구와 만나기로 했다면, 몇 층에 있는지의 정보가 더 중요하다. 또, 누구나 한번쯤은 지하 주차장에 차를 주차했다가 지하 몇 층에 주차했는지를 잊어버려서 낭패를 당한 경험이 있을 것이다. 이와 같은 다양한 이유에서 해발고도보다도 층 정보가 더 유용하다.
도 9는 [특 1] 내지 [특 2]의 발명에서 사용하는 층 모델을 이해하기 위한 개념도이다. 단순한 수학적 모델과 일관된 개념으로 지구 전체를 묘사하기 위해서는 지면층(地面層, ground floor)을 0층이라고 부르는 것이 바람직하다. 또한 지표면이나 호수의 수면, 바다 한가운데에서의 해수면도 모두 0층으로 간주한다. 여기서 0층은 사람이 자연 상태에서 발을 딛고 돌아다닐 수 있는 지표면 및 이 지표면과 연속적으로 이어지는 건물의 층을 말한다. 따라서 갑돌이가 강변도로를 따라서 조깅을 하거나, 호수에서 수영을 하거나, 마음에 드는 가게를 발견하여 인도에서 가게 안으로 들어갔더라도 모두 0층에 있는 것이 된다. 또, 백두산이나 에베레스트산에 등정하여 산 정상에서 만세를 부르고 있을 때에도 역시 0층에 있는 것이다. 즉, 0층은 해발고도와는 아무런 상관이 없다. 한편, 우리가 2층이라고 부르는 층은 +1층이고, 3층은 +2층이다. 또한, 지하 1층은 -1층이고, 지하 2층은 -2층이다.
[특 1] 내지 [특 2]에서는 지심고도(地心高度, geocentric altitude)나 타원체고(ellipsoidal height)나 해발고도를 모두 무시하고, 대신에 층을 나타내는 정수 F를 사용한다. 또한, 수평적인 공간에서의 위치는 북향거리 N과 동향거리 E를 사용한다. 그리고 층을 나타내는 정수 F는 선택적으로 사용한다. 즉, 한 지점의 위치를 (N, E, F)라고 특정했다면, 이는 북향거리 N, 동향거리 E인 건물의 F 층을 의미한다. 현실적으로는 어떤 건물의 F 층에서 (측지) 위도와 경도가 북향거리 N과 동향거리 E에 해당하는 특정 지점을 나타낸다. 한편, (N, E)라고만 적는다면 이는 (N, E, 0)를 의미한다. 즉, 층의 개념이 필요없는 야외의 한 장소를 의미할 수도 있고, 다층 건물의 1층을 의미할 수도 있다.
이와 같이 층이라는 개념을 건물 내에서 실외로까지 논리적으로 확장하여 통합적으로 실내·외의 위치를 특정할 수 있다. 이 모델은 다층 건물이 대부분인 대도시에서 배달 음식을 시키거나 우편물을 배달하거나 다른 사람과 만날 약속을 하거나, 또는 인터넷에서 찾은 맛집을 찾아가는 등 다양한 목적에서 사용할 수 있다.
요즈음의 신규 아파트 분양광고는 아파트 내부의 구조나 편의 시설보다는 아파트의 지리적 위치에 대하여 중점적으로 홍보하고 있다. 즉, 종래의 아파트 모델하우스는 실내가 몇 평이며, 구조가 어떻게 되어 있는지, 마감재는 얼마나 고급스럽고 튼튼한 재료를 사용했는지를 홍보하는 것이 일반적이었다. 따라서 모델하우스를 방문한 고객들은 모델하우스 구석구석을 자세히 살펴보고 분양 신청을 할지 의사 결정을 하였으며, 실제로 아파트에 입주한 다음에는 모델하우스에서 보여 주었던 붙박이 가전이나 가구, 또는 마감재가 실제 분양된 아파트에서는 다르다는 이유로 분쟁을 벌이는 경우도 많았다.
그런데 요즈음은 아파트 구입시 가장 중요하게 고려되는 요소가 지하철역이 얼마나 가까운가 하는 점이며, 그 다음으로는 자녀 교육을 위한 주변의 학교, 병원, 대형 마트 등 생활 편의 시설에 대한 접근성이 얼마나 좋은가 하는 점과, 주변에 숲이나 공원, 호수 등 여가 시설의 존재 여부 등이다.
학교나 병원이나 공원의 존재, 지하철역까지의 거리는 모델하우스에서 보여줄 수 있는 것이 아니라, 지도에서 보여줄 수 있는 것이다. 따라서 지도에서 보여줄 수 있는 아파트 입지에 대한 장점과, 아파트 내부 구조를 보여주는 평면도를 결합한다면, 구매 의사를 가진 소비자 입장에서 좀 더 편리하게 살펴보고 구매 결정을 할 수 있을 것이다. 또한, 호텔이나 모텔을 예약하는 경우에도 비슷한 수요가 있을 것이다.
실내 지도(indoor map)는 건물의 층별 평면도(平面圖, floorplan)에 추가적인 정보를 더한 것을 말한다. 실내 지도는 독립적으로 사용될 수도 있지만, 실외 지도와 연동하면 그 유용성이 크게 증가한다. 구글은 2005년 2월에 웹으로 실행되는 디지털 지도를 서비스하기 시작하였으며, 실내 지도 서비스(indoor map service)는 2011년 3월에 시작되었다. 실내 지도만 서비스하는 기업은 많으나, 실내 지도와 실외 지도를 완벽하게 통합하여 서비스한 것은 구글이 최초라고 추정된다.
과거에는 큰 종이에 한 장으로 인쇄되거나 아니면 지역별로 분할되어 책으로 인쇄된 지도가 여행의 필수품이었다. 그런데 지금은 컴퓨터나 스마트폰이 대중화되면서 디지털 지도(digital map)가 그 자리를 대신하게 되었다. 디지털 지도의 가장 큰 장점은 우리가 관심 있는 장소로 화면(screen)의 중심을 옮기고(translate, move), 필요한 배율로 확대하며(zoom), 또한 눈앞에 보이는 실제 풍경과 비교하기 위하여 지도의 방향을 바꿀 수 있다(rotate)는 점일 것이다. 이와 같이 종이로 된 지도에서는 없던 편리한 기능을 구현하기 위한 기본 개념이 뷰(view)이다.
대한민국전도(大韓民國全圖, complete map of Korea) 또는 세계지도(世界地圖, world map)를 전체 지도라고 한다면, 그 중에서 컴퓨터나 스마트폰에서 보이는 지도의 일부, 또는 그 지도가 보이는 객체(客體, object)를 뷰라고 생각할 수 있다. 지도 관련하여 대표적인 클라이언트 측 오픈 소스 소프트웨어(client-side open source software)인 오픈레이어(OpenLayers)는 뷰(view)를 다음과 같이 정의하고 있다(출처: https://openlayers.org/en/latest/apidoc/module-ol_View-View.html).
뷰 객체는 지도의 간단한 이차원적인 모습을 나타낸다. 이 객체에 지도의 중심, 해상도, 회전 작업을 적용할 수 있다. 뷰는 투사 방식을 가지고 있다. 이 투사방식은 좌표의 중심을 결정하고, 이 뷰의 단위가 해상도의 단위를 결정한다. 기본적인 투사방식은 구면 메카토르(EPSG:3857)이다(A View object represents a simple 2D view of the map. This is the object to act upon to change the center, resolution, and rotation of the map. A View has a projection. The projection determines the coordinate system of the center, and its units determine the units of the resolution (projection units per pixel). The default projection is Spherical Mercator (EPSG:3857).).
구글맵(Google map), BingMap, OpenStreetMap, 네이버 지도, 카카오 지도와 같은 다른 지도들도 모두 동일한 개념을 사용한다. 따라서 뷰를 비공식적이지만 사실상 모든 디지털 지도들이 사용하는 공통 개념이라고 생각할 수 있다.
디지털 지도(digital map)에서 지도(map)는 뷰(view)와 레이어(layer)와 타겟(target)을 가지는 자바스크립트 객체(JavaScript object)이다. 오픈레이어(openlayers)는 지도 객체(map object)를 다음과 같이 설명하고 있다(출처: https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
지도는 오픈레이어의 핵심 요소이다. 지도가 그려지기 위해서는 뷰와 하나 이상의 레이어와 타겟 컨테이너가 필요하다(The map is the core component of OpenLayers. For a map to render, a view, one or more layers, and a target container are needed).
여기서 타겟 컨테이너란 HTML 문서(HTML document)에서 지도가 부착되는 문서 요소(DOM element)를 지칭한다. 가장 간단한 지도 객체는 다음과 같이 주어질 수 있다.
var map = new Map({
view: new View({
center: [0, 0],
zoom: 1
}),
layers: [
new TileLayer({
source: new OSM()
})
],
target: 'map'
});
여기서 뷰는 지도의 중심을 동향거리와 북향거리의 원점([0, 0])으로 하고, 줌은 1로 하였으며, HTML 문서에 map이라는 문서 객체 모델(DOM: Document Object Model)이 있으며, 그 문서 객체 모델에 지도를 표시한다는 의미이다. 또, 지도에 보여질 맵 타일(map tile)은 오픈스트리트맵(OSM, OpenStreetMap)을 사용한다.
인터넷으로 접속하는 디지털 지도는 지도의 줌(zoom) 값에 따라서 뷰에 보여지는 내용이 달라진다. 일반적인 지도의 줌 값은 0에서 24 정도까지 변할 수 있다. 그리고 줌 값이 1씩 증가할 때 뷰에 보여지는 영역은 1/4로 줄어들고, 역으로 지도는 4배씩 확대되어 보여진다.
도 10은 지도 제작에 있어서 실세계를 각각의 레이어로 분할하는 과정을 예시하는 개념도이다(출처: https://saylordotorg.github.io/text_essentials-of-geographic-information-systems/s11-02-multiple-layer-analysis.html). 실세계를 지도로 묘사하는 데 있어서 토지이용(土地利用, land usage) 현황, 고도(elevation), 땅의 구획(parcels), 도로(streets) 등을 각각 별도의 레이어로 구축한 것을 볼 수 있다.
사람들에게 널리 알려진 오토캐드(AutoCAD), 포토샵(Photoshop), 어도비 일러스트레이터(Adobe Illustrator)와 같은 소프트웨어들은 도면, 사진, 일러스트레이션을 생성하거나 수정하기 위하여 모두 레이어(layer)를 사용한다. 더 이전에는 셀 애니메이션(cel animation)을 만들 때에도 레이어의 개념이 사용되었다.
셀 애니메이션은 만화 영화를 만드는 제작 기법으로 배경과 등장인물들을 모두 각각 별도의 셀룰로이드(celluloid)라는 투명한 필름 위에 그린 뒤, 그 필름들을 겹쳐놓고 카메라로 촬영하여 한 프레임(frame)씩 완성하는 기술이다. 이와 같은 기술을 사용하면 프레임별로 변하지 않는 레이어는 반복 사용할 수 있어 시간과 노력을 절약할 수 있다.
레이어의 개념은 여러 장의 투명 필름을 쌓아 올리되, 각각의 투명 필름에는 한 가지 주제에 대한 이미지를 그리고, 전체 투명 필름을 순서에 맞추어 쌓아 올리고 정렬을 하면 완성된 그림이 나타나는 셀 애니메니션과 같은 것이라고 간단히 이해할 수 있다. 예를 들어 맨 아래 레이어에는 산과 들, 물이 흐르는 시내를 그린 풍경을 그리고, 그 위 레이어에는 흘러가는 구름을 그리고, 그 위의 레이어에는 나무와 꽃 등 가까운 거리의 물체들을 그리고, 맨 위 레이어에는 풀을 뜯는 사슴을 그리는 것과 같은 과정으로 생각할 수 있다.
사실 현대적인 지도는 수백 개의 레이어로 구성된다. 예를 들어 도로, 건물, 철도, 강 등이 각각 다른 레이어로 그려진다. 여러 장의 레이어로 그려지는 지도에서는 2가지가 중요하다. 첫째는 레이어의 순서가 정확해야 하며, 두 번째로 각각의 레이어들이 정확하게 포개져야 한다. 레이어들이 정렬되어야 한다는 조건은 너무나 쉽게 이해될 수 있다. 예를 들어 국도와 지방도와 철도와 고층 빌딩들과 아파트들의 상대적인 위치가 정확하게 재현되려면 각각의 레이어들이 정확하게 포개져야 할 것이다.
첫 번째 조건에서 레이어들의 순서가 중요한 이유는 레이어들이 하나씩 차곡차곡 쌓아 올려지기 때문이다. 예를 들어 사슴을 그린 레이어를 먼저 놓고, 그 위에 산을 그린 레이어를 놓는다면 산에 가리어 사슴이 보이지 않을 것이다.
그런데 본 발명은 실외 지도를 작성하는 방법에 대한 발명이 아니므로 완성된 실외 지도를 사용한다. 지도를 작성할 때에는 수백 개의 레이어가 사용되지만 완성된 실외 지도는 하나의 레이어로 간주할 수 있다.
지도 제작에 있어서 각각의 레이어에 표현되는 건물, 도로, 강, 산 등의 지형지물은 전통적으로 점(point), 연결된 선분들(connected line segments), 다각형(polygon) 등으로 구성되며, 곡선은 허용되지 않는다. 예를 들어 호(弧, arc)를 그리고 싶다면 호를 짧은 다수의 선분으로 근사하고, 이 선분들을 모두 하나로 이은 '연결된 선분들'로 표현한다.
도로, 철도, 강 등과 같이 경로(path)를 가지는 지형지물은 선으로 표현한다. 한편, 건물이나 호수와 같이 면적(area)을 가지는 지형지물은 다각형으로 표현한다. 또, 도로명, 건물명과 같은 라벨(label)은 점으로 표현한다. 다만, 지도에 점 자체를 그리는 것이 아니라 그 점의 위치에 문자열로 된 라벨을 붙이는 식이다.
도 10에서 각각의 레이어를 투명한 필름으로 제작한 뒤 사진을 찍기 위하여 순서에 맞게 겹쳐 놓았다고 가정하자. 이렇게 겹쳐 놓은 레이어들을 위에서 송곳으로 찔러서 모든 레이어에 작은 구멍을 냈다고 하면, 모든 레이어의 구멍은 실제 세계에서 같은 지리적인 위치, 예를 들어 같은 (측지) 위도와 경도를 가질 것이다.
실제 예로 국토지리정보원(National Geographic Information Institute)에서 제작한 국가 공식 지도인 국토정보맵(http://map.ngii.go.kr/ms/map/NlipMap.do)의 2020년 판은 총 193개의 레이어로 구성되어 있다. 지도 제작을 위한 오픈소스 소프트웨어인 QGIS와 같은 소프트웨어를 사용하면, 각각의 레이어를 별도로 수정한 뒤 전체 레이어를 합쳐서 한 장의 지도로 출력할 수 있다.
이 한 장의 지도는 jpeg이나 png, tiff와 같은 확장자를 가지는 그림 파일, 즉 래스터 지도(raster map)로 생성할 수도 있고, 오토캐드로 작성한 건축물의 평면도와 같은 벡터 지도(vector map)로 만들 수도 있다. 국토정보맵의 제작 과정에서는 193개의 레이어가 사용됐지만, 완성된 래스터 지도는 단일 레이어가 된다.
QGIS, OpenLayers나 Leaflet과 같은 소프트웨어를 사용하면 각자 자신의 필요에 특화된 지도를 만들 수 있다. 이 경우에도 다시 한 장 이상의 레이어를 사용할 수 있는데, 예를 들어 위성사진을 불러 온 뒤, 그 위성사진에서 희미하게 보이는 도로들을 벡터 레이어로 그리고 이 두 레이어를 겹쳐서 표시할 수 있다. 이 경우에 하늘에서 내려다본 것과 같은 실제 풍경에 도로를 두드러지게 표현함으로써 하이킹(hiking) 계획을 세우는데 사용할 수 있을 것이다.
[특 3]에는 [특 1] 내지 [특 2]에 개시된 위치 식별자(location identifier)를 사용하는 지도 기반의 온라인 플랫폼이 제시되어 있다. 도 11은 웹앱(Web App)의 형식으로 실내 지도를 서비스하는 종래 발명의 디지털 지도 시스템(digital map system)의 구성을 보여주는 개념도이다. 디지털 지도(digital map)는 스마트폰(smartphone)이나 데스크톱 컴퓨터(desktop computer) 사용자, 배달 로봇(delivery robot) 등이 인터넷(internet)을 통하여 웹 서버(web server) 혹은 서비스 서버(service server)에 접속하면, 크롬(Chrome)이나 마이크로소프트 에지(Microsoft Edge)와 같은 웹 브라우저(web browser)를 사용하여 이용할 수 있다.
디지털 지도 서비스를 원하는 사용자는 컴퓨터나 스마트폰을 이용하여 직접 웹 서버(web server)에 접속하게 되며, 웹 서버는 실외 지도 서버(outdoor map server)와 건물 데이터베이스(building database)와 건물 데이터 저장소(building data store, building data warehouse)에 연결되어 있다. 이들이 통합하여 디지털 지도 시스템(digital map system)의 하드웨어(hardware)를 구성한다고 할 수 있다.
실외 지도 서버는 사용자가 디지털 지도를 시작하면 웹 서버에 맵 타일(map tile)을 제공하여 뷰에 실외 지도를 그리도록 하는 서버이다. 예를 들어 맵 타일 서비스를 제공하는 오픈스트리트맵(www.openstreetmap.org)의 서비스 서버를 실외 지도 서버라고 간주할 수 있다.
건물 데이터베이스는 건물의 이름, 주소, 홈페이지, 지리적인 위치, 건물의 외곽선이나 평면도를 뷰에 보여주는 조건 등을 관리하며, 또한 건물의 외곽선 도면 파일이나 평면도 파일이 저장된 위치를 웹 서버에 알려주는 역할을 한다.
건물 데이터 저장소(building data store)는 건물의 외곽선 도면(building outline drawing)과 층별 평면도(floorplan per level)를 포함하는 실내 지도 파일(indoor map file)을 벡터 데이터(vector data)로 저장하고 있다. 건물 데이터 저장소는 인터넷에 연결된 NAS(Network Attached Storage)라고 생각할 수 있으며, 사용자와 콘텐츠가 늘어남에 따라 한 개 이상의 장치 혹은 서버가 될 수 있다. 웹 서버는 건물 데이터 저장소에서 실내 지도 파일을 받아서 실외 지도 위에 중첩하여 표시한다.
구글 지도는 여러 층으로 구성된 대형 건물에 대하여 실내 지도(indoor map) 서비스를 제공한다. 지도의 줌(zoom)이 사전에 설정된 값 이상이 되면 실내 지도 서비스를 제공하는 대형 건물의 기본층(default floor)의 평면도(floorplan)가 보이며, 그 건물을 클릭(click)하면 그 건물의 다른 층을 선택할 수 있는 메뉴가 지도 화면의 한쪽에 보인다. 그 메뉴에서 다른 층을 선택하면 기본층의 평면도가 해당 층의 평면도로 교체되어 보여진다.
이와 같은 방식은 직관적으로 타당하게 보이지만, 실제로는 모두가 의자에 앉아서 컴퓨터 모니터를 통하여 지도를 보던 시절에 더 적합한 방식이다. 모두가 스마트폰이 있고, 또 무인 자동차와 무인 배달 로봇이 점점 현실화되어 가는 현재에는 가장 좋은 방식이라고 할 수 없다.
스마트폰을 가지고 디지털 지도를 실행하면 스마트폰의 위치가 GPS 신호로부터 계산되어 지도상에 표시된다. 즉, 스마트폰에서 지도를 실행하면 지도에 나의 현재 위치가 표시되도록 할 수 있고, 또 나의 위치가 항상 지도의 중심에 올 수 있게 지도를 자동으로 패닝(panning)이 되도록 프로그램을 할 수도 있다. 그러므로 스마트폰의 주인이 어떤 건물의 내부로 들어갔다면 굳이 마우스 클릭(click)이나 화면 터치(touch)를 하지 않더라도 층을 선택할 수 있는 메뉴를 보여줄 수 있을 것이다. 즉, 현재 위치가 층을 선택할 수 있는 다층 건물의 내부라면 굳이 클릭이나 터치를 하지 않더라도 층을 선택할 수 있는 메뉴를 보여주는 것이 편리할 것이다.
이 방법에서 스마트폰의 주인이 지면층(ground floor)에 계속 머무른다면 층 선택 메뉴를 무시하면 되고, 계단이나 엘리베이터를 이용하여 다른 층으로 이동하려는 참이라면 층 선택 메뉴를 통하여 해당 층의 평면도를 미리 확인하면 편리할 것이다. 또한, 데스크톱 컴퓨터나 노트북의 경우에도 지도 화면의 중심을 나의 위치라고 가정하고, 지도 화면을 패닝(panning)하여 지도의 중심이 실내 지도를 제공하는 건물의 내부에 위치한다면 자동으로 층 선택 메뉴를 보여줄 수 있다. 또한, 층을 식별할 수 있는 다양한 기술들과 결합하면, 층이 바뀌면 자동으로 평면도도 교체되어 보이도록 할 수도 있을 것이다.
도 12는 OpenLayers 문법으로 작성된 자바스크립트 코드(JavaScript code)의 일부로서, 지도 객체(map object)의 구성을 보여준다. 지도 객체의 레이어는 baseLayer, buildingLayer, buildingLabelLayer, floorplanLayer, spaceLabelLayer, unitAreaMarkLayer, locationMarkerLayer로 구성된다. 레이어는 먼저 선언하는 레이어가 먼저 그려지므로 baseLayer가 가장 밑에 있고, locationMarkerLayer가 가장 위에 있다. baseLayer는 OpenStreetMap에서 그림 파일들로 지도의 타일(tile)들을 받아서 실외 지도를 그리는 레이어이다. baseLayer는 래스터 레이어(raster layer)이고, 나머지는 모두 벡터 레이어(vector layer)이다.
unitAreaMarkLayer는 단위 면적을 표시하기 위한 레이어이고, locationMarkerLayer는 지도상에서 사용자의 위치나 나침반 등을 표시하기 위한 레이어이다.
baseLayer와 unitAreaMarkLayer와 locationMarkerLayer를 제외한 나머지 레이어들이 지형지물(地形地物, geographic features, terrain features) 레이어 그룹을 형성한다. 이 중에서 buildingLayer는 건물의 외곽선(building outline)을 그리기 위한 레이어이고, floorplanLayer는 건물의 층별 평면도(floorplan per level) 중 어느 한 층의 평면도를 그리기 위한 레이어이다. buildingLabelLayer는 건물의 이름이나 홈페이지 주소 등 건물과 관련된 핵심 정보를 나타내기 위한 레이어이고, spaceLabelLayer는 층별 평면도에 보이는 개별 공간들(spaces)의 상호 등을 보여주기 위한 레이어이다. 예를 들어 각각의 방(room)이 하나의 공간이 될 수 있다.
도 12는 하나의 예시에 불과하지만, 가장 먼저 실외 지도를 표시하는 실외 지도 레이어 또는 실외 지도 레이어 그룹(outdoor map layer group)이 있고, 그 위에 벡터 레이어(vector layer)로 건물의 외곽선이나 평면도를 보여주기 위한 지형지물 레이어 그룹이 있다는 점이 중요하다. 도 12에서 실외 지도 레이어는 단 하나의 레이어(즉, baseLayer)로 구성되어 있지만, 일반적인 지도와 위성 지도를 함께 사용하는 예에서는 복수의 레이어를 가지는 실외 지도 레이어 그룹을 사용할 수 있다. 또, 지형지물 레이어 그룹은 여러 개의 레이어로 구성될 수 있다. 이와 같이 여러 개의 레이어를 사용하는 이유는 구조적으로 프로그래밍을 하기 위해서이다.
도 13은 종래 발명의 실시예에서 디지털 지도의 메인 화면(main window)을 보여준다. 메인 화면이란 YouTube나 Instagram과 같은 온라인 플랫폼을 PC나 스마트폰(smartphone)이나 태블릿 PC(tablet PC)로 시작할 때, 맨 처음에 보여지는 화면을 말한다. 도 13에서 메인 화면은 왼쪽의 사이드 패널(side panel)과 오른쪽의 뷰(view) 또는 지도 영역(map area)으로 구성되었다. 사이드 패널은 사용자와의 상호 작용을 용이하게 하기 위하여 필요하다. 도 13에서 뷰는 직사각형의 형상을 가지고 있으며, 뷰에 보이는 실외 지도의 범위를 뷰 범위(view extent)라고 부른다. 뷰 범위는 뷰 영역의 경도의 최솟값과 최댓값, (측지) 위도의 최솟값과 최댓값으로 나타내거나, 아니면 대등하게 웹 메르카토르 도법(web Mercator projection)에서의 동향거리의 최소값과 최대값, 북향거리의 최소값과 최대값으로 나타낼 수 있다.
본 발명에서는 뷰(view)와 지도 영역(map area)이라는 용어를 거의 비슷한 의미로 사용한다. 지도 영역이라는 표현은 디지털 지도에서 실제로 지도가 보여지는 영역이라는 의미로 사용된다. 한편, 뷰는 지도 영역의 의미를 포함하지만, 뷰가 지도 객체(map object)의 한 속성이자 객체(object)라는 사실을 강조한다. 즉, 뷰는 그 자체로 속성(attributes)을 가지고 있다. 예를 들어 뷰에 줌(zoom), 이동(translate), 회전(rotate) 작용을 일으키면, 지도 영역에 보이는 실외 지도나 지형지물이 변경된다. 하지만 지도 영역은 수동적인 의미로 사용된다.
도 13에서 뷰, 즉 지도 영역의 중심에는 중심 마커(center marker)가 있다. 이 뷰 중심(view center)의 좌표가 (측지) 위도와 경도, 수학식 3으로 주어지는 북향거리 N과 수학식 4로 주어지는 동향거리 E 등으로 사이드 패널에 표시된다.
도 13에서 지도 영역에 OK 벤처타운(OK Venture Town) 1층의 실내 지도가 보여지고 있다. 뷰의 중심이 이 건물 - 이하, 중앙의 건물(building at view center)이라고 지칭함 - 의 외곽선(outline) 안에 위치할 때, 좌측의 사이드 패널에는 이 건물의 이름(building name)이 표시되며, 이 건물이 3층 건물이므로 층을 선택할 수 있는 층 선택 메뉴(floor selector)가 나타난다.
이와 같이 종래 발명의 실시예는 디지털 지도(digital map)의 지도 영역(map area, view)에 실외 지도(outdoor map)와 건물(building)의 평면도(floorplan)를 포함하는 실내 지도(indoor map)를 통합적으로 표시하는 방법을 제공한다. 도 14는 종래 발명의 실시예에서 디지털 지도가 표시되는 전체 과정을 예시하는 순서도(flow chart)이다. 여기에는 실외 지도 서버(outdoor map server)를 유지하는 단계, 건물들의 외곽선 도면(building outline drawing)과 평면도(floorplan)를 건물별로 각각 개별 폴더(individual folder)들에 관리하는 건물 데이터 저장소(building data store)를 유지하는 단계, 건물들의 지도 설정 데이터(map setting data)를 관리하는 건물 데이터베이스(building database)를 유지하는 단계를 포함한다.
상기 건물 데이터베이스에 저장된 지도 설정 데이터는 각 건물의 고유식별번호(unique building identification number, primary ID, bldID)와 상기 개별 폴더에 이르는 전체 경로(full path)와 최저층(lowest floor)의 층수(minFloor)와 최고층(highest floor)의 층수(maxFloor)와 건물의 외곽선 표시 줌 레벨(zoomShowBld, zoom level for showing building outline)과 평면도 표시 줌 레벨(zoomShowFloor, zoom level for showing floorplan)과 북향거리 대응 정수(northing corresponding integer) I와 동향거리 대응 정수(easting corresponding integer) J를 포함한다.
사용자가 디지털 지도를 시작하면 초기 설정 값(initial map setting)으로 뷰에 실외 지도를 보여주는 단계와, 사용자의 줌(zoom), 팬(pan), 회전(rotate) 선택에 맞게 뷰를 갱신하는 단계를 포함한다. 뷰를 갱신하면 실외 지도가 갱신될 뿐만 아니라 그 안에 포함된 건물의 외곽선이나 평면도도 마찬가지로 줌, 팬, 회전된 상태로 보여진다.
디지털 지도의 사전 설정 데이터(preset data)에는 건물의 평면도를 표시하는 절대적인 줌 설정 값(preset zoom threshold value)이 있다. 예를 들어 대한민국전도를 보고 있을 때 대한민국 내 건물들의 평면도를 모두 표시한다는 것은 가능하지도 필요하지도 않기 때문이다. 따라서 줌이 설정 값 이상으로 일부 건물에 대하여는 평면도를 보여줄 필요성이 있는 줌 레벨(zoom level)을 예를 들어 15로 설정할 수 있다. 이와 같이 디지털 지도의 줌이 사전에 설정한 값 이상이면 건물 데이터베이스를 검색하여 지리적 위치가 뷰 범위(view extent)에 포함되는 건물들의 목록(list)을 작성하는 단계를 포함한다.
도 15는 뷰에 처음으로 평면도를 표시하는 평면도 표시 서브루틴을 예시하는 순서도이다. 뷰 범위 건물 목록 Bld_ID에 있는 건물의 숫자가 0보다 크면 for 루프(for loop)와 같은 순환 루프가 시작되며, for 루프는 목록에 있는 첫 번째 건물부터 시작한다(i = 0). 이 첫 번째 건물은 Bld_ID[0]이며, 마지막 건물은 Bld_ID[Bld_ID.length - 1]로 주어진다.
여기서 뷰 범위 건물 목록(Bld_ID)은 건물의 중심, 또는 건물의 전부나 일부가 뷰 안에 위치하고, 건물 데이터베이스에도 등록된 건물들의 목록이다. 그런데 어떤 건물은 너무 작아서 이 줌 레벨에서 표시하는 것이 부적절할 수 있다. 따라서 이 목록에 있는 건물들에 대하여 개별적으로 디지털 지도의 줌 레벨(zoom level)이 외곽선을 표시하는 줌 레벨(zoomShowBld)보다 큰 경우에만 건물 외곽선을 표시하게 된다. 또한, 뷰 범위 건물 목록에서 외곽선이 표시되어야 할 건물들의 목록 - 외곽선 표시 대상 건물 목록(bldIDsToShow)이라 지칭함 - 을 추출하여 관리한다. 이 건물, 즉 i번째 건물(ith building)이 외곽선 표시 대상 건물 목록에 있는 건물이면 이 건물의 외곽선 도면(building outline drawing)을 데이터 저장소(data store)에서 가져와서 건물 레이어(buildingLayer)에 추가한다.
실외 지도는 뷰에 보여주고자 하는 지리적 위치와 줌 레벨이 정해지면 지도에 보여질 타일들이 자동으로 정해진다. 맵 타일(map tile)은 png 파일의 형태로 제작된 정사각형의 래스터 파일(raster file)을 사용하는 경우가 대부분이다. 그런데 실내 지도는 실외 지도 위에 중첩되어 보여져야 하고, 사용자가 다른 층을 선택하면 다른 실내 지도, 즉 다른 층의 평면도가 보여져야 하므로 실외 지도와 같은 타일 방식으로는 서비스를 하기 어렵다. 따라서 실내 지도는 실외 지도와 별개의 데이터로 관리되어야 하며, 데이터 저장소(data store)에 저장되었다가 필요할 때 불러와서 실외 지도 위에 중첩하여 표시할 수 있어야 한다.
이와 같이 데이터 저장소에 저장되었다가 웹 서버에 제공되기 위해서는 텍스트(text) 기반의 벡터 파일(vector file)로 실내 지도를 작성하는 것이 바람직하며, 이에 가장 적합한 파일 형식이 지오제이슨(GeoJSON)이다. 공식적인 홈페이지(https://geojson.org)에 의하면 GeoJSON은 다양한 지리적인 데이터 구조를 표현하기 위한 형식이다(GeoJSON is a format for encoding a variety of geographic data structures)비특4.
위키피디아 한국어 사이트(https://ko.wikipedia.org/wiki/GeoJSON)에는 "GeoJSON(지오제이슨)은 위치정보를 갖는 점을 기반으로 체계적으로 지형을 표현하기 위해 설계된 개방형 공개 표준 형식이다. 이것은 JSON인 자바스크립트 오브젝트 노테이션(Object Notation)을 사용하는 파일 포맷이다."라고 해설되어 있다비특5. 따라서 외곽선 도면과 평면도는 GeoJSON 형식으로 작성하는 것이 바람직하다.
건물의 외곽선(outline)은 폐곡선(closed curve)이나 다각형(polygon)으로 주어져야 한다. 그런데 GeoJSON 형식에서는 곡선을 허용하지 않으므로 실제로는 다각형으로만 주어져야 한다. 외곽선이 다각형으로 주어지면 뷰의 중심(view center)이 다각형의 안에 있는지 바깥에 있는지 판단할 수 있다.
다각형의 꼭짓점을 구성하는 어느 한 점의 좌표는 [동향거리, 북향거리], 또는 [경도, 위도]의 형식으로 주어진다. 자바스크립트에서 대괄호(square brackets) []는 배열을 의미한다. 따라서 이 외곽선 도면을 빌딩 레이어(buildingLayer)에 추가하면 자동적으로 올바른 위치에 추가된다.
다음으로, 건물 외곽선 표시 대상 건물 목록에 있는 건물들에 대하여 디지털 지도의 줌 레벨이 건물의 이름 등을 포함하는 라벨(label)을 표시하는 줌 레벨(zoomShowLabel)보다 큰 경우에는 건물의 라벨을 건물 라벨 레이어(bldLabelLayer)에 추가한다.
그 다음으로 다시 외곽선 표시 대상 건물 목록에 있는 건물들에 대하여 디지털 지도의 줌 레벨이 건물들의 평면도 표시 줌 레벨(zoomShowFloor, zoom level for showing floorplan)보다 큰지 조사하고, 디지털 지도의 줌 레벨이 평면도 표시 줌 레벨보다 큰 건물들에 대하여는 다시 지면층(地面層, ground floor)이 있는 건물인지 확인한다. 이는 그 건물의 최저층(minFloor)이 0보다 작거나 같고, 최고층(maxFloor)이 0보다 크거나 같은지를 조사하여 알 수 있다.
다음으로, 이 두 가지 테스트를 모두 통과한 건물들의 목록 - 이하, 평면도 표시 대상 건물 목록이라 지칭함 - 을 작성하고, 이 목록에 있는 건물들에 대해서는 지면층의 평면도들을 데이터 저장소에서 가져와서 해당 건물들의 외곽선들에 부합되게 중첩하여 표시한다. 이 평면도들에 있는 점들의 위치도 모두 [동향거리, 북향거리], 또는 [경도, 위도]의 형식으로 주어지므로, 평면도 레이어(floorplanLayer)에 지면층의 평면도를 추가하면, 건물의 외곽선과 지면층의 평면도가 모두 실외 지도 상의 올바른 위치에 표시된다.
지금까지 설명한 내용은 디지털 지도를 시작하여 건물의 평면도가 처음으로 보이기까지의 순서도라고 할 수 있다. 이후 줌, 팬, 회전 작용이 또 발생하여 새로운 평면도를 추가하거나, 기존의 평면도를 이동시키거나 또는 기존의 평면도 중 일부를 제거하는 것과 같은 지도 갱신(map update) 과정은 상기한 과정을 반복할 수도 있다. 즉, 이미 작성한 뷰 범위 건물 목록과 외곽선 표시 대상 건물 목록과 평면도 표시 대상 건물 목록을 모두 0으로 초기화하고 뷰에 있는 모든 외곽선 도면과 평면도를 제거한 이후에, 뷰를 갱신하는 단계(update view)부터 다시 시작할 수도 있다.
그런데 사용자 상호작용이 일어날 때마다 건물 외곽선 도면이나 평면도를 모두 제거하고 새로 그리는 작업은 대단히 비효율적이다. 따라서 지도 갱신 서브루틴은 지금까지의 과정과 비슷하지만, 평면도 표시 서브루틴이 주로 차이가 나며, 뷰 범위 건물 목록(Bld_ID)과 외곽선 표시 대상 건물 목록(bldIDsToShow)과 평면도 표시 대상 건물 목록(floorplanIDsToShow) 이외에 추가로 외곽선 표시 건물 목록(bldIDsInView)과 평면도 표시 건물 목록(floorplanIDsInView)을 따로따로 유지하고 갱신하는 알고리즘을 사용하면 더 효과적이다. 즉, 뷰가 변화되면 뷰 범위 건물 목록과 외곽선 표시 대상 건물 목록을 새로 작성한 이후에, 외곽선 표시 건물 목록과 비교하여 기존의 건물의 외곽선 도면을 삭제하거나 갱신하는 단계 및 새로운 건물의 외곽선 도면을 추가하는 단계를 포함하며, 평면도와 관련해서도 마찬가지의 단계를 거치게 된다.
이와 같은 기능을 수행하는 디지털 지도 시스템(digital map system)은 실외 지도 서버(outdoor map server)와, 건물들의 외곽선 도면(building outline drawing)과 평면도를 건물별로 각각 개별 폴더(individual folder)에 관리하는 데이터 저장소(data store)와, 건물들의 지도 설정 데이터(map setting data)를 관리하는 건물 데이터베이스(building database)와, 뷰(view)에 실외 지도(outdoor map)와 건물(building)의 평면도(floorplan)를 포함하는 실내 지도(indoor map)를 통합적으로 표시하기 위하여 일련의 단계들(series of stages)을 실행하는, 매체에 저장된 컴퓨터 프로그램을 포함한다.
상기 일련의 단계들은 디지털 지도를 초기 설정 값(initial map settings)으로 시작하여 뷰에 실외 지도를 보여주는 단계와, 사용자의 줌(zoom), 팬(pan), 회전(rotate) 선택에 맞게 뷰를 갱신하는 단계와, 디지털 지도의 줌(zoom)이 사전에 설정한 값(preset threshold zoom value) 이상이면 건물 데이터베이스를 검색하여 지리 좌표(geographic coordinate)가 뷰 범위(view extent)에 포함되는 뷰 범위 건물 목록을 작성하는 단계와, 뷰 범위 건물 목록에 있는 건물들의 숫자가 0보다 크면 평면도 표시 서브루틴(floorplan display subroutine)과 층 선택 서브루틴(floor selection subroutine)을 실행하는 단계를 포함한다.
[특 4]에는 사용자 단말기에 설치된 전용 프로그램을 실행시킨 후, 사용자 단말기에서 스캔된 건물의 정보를 제공받는 증강 현실 모드와, 전용 서버로부터 제공받은 지도에서 선택된 건물의 정보를 제공받는 가상현실 모드 중 하나의 모드를 선택하여 실행할 수 있는 방법이 제공되어 있다. 가상현실 모드에서는 사용자 단말기에서 설정된 위치에 대하여 건물이 아이콘으로 표시된 지도를 서버에서 제공받고, 사용자가 지도에 보이는 건물을 선택하면, 선택된 건물에 포함된 상점들의 정보를 데이터베이스로부터 추출하여 단말기의 화면에 표시하여 준다.
[특 5]에는 네트워크 서버(network server)가 사용자 기기(client device)에게 실내 지도 데이터(indoor map features)를 제공하는 기술이 개시되어 있다. 사용자가 특정한 지리적인 위치와 줌 레벨에 대한 실외 지도 데이터를 요청하면 네트워크 서버는 실외 지도 데이터 중에 다층 건물(multi-floor building)이 있는지 확인한 후, 다층 건물에 대한 기본층(default floor)의 실내 지도와 실내 지도 지시기(indoor map indicator)를 사용자 기기에 표시하며, 사용자가 실내 지도 지시기를 조작함에 따라서 실내 지도가 선택적으로 표시된다.
[특 6] 내지 [특 7]에는 상호 작용이 가능한 디지털 지도에서 다층 건물의 한 층을 선택하는 기술이 개시되어 있다. 디지털 지도에는 다층 건물의 외형(external representation)이 표시되고, 사용자가 이 외형의 한 점을 선택(select)하면, 그 건물의 3D 모형이 나타나며, 그 건물의 층별 평면도가 부분적으로 중첩된 상태로 표시된다. 사용자가 이 모형을 수직 방향으로 쓸어내면(swipe), 선택된 층의 평면도가 나머지 다른 층의 평면도와 구별되는 방식으로 활성화된다.
[특 8]에는 3차원 가상현실 구현 프로그램인 VRML(Virtual Reality Modeling Language)을 사용하여 사이버 예술도시를 구현하고, 이렇게 마련된 가상공간에 가상현실 미술관과 가상현실 쇼핑몰을 운영함으로써 이용자에게 현실의 갤러리와 유사한 환경에서 예술작품을 감상하며 쇼핑도 병행할 수 있게 하는 시스템이 개시되어 있다.
[특 9]에는 VR 갤러리 생성 모듈과 VR 갤러리 실행 모듈을 포함하는 갤러리 시스템이 개시되어 있다.
[특 10]에는 클릭할 수 있는 평면도 이미지(clickable image of a 2D plan)를 생성하는 방법이 개시되어 있다. 이미지를 클릭하면 그 클릭한 점(point)에 대응하는 3D plan의 VOXEL로 연결된다. 따라서 건물의 2차원 도면의 한 부분에 대응하는 3차원 도면의 부분을 쉽게 찾을 수 있다. 각각의 VOXEL은 위도 방향, 경도 방향 및 높이(altitude)의 방향으로 각 3m 정도인 3차원 평행육면체(平行六面體, parallelepiped)이며, 적도에서 위도 방향의 10분의 1초에 대응한다. 각 VOXEL은 base64로 코딩된 10자리 문자열(10-characters using base64 encoding)로 주어진다.
[특 11]에는 증강현실장비의 화면에 투영된 공간상에 건설공간정보를 디스플레이하는 방법이 개시되어 있다. 이 방법은 건설공간정보를 디스플레이하기 위한 현실 공간상의 특정 영역을 인식하는 단계와, 특정 영역 상에 GIS 정보를 디스플레이하는 단계와, GIS(Geographic Information System) 정보 상에 BIM(Building Information Modeling)을 이용하여 3D 건물을 시각화하는 단계를 포함한다. GIS 정보를 디스플레이하는 단계는 특정 영역 상에 기설정된 크기의 전자지도 또는 위성사진을 디스플레이하는 방법으로 이루어질 수 있다.
[특 12]에는 등록된 건물에 대해 지도 이미지상에서 해당 건물의 실제 위치와 형태에 기초하여 공실정보를 표시함으로써 사용자가 공실정보가 등록된 건물의 위치를 직관적으로 파악할 수 있는 방법이 개시되어 있다.
[특 13]에는 지리정보시스템(geographic information system)에 표시되는 지리적인 데이터 레이어(geographic data layer)의 표시 상태를 변경할 수 있는 레이어 제어 도구(layer control tool)가 개시되어 있다. 레이어 제어 도구는 지리정보시스템에 보여지는 다수의 지리적인 데이터 레이어 중 하나 이상의 레이어를 보이게 하거나, 보이지 않게 하거나, 표시 상태가 변경되지 않도록 잠금(lock) 상태로 전환시킬 수 있다. 지리적인 데이터 레이어의 종류는 지형 데이터 레이어(terrain data layers), 거리 정보 데이터 레이어(street information data layers), 3D 건물 데이터 레이어(three-dimensional building data layers), 경계 데이터 레이어(border data layers) 들을 포함한다. 레이어 제어 도구는 지리적인 이미지(geographic imagery)가 표시되는 화면상의 임의의 위치로 이동시킬 수 있다. 이와 같은 레이어 제어 도구는 특히 화면의 크기가 작은 스마트폰과 같은 휴대용 기기에서 유용하게 사용될 수 있다.
한편, 가상현실(VR: Virtual Reality)과 메타버스(metaverse)는 둘 다 공간을 탐색하거나 둘러볼 수 있는 플랫폼이라는 공통점이 있다. 가상현실 공간(virtual reality space)과 메타버스 공간(metaverse space)의 가장 큰 차이점은 상호작용의 유무이다.
가상현실 공간에서는 심지어 사용자 자신도 보이지 않거나, 아니면 두 팔만 보이는 경우도 있고, 다른 사용자와는 만나기 어렵다. 그런데 메타버스 공간에서는 사용자의 아바타(avatar)가 메타버스 공간에 추가되어 사용자의 움직임을 반영한다. 사용자의 움직임은 마우스나 키보드로 조작을 할 수도 있지만, 센서나 카메라를 이용하여 사용자의 움직임을 읽은 뒤, 메타버스 공간에 있는 아바타가 대응하는 동작을 하도록 할 수 있다. 또, 동일한 메타버스 공간에 다른 사용자가 나타나면 상호작용이 가능하다. 예를 들어 비디오 게임처럼 결투를 할 수도 있고, 아니면 메타버스로 구현한 한강 시민공원에서 만나서 데이트를 하거나 같이 사진을 찍을 수도 있다.
대표적인 메타버스 플랫폼에는 로블록스(Roblox), 제페토(Zepeto), 포트나이트(Fortnite), 샌드박스(Sandbox), 마인크래프트(Minecraft), 디센트럴랜드(Decentraland), 이프랜드(ifland) 등이 있다.
도 16은 네이버(Naver)의 메타버스 플랫폼인 제페토(Zepeto)에 회원 가입을 하면서 생성된 발명자의 아바타(avatar) oldBoy를 보여주며, 도 17은 '꾸미기' 기능을 이용해 상·하의와 신발을 교체한 모습이고, 도 18은 '들어가기' 메뉴를 이용해 제페토상에서의 메타버스 공간을 의미하는 '월드(World)'에 입장한 모습이다. 발명자의 아바타 이외에 다른 사용자들이 많이 보이고 있으며, 서로 채팅(chatting)이나 춤추기 등을 하면서 즐기고 있는 모습을 볼 수 있다.
[특 14]에는 센서 등을 통해 수집된 사용자의 운동 상태 정보를 메타버스 공간상에서의 아바타의 움직임에 반영되도록 구성하고, 수집된 사용자의 운동 상태 정보를 이용하여 실시간으로 메타버스 공간상의 다른 사용자와 상호작용할 수 있도록 하는 사용자 간 상호작용이 가능한 메타버스 공간을 제공하기 위한 메타버스 클라이언트 단말 및 방법이 개시되어 있다.
[비특 1] Wikipedia, "X3D", https://en.wikipedia.org/wiki/X3D.
[비특 2] X3DOM, "official x3dom documentation", https://doc.x3dom.org/gettingStarted/index.html.
[비특 3] 가상현실을 위한 HTML5 & Web3D, 박경배·강경인 공저, 21세기사(2020년).
[비특 4] IETF(Internet Engineering Task Force), "The GeoJSON Specification: RFC 7946".
[비특 5] 위키백과, GeoJSON.
검색엔진을 통한 별도의 검색이나 홈페이지 주소에 대한 사전 지식을 바탕으로 한 사이트 방문이 필요없이 디지털 지도 기반으로 지형지물과 관련된 VR 콘텐츠나 메타버스 공간을 탐색할 수 있는 편리한 방법을 제공하고자 한다.
디지털 지도의 지도 영역(map area)에 실외 지도(outdoor map) 및 사전에 정해진 조건을 만족하는 지형지물(地形地物, geographic features, terrain features)이 실외 지도 상의 올바른 위치에 표시된다. 사용자가 지도 영역에 표시된 어느 한 지형지물을 선택하면 그 지형지물에 연관된 3D 콘텐츠(3D content)가 새 창(window)에서 가상현실(virtual reality)로 보여진다.
디지털 지도 안에서 모든 가상현실 콘텐츠를 소비할 수 있어 편의성이 증진된다.
도 1은 대전 대흥동성당의 전경.
도 2는 대흥동성당의 앞에 설치된 관광 안내판.
도 3은 도 2의 관광 안내판에 있는 QR 코드로 연결되는 대전 구도심의 랜드마크 소개 페이지.
도 4는 서울특별시의 3D 지도에서 남대문을 찾아 본 모습.
도 5는 X3DOM으로 작성한 피라미드의 모습.
도 6 내지 도 7은 X3DOM으로 작성한 부처상의 모습.
도 8은 종래 발명에서의 북향거리와 동향거리의 개념도.
도 9는 종래 발명에서의 층 정보의 개념을 예시하는 개념도.
도 10은 지도 제작에 있어서 레이어의 개념을 예시하는 개념도.
도 11은 종래 발명에서 디지털 지도 시스템의 구성을 보여주는 개념도.
도 12는 종래 발명의 실시예에서 레이어의 구성을 예시하는 도면.
도 13은 종래 발명에서 디지털 지도의 뷰와 중앙의 건물의 예를 보여주는 도면.
도 14는 종래 발명에서 지도 앱의 알고리즘을 보여주는 순서도.
도 15는 종래 발명의 실시예에서 평면도 표시 서브루틴의 순서도.
도 16은 메타버스 플랫폼인 제페토에 가입할 때 생성되는 사용자 아바타의 예.
도 17은 꾸미기 메뉴를 통하여 아바타의 복장을 변경한 모습.
도 18은 '들어가기' 메뉴를 통하여 메타버스 공간으로 이동한 모습.
도 19 내지 도 20은 본 발명의 제1 실시예에서 3D 콘텐츠가 연결된 디지털 지도의 예.
도 21은 본 발명의 제1 실시예에서 3D 콘텐츠가 보여지는 과정을 보여주는 순서도.
도 22는 다각형의 안과 밖을 구분하는 알고리즘을 이해하기 위한 도면.
도 23은 OK벤처타운 2층의 실내 지도.
도 24는 도 23의 일부를 확대한 그림.
도 25는 클릭 이벤트의 발생을 예시하는 도면.
도 26은 본 발명의 제2 실시예에서 3D 콘텐츠가 보여지는 과정을 보여주는 순서도.
도 27은 3D 실내 지도의 예.
도 28은 OK벤처타운 2층의 실내 지도에서 출원인의 사무실이 있는 204호를 확대한 도면.
도 29는 화분의 3D 모형의 예.
도 30 내지 도 31은 성당의 3D 모형의 예.
도 32는 본 발명의 제3 실시예에서 레이어의 구성을 예시하는 도면.
도 33은 본 발명의 제4 실시예에서 사물 객체를 구분하기 위한 알고리즘을 이해하기 위한 도면.
도 34는 바티칸 시국의 지도.
도 35는 바티칸 시국의 간략화된 개략도.
도 36은 가상현실 공간과 메타버스 공간의 차이를 설명하는 그림.
도 2는 대흥동성당의 앞에 설치된 관광 안내판.
도 3은 도 2의 관광 안내판에 있는 QR 코드로 연결되는 대전 구도심의 랜드마크 소개 페이지.
도 4는 서울특별시의 3D 지도에서 남대문을 찾아 본 모습.
도 5는 X3DOM으로 작성한 피라미드의 모습.
도 6 내지 도 7은 X3DOM으로 작성한 부처상의 모습.
도 8은 종래 발명에서의 북향거리와 동향거리의 개념도.
도 9는 종래 발명에서의 층 정보의 개념을 예시하는 개념도.
도 10은 지도 제작에 있어서 레이어의 개념을 예시하는 개념도.
도 11은 종래 발명에서 디지털 지도 시스템의 구성을 보여주는 개념도.
도 12는 종래 발명의 실시예에서 레이어의 구성을 예시하는 도면.
도 13은 종래 발명에서 디지털 지도의 뷰와 중앙의 건물의 예를 보여주는 도면.
도 14는 종래 발명에서 지도 앱의 알고리즘을 보여주는 순서도.
도 15는 종래 발명의 실시예에서 평면도 표시 서브루틴의 순서도.
도 16은 메타버스 플랫폼인 제페토에 가입할 때 생성되는 사용자 아바타의 예.
도 17은 꾸미기 메뉴를 통하여 아바타의 복장을 변경한 모습.
도 18은 '들어가기' 메뉴를 통하여 메타버스 공간으로 이동한 모습.
도 19 내지 도 20은 본 발명의 제1 실시예에서 3D 콘텐츠가 연결된 디지털 지도의 예.
도 21은 본 발명의 제1 실시예에서 3D 콘텐츠가 보여지는 과정을 보여주는 순서도.
도 22는 다각형의 안과 밖을 구분하는 알고리즘을 이해하기 위한 도면.
도 23은 OK벤처타운 2층의 실내 지도.
도 24는 도 23의 일부를 확대한 그림.
도 25는 클릭 이벤트의 발생을 예시하는 도면.
도 26은 본 발명의 제2 실시예에서 3D 콘텐츠가 보여지는 과정을 보여주는 순서도.
도 27은 3D 실내 지도의 예.
도 28은 OK벤처타운 2층의 실내 지도에서 출원인의 사무실이 있는 204호를 확대한 도면.
도 29는 화분의 3D 모형의 예.
도 30 내지 도 31은 성당의 3D 모형의 예.
도 32는 본 발명의 제3 실시예에서 레이어의 구성을 예시하는 도면.
도 33은 본 발명의 제4 실시예에서 사물 객체를 구분하기 위한 알고리즘을 이해하기 위한 도면.
도 34는 바티칸 시국의 지도.
도 35는 바티칸 시국의 간략화된 개략도.
도 36은 가상현실 공간과 메타버스 공간의 차이를 설명하는 그림.
이하 도 19 내지 도 36을 이용하여 본 발명의 실시예들을 상세하게 설명하기로 한다.
도 13과 같은 실내 지도를 이용하면, 그 건물의 지리적인 위치와 건물의 내부 구조를 알 수 있다. 그런데 그 건물을 처음 방문하는 경우에 그 건물의 외관이 어떤지 알 수 있다면 길을 찾는데 훨씬 도움이 될 것이다. 또, 지리적으로 멀리 떨어진 부동산을 매입하려는 경우나, 아니면 관광지의 호텔을 예약하려는 경우에도 그 건물의 외관이 얼마나 근사한지 관심을 가질 것이다. 본 발명의 제1 실시예는 건물의 외곽선을 선택(select)하면, 그 건물의 3D 모형이 가상현실로 표시되는 방법에 대한 발명이다.
도 19는 본 발명의 제1 실시예에 의한 디지털 지도 기반의 가상현실 온라인 플랫폼(virtual reality online platform)의 메인 화면(main screen)을 보여준다. 도 19의 디지털 지도에는 왼쪽의 컨트롤 창(control pane)과 오른쪽의 뷰(view), 즉 지도 영역(map area)이 보여지고 있다. 도 19에서 볼 수 있는 것처럼 이 메인 화면은 지리적인 지도(geographic map), 즉 일반도(一般圖, general map)를 실외 지도로 사용하고 하고 있다.
도 19에는 OK벤처타운 건물과 그 주위의 3채의 건물에 대한 외곽선이 보여지고 있으며, 중심 마커(center marker)는 청호 홈스텔 건물의 외곽선 안에 위치하고 있다. 이때 OK벤처타운의 건물 외곽선(building outline)을 선택(select)하면 도 20과 같은 건물의 3D 모형이 가상현실로 나타난다. 즉, 건물의 외곽선을 선택하는 행위는 중앙의 건물(building at view center)과 상관없다. 도 20에 보이는 3D 모형은 Tomasz Armata(tomaszcgb@gmail.com)씨가 작성한 AutoCAD 3ds max 모델을 X3DOM으로 변환한 것이며, 실제 OK벤처타운의 외형과는 차이가 있다.
도 19에서 OK벤처타운의 건물 외곽선을 선택(select)하는 행위(act)를 예시하기 위하여 검지 손가락을 펼친 손 모양을 표시하였다. 즉, 검지 손가락이 닿은 지점이 선택 지점(selection point)이다. 한 지점을 선택(select)하는 행위는 PC에서 마우스로 클릭(click)하는 행위와 스마트폰이나 키오스크(kiosk)의 터치 스크린에서 손가락으로 터치(touch)하는 행위가 될 수 있다.
가상현실로 보여지는 3D 콘텐츠를 가질 수 있는 건물의 외곽선은 지도 영역에서 기하학적 도형(geometric shapes)으로 표시되며, 건물 레이어(building layer)에 대응하는 기하 객체(geometric object)를 가진다. 즉, 건물 레이어가 기하 객체를 포함하고 있으면 지도 영역에서 해당 기하 객체가 기하학적 도형으로 보여진다.
기본적인 기하 객체는 점객체(Point object)와 연결선분객체(LineString object)와 다각형객체(Polygon object) 및 이들의 복수형인 다중점객체(MultiPoint object)와 다중연결선분객체(MultiLineString object)와 다중다각형객체(MultiPolygon object)가 있다.
점 객체는 [경도, 위도] 또는 [동향거리, 북향거리]로 주어지는 지리 좌표(geographic coordinate)를 가지는 객체이다. 본 실시예에서는 건물의 이름이나 공간의 이름을 표시하는 위치를 지정하기 위하여 건물 이름 레이어 및 공간 이름 레이어에서 사용된다.
연결선분객체는 연결된 선분(connected line segments)이라고 생각할 수 있다. 그림을 그릴 때 가장 기본적인 방법으로 수많은 곡선을 이용할 수 있다. 그런데 GeoJSON에서는 곡선을 허용하지 않으므로, 곡선을 대신하여 짧은 선분들이 계속 이어진 연결된 선분들로 표시하게 된다. 각 선분들의 마디점들의 좌표는 점객체로 주어진다. 그리고 하나의 곡선으로 그림을 완성하기는 불편하므로 다수의 연결된 선분을 사용할 수 있는데, 다수의 연결된 선분으로 구성되는 객체가 다중연결선분객체이다.
다각형객체(Polygon object)는 삼각형, 사각형, 오각형 등 4개 이상의 점객체를 이용하여 연결된 선분으로 묘사할 수 있는 도형인데, 그 다각형의 안과 바깥을 구분할 수 있는 것이 특징이다. 예를 들어 마우스 클릭(mouse click)이나 터치(touch)를 이용하여 사용자가 지도와 상호작용할 때 그 클릭 포인트(click point)나 터치 포인트(touch point)가 특정 다각형의 안에 있는지 바깥에 있는지 판별할 수 있다. 이를 위해서 첫 번째 좌표와 마지막 좌표가 동일할 것이 요구된다. 즉, 연결선분객체로 삼각형 모양을 그리려면 3개의 점객체가 필요하지만, 다각형객체로 삼각형을 그리려면 4개의 점객체가 필요하다.
어느 한 건물을 선택(click 또는 touch)하는 행위는, 건물의 외곽선을 나타내는 다각형의 한 변을 선택해도 되지만, 다각형으로 주어지는 그 건물의 외곽선 내의 한 점을 선택해도 된다. 따라서 건물의 외곽선을 다각형객체로 작성하면, 건물을 선택하기가 훨씬 수월하다.
어느 한 건물의 외곽선에 대하여 대표 지점의 위도와 경도를 특정할 수 있고, 이로부터 수학식 3 내지 4로 주어지는 북향거리 N과 동향거리 E를 계산할 수 있다. 대표 지점은 건물의 외곽선을 나타내는 다각형의 도심(centroid)으로 할 수 있다. 이 북향거리 N과 동향거리 E에서 북향거리 대응 정수(northing corresponding integer) I와 동향거리 대응 정수(easting corresponding integer) J를 계산한 뒤, 이를 이용하여 데이터베이스에 등록할 수 있으며, 그 지리적인 위치가 지도 영역, 즉 뷰 범위(view extent)에 속하고 지도의 줌(zoom) 값이 건물의 외곽선을 지도에 표시하기 위한 줌 값보다 크면 데이터 저장소(data store)에서 건물 외곽선 파일들을 가져와서 지도 영역에 표시하게 된다.
전술한 바와 같이 건물 외곽선은 다각형객체 또는 다중다각형객체(MultiPolygon object)로 표현된다. 다중다각형객체라도 실제로 객체에 포함된 다각형은 단 하나이다. 즉, OK벤처타운의 건물 외곽선은 다중다각형객체이며, 이 다중다각형객체를 선택(select)하면 도 20에 보이는 바와 같이 3D 콘텐츠가 새 창(window)에서 가상현실로 나타난다. 전술한 바와 같이 3D 콘텐츠를 X3DOM으로 준비하는 것이 가장 바람직하다. 사용자는 이 3D 모형을 돌려서 모든 방향에서의 형상을 볼 수 있고, 하늘에서 내려다보거나 어느 한 부분을 확대해서 볼 수도 있다.
X3DOM으로 만들어진 콘텐츠를 탐색(explore)하는 모드(mode)에는 관찰 모드(Examine mode), 걷기 모드(Walk mode), 비행 모드(Fly mode), 올려다보거나 내려다볼 수 있는 헬리콥터 모드(Helicopter mode), 자세히 살펴보는 룩앳 모드(Look at mode), 관찰모드와 유사한 턴테이블 모드(Turntable mode), 그리고 게임 모드(game mode)가 있다비특 3. 건물의 외형을 가상현실로 탐색하기에는 관찰 모드가 적당할 것이다. 따라서 건물의 3D 모형이 새 창에서 가상현실로 나타날 때 관찰 모드로 시작되도록 프로그래밍을 하면 편리할 것이다.
도 21은 본 발명의 제1 실시예에서 건물 외형의 3D 콘텐츠가 새 창에서 가상현실로 보여지는 과정을 보여주는 순서도이다. 디지털 지도가 시작된 이후에 프로그램은 끊임없이 지도 영역에 선택 이벤트(selection event)가 발생하였는지 검사한다. 전술한 바와 같이 선택 이벤트는 클릭 이벤트(click event)와 터치 이벤트(touch event)를 포함한다. 이후에는 논의의 편의를 위하여 클릭 이벤트를 기준으로 설명하겠다.
클릭 이벤트가 발생하면, 클릭 포인트(click point)의 지리 좌표(geographic coordinate)를 계산한다. 다음으로 건물 레이어(building layer)에 이 좌표에 해당하는 건물 객체(building object)가 있는지 검사한다. 건물 객체가 있으면, 그 건물 객체에서 건물 아이디(building ID, bldID)를 추출한다. 다음으로 추출된 건물 아이디를 가지고 데이터베이스에서 해당 건물의 3D 콘텐츠의 URL을 조회한다(query). 3D 콘텐츠의 URL은 3D 콘텐츠가 있는 주소를 말하는 것이 아니라, 3D 콘텐츠가 있다면 그 3D 콘텐츠가 저장되어 있는 주소를 말한다. 이 주소는 그 건물의 대표 지점의 지리 좌표로부터 계산되어 데이터베이스에 등록된다.
이 주소는 처음부터 없는(empty) 주소일 수 있다. 즉, 아예 데이터베이스에 등록된 주소가 없을 수 있다. 또는, 주소(URL)는 타당한(valid) 주소이지만, 그 주소에 실제로 가상현실로 보여질 수 있는 파일이 없을 수도 있다. 그러므로 그 주소에 실제로 3D 콘텐츠가 있는지 검사하여야 한다. 어느 주소에 특정한 이름의 파일이 존재하는지는 자바스크립트(JavaScript)나 PHP 함수를 이용하여 여러 가지 방법으로 구현될 수 있다. 해당 파일이 존재하면 3D 콘텐츠를 새 창(window)에서 가상현실로 보여준다.
이 과정을 자세히 살펴보면 다음과 같다. 먼저, 지도 영역, 즉 뷰(view)에 클릭 이벤트가 발생하였는지를 검사하기 위해서는 맵 객체에 이벤트 리스너(event listener)가 연결되어 있어야 한다. 그런데 클릭 이벤트(click event)는 가장 흔한 이벤트이므로 자바스크립트 문법으로 간단하게 다음과 같이 할 수 있다.
map.on(['click'], function(event) {
let location = event.coordinate;
...
});
이는 맵 객체(map object)에 'click' 이벤트가 발생하면, 그 이벤트가 이름이 없는 무명 함수 function(){...}에 전달되며, 그 무명 함수에 정의된 코드를 수행하라는 의미이다. 클릭 이벤트가 발생하였다면, 클릭 포인트의 좌표는 event.coordinate로 계산할 수 있다. 따라서 이 함수 안에서 클릭 포인트의 좌표는 location이라는 변수에 저장된다.
그런데 PC에서 디지털 지도를 움직이기 위해서도 마우스로 클릭한 뒤 움직이게 된다(drag). 따라서 3D 콘텐츠를 보여주려는 의도인지, 아니면 지도를 움직이려는 의도인지 프로그램이 구분을 할 수 있어야 한다. 두 가지 이벤트의 차이는 클릭 이후에 드랙(drag) 동작이 이어지는지의 여부이다. 오픈레이어에서는 마우스를 클릭한 이후에 정해진 시간 동안 drag 동작이 발생하지 않아야 진짜 클릭 이벤트로 취급한다. 따라서 도 19에서 건물의 외곽선을 클릭하고 마우스를 상하나 좌우로 움직이면 지도가 움직이며, 마우스를 클릭한 이후에 250ms 동안 마우스를 움직이지 않으면 클릭 이벤트로 판단한다. 따라서 도 20의 3D 콘텐츠가 새 창에서 가상현실로 보여지도록 할 수 있다. 또, 도 19에서 지도 영역에 보이는 건물의 외곽선을 선택(click)하는 행위는 결국 건물 레이어(building layer)에 추가된 건물 객체(building object)를 선택하는 것이다.
만약, 좀 더 명확하게 구분을 하고 싶다면 더블 클릭 이벤트(double click event)를 연결할 수도 있다. 더블 클릭 이벤트는 짧은 시간 동안 클릭 이벤트가 두 번 발생하는 이벤트를 의미한다. 또, PC가 아니라 스마트폰이나 키오스크(kisok)라면 마우스를 갖추고 있지 않다. 대신에 화면에 터치 센서(touch sensor)가 구비되어 있다. 따라서 스마트폰에서는 터치 이벤트(touch event)가 클릭 이벤트(click event)를 대신한다.
이와 같은 다양한 이벤트를 본 발명에서는 해당 건물 객체를 선택(select)한다고 지칭한다. 따라서 프로그램을 어떻게 했느냐에 따라서 건물을 선택하는 행위는 클릭 이벤트나 더블 클릭 이벤트, 또는 다른 이벤트가 될 수 있다. 또 디지털 지도가 실행되는 기기(device)에 따라서 클릭 이벤트가 될 수도 있고, 터치 이벤트가 될 수도 있다.
도 22는 클릭 이벤트가 발생한 지점이 특정한 다각형의 내부인지 외부인지를 판별하는 알고리즘을 이해하기 위한 도면이다. 도 22에서 다각형의 예로 5각형이 주어졌으며, 다섯 개의 꼭짓점(P1, P2, P3, P4, P5)이 있다. 그리고 첫 번째 클릭 이벤트가 발생한 지점이 C1이라고 가정하자. 그러면 C1에서 5각형의 다섯 개의 인접한 꼭짓점들 사이의 각도를 계산한다. 이는 C1에서 바라본 첫 번째 꼭짓점 P1과 두 번째 꼭짓점 P2 사이의 각도 θ1을 구하고, 나머지 꼭짓점들 사이에 대해서도 마찬가지로 각도를 구한다. 반시계방향의 각도는 양(+)의 값을 갖는 것으로 간주하므로 5개의 각도를 모두 더하면 360°가 된다(θ1 + θ2 + θ3 + θ4 + θ5 = 360°). 이와 같이 사잇각의 합계가 360°가 되면 해당 클릭 포인트(click point)가 다각형의 안에 위치한다고 판별할 수 있다.
한편, 두 번째 클릭 포인트 C2에 대해서는 다섯 개의 사잇각의 합계가 0이 된다(φ1 + φ2 + φ3 + φ4 + φ5 = 0°). 세 번째 꼭짓점 P3와 네 번째 꼭짓점 P4 사이의 각도가 나머지 각도들을 합친 값과 크기는 같고, 부호는 반대이기 때문이다.
이와 같이 다각형의 내부에 위치하는 클릭 포인트에 대해서는 모든 사잇각들의 합계가 항상 360°로 주어지고, 다각형의 외부에 위치하는 클릭 포인트에 대해서는 모든 사잇각들의 합계가 항상 0°로 주어진다. 따라서 클릭 포인트가 특정한 다각형의 내부에 있는지 외부에 있는지를 판별할 수 있다.
이상의 방법은 순수한 자바스크립트 문법을 이용하여 구현할 수 있다. 그런데 오픈레이어(OpenLayers)와 같은 라이브러리를 사용하면 해당 기능이 이미 함수로 갖추어져 있다. 예를 들어 건물 레이어에서 클릭 포인트에 있는 건물 객체를 구하는 문법은 다음과 같이 될 수 있다.
sourceBuilding.getFeaturesAtCoordinate(event.coordinate)
여기서 sourceBuilding은 건물 레이어(buildingLayer)에 추가된 건물 객체(building object)를 가지고 있는 변수이다. 따라서 이 한 줄의 코드는 클릭 이벤트(event)가 발생한 지점(event.coordinate)에 있는 건물 객체라는 의미가 된다. 이 값이 널(null)이 아니라면 건물 객체가 존재하고, 널이라면 해당 위치에는 건물 객체가 존재하지 않는다.
도 19에 보이는 OK벤처타운의 건물 객체는 다음과 같이 주어진다.
let buildingObject = {"type": "FeatureCollection","name": "OK벤처타운","crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },"features": [{ "type": "Feature", "properties": { "bldID": 1, "bldName": "OK벤처타운", "strokeColor": "rgba(255, 0, 0, 1)", "strokeWidth": 2, "strokeLineDash": [4, 10], "fillColor": "rgba(255, 124, 0, 0.3)"}, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 127.42673979, 36.32993296 ], [ 127.42673634, 36.32991789 ], [ 127.42670896, 36.329922 ], [ 127.42668601, 36.32982188 ], [ 127.42666849, 36.32982451 ], [ 127.4266565, 36.32977223 ], [ 127.42655466, 36.32978752 ], [ 127.42654317, 36.32973737 ], [ 127.42655631, 36.32973539 ], [ 127.42655143, 36.32971413 ], [ 127.4266375, 36.32970121 ], [ 127.4266434, 36.32972691 ], [ 127.42670691, 36.32971737 ], [ 127.42672181, 36.32978236 ], [ 127.42682863, 36.32979296 ], [ 127.42683222, 36.32991908 ], [ 127.42673979, 36.32993296 ] ] ] ] } }]}
여기에서 볼 수 있듯이 이 건물 객체(building object)는 다중다각형객체("type": "MultiPolygon")으로 주어졌으며, 꼭짓점들의 좌표는 경도와 위도의 쌍 [경도, 위도]의 배열로 주어졌다. 그런데 지도 영역에 표시하는 과정에서 실시간으로 [경도, 위도]를 [동향거리, 북향거리]로 바꾸어서 표시한다. 지도 영역에 표시할 때 사용하는 동향거리와 북향거리는 웹 메르카토르(Web Mercator) 도법에서의 동향거리와 북향거리를 사용하는 것이 인기가 있으며, 본 발명에서 데이터베이스에 등록하기 위하여 색인(index)으로 사용하는 동향거리 및 북향거리와는 다르다.
즉, 본 발명에서는 세 벌의 좌표를 사용한다. 첫 번째로 모든 점객체(Point object)의 좌표는 경위도의 배열 [경도, 위도]로 저장한다. 그런데 이를 디지털 지도의 뷰, 즉 지도 영역에 표시할 때에는 웹 메르카토르 좌표계에서의 [동향거리, 북향거리]를 사용한다. 한편, 특정한 객체를 데이터베이스에 등록할 때 그 색인(index)은 수학식 3 내지 4로 주어지는 북향거리와 동향거리를 사용한다. 더 정확하게는 북향거리 대응 정수 I와 동향거리 대응 정수 J를 사용한다.
OK벤처타운의 건물 객체의 아이디(bldID)가 1로 주어졌다. 이 건물 객체는 자바스크립트 객체이므로 아이디를 다음과 같이 추출할 수 있다.
buildingObject.features[0].properties.bldID
이와 같이 건물 아이디를 구했으면 데이터베이스를 조회하여 이 건물 객체에 연관된 3D 콘텐츠가 저장된 주소(URL)를 확인한다. 예를 들어 이 주소는 "https://map.digitalearth.land/datastoreVR/N14062971E27570403/Bld/index.html"와 같이 주어질 수 있다. 즉, "https://map.digitalearth.land/datastoreVR/N14062971E27570403/Bld" 폴더(folder)에 저장된 index.html 파일을 시작하면 도 20의 건물 모형이 X3DOM으로 시작된다.
전술한 바와 같이 그 주소에 실제로 index.html 파일이 있는지 확인하는 방법은 여러 가지로 구현될 수 있다. 3D 콘텐츠가 있는 것으로 확인되면 다음과 같은 문법으로 3D 콘텐츠가 새 창(window)에서 가상현실로 보여지도록 할 수 있다.
window.open("https://map.digitalearth.land/datastoreVR/N14062971E27570403/Bld/index.html", _self);
여기서 window.open("---", _self)는 새 창으로 브라우저(browser)를 시작하라는 HTML 표준 문법이다.
본 발명에서 건물 레이어는 지형지물(地形地物, geographic feature, terrain feature) 레이어 그룹에 속하는 벡터 레이어이다. 지형지물 레이어 그룹은 건물 레이어와 평면도 레이어와 다른 레이어를 포함한다.
이와 같이 본 발명의 실시예에 의한 디지털 지도 기반의 가상현실 온라인 플랫폼(digital map based virtual reality online platform)은 실외 지도 레이어(outdoor map layer)와 하나 이상의 벡터 레이어(vector layer)를 가지는 지형지물 레이어 그룹(geographic feature layer group)을 가지는 지도 객체(map object)를 가진다. 지형지물 레이어 그룹은 실외 지도 레이어 위에 있다. 지형지물 레이어 그룹에는 지도 영역에 보이는 기하학적 도형에 대응하는 기하 객체(geometric object)가 포함되어 있다. 사용자가 기하학적 도형을 선택하는 행위는 내부적으로는 기하학적 도형에 대응하는 기하 객체를 선택하는 행위이다.
디지털 지도의 지도 영역(map area)에는 실외 지도(outdoor map) 및 사전에 정해진 조건을 만족하는 지형지물이 실외 지도상의 올바른 위치에 표시되며, 사용자가 지도 영역에 표시된 어느 한 지형지물을 선택하면 그 지형지물에 연관된 3D 콘텐츠(3D content)가 새 창(window)에서 가상현실(virtual reality)로 보여진다.
여기서 사전에 정해진 조건이란 지형지물의 대표 지점의 지리 좌표(geographic coordinate)가 뷰 범위(view extent)에 포함되고, 지형지물이 지도 영역에 표시되기 위한 줌(zoom) 값보다 디지털 지도의 줌 값이 큰 조건을 포함한다.
또, 사용자가 지형지물을 선택하는 행위는 마우스로 클릭(click)하거나 더블 클릭(double click)하거나 손가락으로 터치(touch)하는 행위 중의 어느 하나이다.
디지털 지도의 지도 객체(map object)는 실외 지도 레이어(outdoor map layer)와 하나 이상의 벡터 레이어(vector layer)를 가지는 지형지물 레이어 그룹(geographic feature layer group)을 가진다. 지형지물 레이어 그룹은 실외 지도 레이어 위에 있고, 지형지물 레이어 그룹에는 지도 영역에 보이는 지형지물을 표시하는 기하 객체(geometric objects)가 포함되어 있다. 기하 객체는 지오제이슨(GeoJSON) 형식의 다각형객체(Polygon object)와 다중다각형 객체(MultiPolygon object)와 연결선분객체(LineString object)와 다중연결선분객체(MultiLineString object) 중 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어진다.
또, 디지털 지도를 기반으로 지형지물의 3D 콘텐츠(3D content)를 표시하는 방법은, 디지털 지도의 지도 영역(map area)에 사전에 정해진 조건을 만족하는 지형지물을 표시하는 단계, 지도 영역에 선택 이벤트(selection event)가 발생하였는지 검사하는 단계, 선택 이벤트가 발생했으면 선택 포인트(selection point)의 지리 좌표(geographic coordinate)를 계산하는 단계, 계산된 지리 좌표에 지형지물이 있는지 검사하는 단계, 지형지물이 있으면 대응하는 기하 객체(geographic object)의 속성(attributes)을 추출하는 단계, 추출된 기하 객체의 속성으로 데이터베이스에서 3D 콘텐츠의 URL을 조회하는 단계, 조회된 URL에 실제로 3D 콘텐츠가 있는지 확인하는 단계, 3D 콘텐츠가 있으면 해당 3D 콘텐츠를 새 창(window)에서 가상현실(virtual reality)로 보여주는 단계를 포함한다.
건물 내의 어느 한 장소를 찾아가려고 한다면 실내 지도를 참조하여 그 목적을 달성할 수 있다. 그런데 여행지의 호텔을 예약하려는 경우에는 실제로 호텔 내부의 시설이 어떤지 궁금할 것이다. 하지만, 실내 지도로는 그 내부적인 구조만 파악할 수 있을 뿐 예를 들어 호텔이 벽을 대리석으로 마감한 고급 호텔인지, 아니면 페인트나 싸구려 벽지를 바른 저렴한 호텔인지 알 수 없을 것이다. 이와 같은 정보를 알 수 있기 위해서는 건물 내부를 가상현실(VR: Virtual Reality)로 돌아볼 수 있는 것이 가장 바람직할 것이다.
본 발명의 제1 실시예에서는 건물의 외곽선을 선택하면 그 건물의 3D 모형이 새 창에서 가상현실로 표시되었다. 본 발명의 제2 실시예에서는 건물의 3D 모형과 건물 내 어느 한 층의 3D 모형이 선택적으로 표시되는 방법에 관한 발명이다.
도 23은 OK벤처타운 2층의 평면도를 지오제이슨(GeoJSON) 형식으로 작성한 실내 지도 파일(F1.geojson)을 QGIS로 열어 본 것이며 도 24는 2층 화장실 근처를 확대한 것이다. 여기에는 방 번호나 사무실 이름 등이 표시되지 않았는데, 방 번호와 같은 텍스트(text) 기반의 정보는 건물 데이터베이스에 별도로 저장되어 있기 때문이다.
도 23에 보이는 2층의 평면도(floorplan)가 도 19에 보이는 건물 외곽선과 다른 점은 건물 외곽선은 다중다각형객체인데 반하여, 평면도는 다수의 다중다각형객체와 연결선분객체의 조합(combination)으로 구성된다는 점이다. 다음은 2층의 실내 지도 파일의 일부를 보여준다,
let floorplanObject = {"type": "FeatureCollection","name": "F1","crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },"features": [{ "type": "Feature", "properties": { "Layer": "wall", "bldID": 1, "strokeColor": "rgba(0, 0, 0, 1)", "strokeWidth": 1, "fillColor": "rgba(0, 0, 0, 1)", "floor": "F1", "level": "L1" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 127.42678864, 36.32992563 ], [ 127.42678811, 36.32992332 ], [ 127.42678285, 36.32992411 ], [ 127.42678338, 36.32992642 ], [ 127.42678864, 36.32992563 ] ] ] ] } },
…………… 중략 ……………
{ "type": "Feature", "properties": { "Layer": "window", "bldID": 1, "strokeColor": "rgba(0, 255, 255, 1)", "strokeWidth": 2, "fillColor": "rgba(255, 0, 0, 1)", "floor": "F1", "level": "L1" }, "geometry": { "type": "LineString", "coordinates": [ [ 127.42655125, 36.32976782 ], [ 127.42654998, 36.32976228 ], [ 127.42654871, 36.32975674 ] ] } }]}
여기에서 볼 수 있는 것처럼 벽(wall)은 다중다각형(MultiPolygon) 객체로 작성되었으며, 창문(window)은 연결선분(LineString) 객체로 작성되었다. 따라서 도 23에 보이는 실내 평면도에 클릭 이벤트가 발생하기 위해서는 벽이나 창문 등 다중다각형객체나 연결선분객체를 직접 클릭하여야 하고, 방 한가운데와 같이 빈 공간을 클릭하면 안 된다.
물론 실내 지도 파일과 알고리즘을 어떻게 작성하느냐에 따라서 방 한 가운데의 빈 공간에서도 클릭 이벤트가 발생하도록 할 수 있지만, 벽이나 문이나 창문을 클릭할 경우에만 클릭 이벤트가 발생하도록 하는 경우가 더 유용하다고 판단된다.
도 25는 지도 영역(map area)의 한 지점을 클릭했을 때 이벤트가 발생하는 다양한 경우를 예시하는 도면이다. 도 25에는 실외 지도 레이어(baseLayer)와 건물 레이어(buildingLayer)와 평면도 레이어(floorplanLayer)만 도시되어 있다. 전술한 바와 같이 실외 지도 위에 건물 레이어가 있으며, 건물 레이어 위에 평면도 레이어가 있다. 실외 지도 레이어에는 아무런 이벤트 리스너(event listener)가 연결되어 있지 않고, 건물 레이어와 평면도 레이어에 이벤트 리스너가 연결되어 있다고 가정한다.
C1이라고 표시된 점을 클릭하면 아무런 이벤트가 발생하지 않는다. 건물 레이어와 평면도 레이어에는 이 지점에 아무런 객체가 없기 때문이다. C2라고 표시된 점을 클릭하면 건물 레이어에서만 이벤트가 발생한다. 따라서 건물의 외형을 가상현실로 보여주도록 할 수 있다. 그런데 C3라고 표시된 점을 클릭하면 평면도 레이어와 건물 레이어에서 동시에 이벤트가 발생한다. 따라서 건물의 3D 모형과 3D 실내 지도를 선택적으로 표시하기 위해서는 평면도 레이어와 건물 레이어에서 이벤트가 동시에 발생한 경우에는 3D 실내 지도가 표시되도록 하고, 건물 레이어에서만 이벤트가 발생한 경우에는 건물의 3D 모형이 표시되도록 하는 것이 필요하다.
도 26은 본 발명의 제2 실시예에서 3D 콘텐츠가 보여지는 과정을 예시하는 순서도이다. 지도 객체(map object)에 클릭 이벤트(click event)가 발생하면, 클릭 이벤트가 발생한 지점의 지리 좌표를 구한다. 다음으로, 이 클릭 포인트에 평면도 객체가 있는지 조사한다. 평면도 객체가 있으면, 평면도 객체에서 건물 아이디(building ID, bldID)와 층(floor) 속성을 추출하여 건물과 건물 내 층을 파악한다. 다음으로, 건물 아이디 bldID와 층 F으로 이 건물의 층에 연관된 3D 콘텐츠의 주소(URL)를 데이터베이스에서 조회하고, 해당하는 주소에 실제로 3D 콘텐츠 파일이 있는지 조사한다. 3D 콘텐츠 파일이 있으면 3D 콘텐츠를 새 창에서 가상현실로 보여준다.
한편, 클릭 포인트에 평면도 객체가 없으면, 건물 객체가 있는지 조사한다. 건물 객체가 있으면 건물 객체에서 건물 아이디를 추출한다. 다음으로, 추출된 건물 아이디로 건물의 3D 콘텐츠의 주소(URL)를 데이터베이스에서 조회한 뒤, 해당하는 주소에 실제로 3D 콘텐츠 파일이 있는지 확인한다. 3D 콘텐츠 파일이 있으면, 3D 콘텐츠를 새 창에서 가상현실로 보여준다.
OK벤처타운 2층의 3D 콘텐츠, 즉 3D 실내 지도의 주소(URL)는 "https://VR.digitalearth.land/datastoreVR/N14062971E27570403/F1/index.html"와 같이 주어질 수 있다. 도 27은 이와 같은 알고리즘에 의하여 새 창에서 가상현실로 보여지는 OK벤처타운 2층의 입체 실내 지도를 예시한다. 이 역시 도 23에 보이는 실제 실내 지도와는 차이가 있다. 도 27에 보이는 3D 모형은 CarloBoxStudio (https://sketchfab.com/CarloBoxStudio)의 3D 모형을 X3DOM으로 변환하여 사용하였다.
건물의 3D 모형은 관찰(Examine) 모드로 탐색하는 것이 바람직하지만, 건물 내 어느 한 층의 3D 모형은 걷기(Walk) 모드로 탐색할 수 있는 것이 바람직할 것이다.
건물 레이어와 평면도 레이어는 모두 지형지물 레이어 그룹에 속하며, 평면도 레이어가 건물 레이어 위에 있다. 건물 레이어는 지도 영역에 보이는 건물의 외곽선을 다각형객체나 다중다각형객체로 표시하는 건물 객체(building object)를 포함하며, 평면도 레이어는 지도 영역에 외곽선이 표시된 건물들 중 사전에 정해진 조건을 충족하는 건물들의 어느 한 층의 평면도를 건물들의 외곽선과 부합되게 표시하는 평면도 객체(floorplan object)를 포함한다. 평면도 객체는 다각형객체와 다중다각형객체와 연결선분객체와 다중연결선분객체들 중의 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어진다.
건물의 어느 한 층의 평면도가 표시되는 조건이란, 지도 영역에 평면도가 표시된 건물들은 지도의 줌 값이 그 건물의 평면도 표시 줌 값보다 크면서 해당 건물이 지면층(ground floor)이 있는 건물이거나, 사용자가 지도와의 상호 작용을 통하여 지면층이 아닌 다른 층을 선택한 경우를 의미한다.
지도 영역에 평면도가 표시되지 않은 건물 객체를 선택하면 해당 건물의 3D 모형을 포함하는 가상현실 공간(virtual reality space)이 새 창(window)으로 열리고, 지도 영역에 평면도가 표시된 건물의 평면도 객체를 선택하면 해당 평면도의 3D 모형을 포함하는 가상현실 공간이 새 창으로 열린다.
건물의 3D 모형 또는 평면도의 3D 모형을 포함하는 가상현실 공간은 X3DOM으로 주어진다. 그런데 해당 건물의 3D모형을 포함하는 가상현실 공간은 관찰(Examine) 모드로 나타나고, 해당 평면도의 3D 모형을 포함하는 가상현실 공간은 걷기(Walk) 모드로 나타난다.
도 28은 OK벤처타운 2층의 실내 지도에서 204호에 위치한 출원인의 사무실을 보여준다. 왼편에는 출입문이 있고, 오른편에는 창문이 있으며, 창문 아래에는 화분이 놓여있다. 이 화분에 별도의 3D 콘텐츠가 연결되어 있다면, 이 화분을 선택했을 때 도 29에 보이는 것과 같은 화분의 3D 모형이 나타나도록 할 수도 있을 것이다. 도 29는 ernest bezera(ernestbezera@gmail.com)씨에 의한 3D 모형이다.
도 28에 보이는 화분은 건물의 일부가 아니며, 콘텐츠의 관리 측면에서도 레이어를 분리하는 것이 바람직하다. 화분과 같은 사물(事物, thing) 또는 동산(動産, movables)은 별도로 사물 레이어(thing layer, thingLayer)에 관리하는 것이 바람직할 것이다.
한편, 도 30 내지 도 31은 Zahi Khawand(https://sketchfab.com/LibanCiel)에 의한 성당의 3D 모형이다. 도 30에 보이는 3D 모형은 성당의 부지 위에 성당 건물과 초목 등이 있는 것을 볼 수 있다. 따라서 이 모형은 건물 레이어에 포함시키기에 적당하지 않다.
도 32는 본 발명의 제3 실시예의 레이어의 구성을 보여주며, 실외 지도 레이어(outdoor map layer)와 지형지물 레이어 그룹(geographic feature layer group)을 포함한다. 도 32에서 기초 레이어(base layer) baseLayer가 실외 지도 레이어이며, 영역 레이어(territory layer) territoryLayer, 영역 이름 레이어(territory name layer) territoryLabelLayer, 건물 레이어(building layer) buildingLayer, 건물 이름 레이어(building name layer) buildingLabelLayer, 평면도 레이어(floorplan layer) floorplanLayer, 공간 이름 레이어(space name layer) spaceLabelLayer, 사물 레이어(thing layer) thingLayer, 사물 이름 레이어(thing name layer) thingLabelLayer는 지형지물 레이어 그룹에 속한다.
도 32에서 지형지물 레이어 그룹에 속하는 레이어들은 형식상 별도의 레이어로 구성되어 있다. 그런데 지형지물 레이어 그룹에 속하는 레이어들을 실제로 하나의 배열(array)로 묶은 뒤, 이 배열을 지도 객체에 추가하는 것도 가능하다. 마찬가지로 실외 지도 레이어는 단 하나의 레이어(baseLayer)로 구성되었지만, 이를 단 하나의 레이어를 포함하는 배열로 대체할 수도 있고, 하나의 레이어를 포함하는 실외 지도 레이어 그룹을 지도 객체에 추가한 후, 역동적으로(dynamically) 다른 형태의 실외 지도 레이어를 추가하거나 제거할 수도 있다.
지형지물 레이어 그룹은 실외 지도 레이어 위에 있으며, 지형지물 레이어 그룹에 속하는 레이어는 모두 벡터 레이어(vector layer)이다. 단위 면적 표시 레이어(unitAreaMarkLayer)와 위치 표식 레이어(location marker layer) locationMarkerLayer는 지형지물 레이어 그룹에 속하지 않는 벡터 레이어이다.
이 중에서 건물 레이어(buildingLayer)는 건물의 외곽선 도면(building outline drawing)을 표시하기 위한 레이어이고, 평면도 레이어(floorplanLayer)는 건물의 층별 평면도(floorplan per level) 중 어느 한 층의 평면도를 그리기 위한 레이어이다. 건물 이름 레이어(buildingLabelLayer)는 건물의 이름이나 홈페이지 주소 등 건물과 관련된 핵심 정보를 나타내기 위한 레이어이다. 그리고 공간 이름 레이어(spaceLabelLayer)는 층별 평면도에 보이는 개별 공간들(spaces)의 명칭이나 상호 등을 보여주기 위한 레이어이다.
지형지물 레이어 그룹에서 건물 레이어와 건물 이름 레이어와 평면도 레이어와 공간 이름 레이어는 따로 실내 지도 레이어 그룹(indoor map layer group)으로 분류할 수도 있다. 실내 지도란 근본적으로 건물의 평면도에 추가적인 정보를 표시한 것을 말하기 때문이다.
한편, 영역 레이어(territoryLayer)는 일정한 부지(敷地) 또는 영역(area)의 경계를 표시하는 레이어이다. 예를 들어 아파트 단지의 경계를 나타낼 수도 있고, 공원이나 호수의 경계를 나타낼 수도 있다. 영역 이름 레이어(territoryLabelLayer)는 부지의 이름을 표시하는 레이어이다. 따라서 영역 레이어와 영역 이름 레이어는 실외 지도(outdoor map)에 속하는 레이어라고 생각할 수 있다.
사물 레이어(thingLayer)는 지도 영역에 보이는 동산(movables)을 표시하는 사물 객체(thing object)를 포함하며, 사용자가 어느 한 동산을 선택하면 대응하는 사물 객체에 연관된 3D 모형이 새 창에서 가상현실로 보여진다. 예를 들어 거리의 신호등이나, 가로수나 정원에 놓인 돌부처상을 표시할 수 있다. 실내에서는 책상이나 컴퓨터, 커피머신 등을 표시할 수도 있고, 박물관이라면 고려청자나 로뎅의 생각하는 남자의 동상을 표시할 수도 있다. 그리고 사물 이름 레이어(thingLabelLayer)는 그 사물의 이름 등 간단한 정보를 표시하기 위한 레이어이다. 따라서 사물 레이어와 사물 이름 레이어는 실외와 실내에 모두 포함되는 레이어이다. 사물의 3D 모형은 턴테이블(Turntable) 모드로 탐색하는 것이 바람직할 것이다.
건물의 외곽선이나 평면도를 선택하여 3D 콘텐츠를 표시하는 것처럼 사물 객체나 영역 객체를 선택하여 3D 콘텐츠를 표시하기 위해서는 각각 사물 데이터베이스와 영역 데이터베이스가 필요하다.
건물 객체에 연관된 3D 콘텐츠를 표시하기 위해서 건물 객체는 건물 아이디(building ID, bldID) 속성을 가지고 있다. 또, 평면도 객체에 연관된 3D 콘텐츠를 표시하기 위해서 평면도 객체는 건물 아이디(bldID) 속성과 층(F) 속성을 가지고 있다. 사용자가 어느 한 평면도 객체를 선택했을 때 프로그램은 평면도 객체로부터 건물 아이디 bldID와 층 F를 알아내고, 그로부터 건물 내 해당 층의 3D 모형을 표시할 수 있었다.
마찬가지로 사물 객체를 선택하여 3D 콘텐츠를 표시하기 위해서 건물 아이디와 유사한 사물 아이디(thingID) 속성을 부여하는 것도 가능하지만 가장 이상적인 방법은 아닌 것으로 생각된다. 그 이유는 다음과 같다.
건물과 달리 사물은 장소가 고정되어 있지 않다. 예를 들어 박물관에 전시되는 전시물은 2~3개월에 한 번씩 정기적으로 교체된다. 그런데 사물 아이디는 사물 데이터베이스(thing database)에서 기본 아이디(primary id)가 될 가능성이 큰데, 데이터베이스에서 기본 아이디는 서로 중복되지 않아야 한다. 또, 아이템을 삭제해도 그 아이디는 다른 아이템에 부여할 수 없다. 따라서 영속성이 없는 아이템에 영속성이 있는 사물 아이디를 부여하는 것은 어쩐지 부자연스럽다.
또, 상점 주인들이 각자의 상품을 사물 데이터베이스에 등록하여 온라인 쇼핑몰을 운영한다고 하자. 상점 주인들이 동시에 각자의 많은 상품들을 등록하는 과정에서 그 사물 아이디들이 서로 중복되지 않도록 관리하는 것은 데이터베이스 사용자가 많아질수록 점점 힘들어질 것이다.
그러므로 고유한 사물 아이디 속성으로 데이터베이스와 3D 콘텐츠를 관리하는 대신에 그 사물이 속하는 북향거리 대응 정수 I, 동향거리 대응 정수 J, 층 F를 이용하는 방안을 생각할 수 있다. 즉, 사물 레이어에 추가되는 각 사물 객체가 그 동산의 지리적인 위치에 대응하는 북향거리 대응 정수 I, 동향거리 대응 정수 J, 층 F를 속성으로 가지도록 한다. 따라서 사용자가 지도 영역에서 어느 한 동산을 선택하면, 대응하는 사물 객체에서 (I, J, F)를 추출하여 연관된 3D 콘텐츠가 저장되어 있는 URL을 데이터베이스에서 조회하는 방식이다.
그런데 이와 같은 방법에도 한 가지의 문제점이 예상된다. 도 33은 다이아몬드 반지, 사파이어 보석, 루비 보석, 다이아몬드 보석을 사물 데이터베이스에 등록하는 방법을 예시하는 도면이다. 위도와 경도로부터 북향거리 대응 정수 I와 동향거리 대응 정수 J와 층 F가 동일한 지역을 실선으로 구획을 해 놓았다.
도 33에서 다이아몬드 반지와 사파이어 보석과 루비 보석은 세 정수 (I, J, F)가 모두 동일하며, 다이아몬드 보석은 세 정수가 (I,J+1,F)로 다르다. 따라서 세 보석에 대응하는 사물 객체가 세 정수 (I, J ,F)를 속성으로 가지고 있다고 하더라도 사용자가 선택한 어느 한 보석에 대응하는 URL을 특정할 수 없다. 세 정수 (I, J, F)로 사물 데이터베이스를 조회하면 3개의 보석이 검색될 것이기 때문이다. 따라서 추가적인 속성이 필요하다.
이 네 번째의 속성을 사물 아이디(thing ID, thingID)라고 지칭하겠다. 이 사물 아이디는 데이터베이스에서 기본 아이디(primary ID)로 사용되지 않으며, 사물 아이디에 요구되는 단 하나의 조건은 북향거리 대응 정수 I, 동향거리 대응 정수 J, 층 F가 모두 동일한 사물 객체들은 사물 아이디가 서로 다르다는 것이다. 따라서 사물 객체에서 (I, J, F, thingID)를 모두 추출하면, 사물을 유일하게 특정할 수 있고, 데이터베이스에서 조회하여 해당하는 3D 콘텐츠가 저장된 URL을 알아낼 수 있다.
사물 아이디는 세 정수 (I, J, F)가 다르다면 서로 중복이 되어도 상관이 없다. 따라서 이 세상의 모든 보석상들이 동시에 각자의 보석들을 데이터베이스에 등록한다고 하더라도 중복된 사물 아이디로 인한 고민을 하지 않아도 된다.
사물 아이디는 간단하게 그 사물의 보통 명사로 할 수 있다. 예를 들어 다이아몬드 반지, 사파이어 보석, 루비 보석, 다이아몬드 보석의 사물 아이디를 각각 diamond, sapphire, ruby, diamond로 할 수 있다.
그러나 더 간단한 방법은 도 33에 예시한 바와 같이 단순한 자연수나 정수로 구분하는 것이다. 즉, 다이아몬드 반지, 사파이어 보석, 루비 보석, 다이아몬드 보석의 사물 아이디를 각각 0, 1, 2, 0 으로 하거나, 더 바람직하게는 사물을 뜻하는 T자를 붙여서 T0, T1, T2, T0와 같이 하는 것이다.
북향거리 대응 정수 I, 동향거리 대응 정수 J, 층 F를 각각 14062971, 27570403, 1이라고 하면, 네 개의 사물 객체에 대응하는 3D 콘텐츠의 URL은 표 3과 같이 주어질 수 있다.
사물 | 3D 콘텐츠 | URL |
다이아몬드 반지 | index.html | https://VR.digitalearth.land/datastoreVR/N14062971E27570403/F1/T0/index.html |
사파이어 보석 | index.html | https://VR.digitalearth.land/datastoreVR/N14062971E27570403/F1/T1/index.html |
루비 보석 | index.html | https://VR.digitalearth.land/datastoreVR/N14062971E27570403/F1/T2/index.html |
다이아몬드 보석 | index.html | https://VR.digitalearth.land/datastoreVR/N14062971E27570404/F1/T0/index.html |
이와 같이 본 발명의 실시예에 의한 사물 객체는 북향거리 대응 정수 I와 동향거리 대응 정수 J와 층 F와 사물 아이디를 속성으로 가진다. 북향거리 대응 정수 I는 동산의 대표 지점의 위도 φ와 경도 λ로부터 수학식 7로 주어지는 북향거리 N을 반올림하여 얻어지는 정수이다.
여기서 R은 지구의 평균 반경이다. 또, 동향거리 대응 정수 J는 동산의 대표 지점의 위도와 경도로부터 수학식 8로 주어지는 동향거리 E를 반올림하여 얻어지는 정수이다.
층 F는 동산이 위치한 실내·외의 층을 나타내는 정수이며, 실외에서 층 F는 0이다. 즉, 지면층과 실외는 모두 0층으로 간주된다. 북향거리 대응 정수와 동향거리 대응 정수와 층이 모두 동일한 사물 객체의 사물 아이디 속성은 서로 다르다.
영역 객체와 관련해서는 또 다른 문제가 존재한다. 도 34는 바티칸 시국(Vatican city)을 구글 지도에서 찾아본 것이다. 이 바티칸 시국에서 성 베드로 성당(St. Peter's Basilica), 시스티나 성당(Cappella Sistina), 바티칸 정원(Vaticani Giardini) 등을 찾아볼 수 있다. 그리고 바티칸 시국 바깥의 로마 시내에는 콜로세움이 있다.
도 35는 이 구조를 단순화한 그림이다. 바티칸 시국(Vatican city) 내에 시스틴 성당(Sistine chapel)과 성 베드로 성당(St. Peter's cathedral), 바티칸 정원(Vatican garden)이 있고, 바티칸 시국 바깥에 콜로세움(Colosseum)이 있다. 콜로세움과 시스틴 성당과 성 베드로 성당은 모두 단층 건물로 건물 레이어(building layer)에 등록할 수 있다. 또, 바티칸 시국과 바티칸 정원은 영역 레이어(territory layer)에 등록할 수 있다.
사용자(user)가 지도 영역에 C1이라고 표시된 지점을 클릭하면 줌 값이 작을 때는 콜로세움의 3D 모형이 나타나며, 줌 값이 커서 콜로세움의 내부 구조, 즉 평면도가 표시된 상태에서 클릭하면 콜로세움의 내부 구조를 3D 모형으로 구현한 가상현실 공간이 새 창으로 열리고, 사용자는 콜로세움의 내부를 걸어서 돌아다니며 구경할 수 있다. 사용자가 C2라고 표시된 지점을 클릭하면, 바티칸 시국 전체를 3D 모형으로 구현한 가상현실 공간이 새 창으로 열리며, 사용자는 역시 바티칸 시국을 걸어다면서 구경을 할 수 있다.
한편, 사용자가 C3라고 표시된 지점을 클릭하면 성 베드로 성당과 바티칸 시국이 동시에 선택된다. 그런데 성 베드로 성당은 건물 레이어에 속하고, 바티칸 시국은 영역 레이어에 속한다. 건물 레이어와 영역 레이어가 동시에 선택된 경우, 건물 레이어에 등록된 3D 콘텐츠가 실행되도록 할 수 있다.
본 발명에서 실외 지도 레이어 위에 영역 레이어, 건물 레이어, 평면도 레이어, 사물 레이어가 순차적으로 포개진다. 이때 두 개 이상의 레이어에서 동시에 클릭 이벤트가 발생하면 상부에 속하는 레이어에서 발생한 클릭 이벤트에 대응하는 3D 콘텐츠가 새 창으로 보여지도록 할 수 있다.
한편, C4라고 표시된 지점을 클릭했을 때 바티칸 가든과 바티칸 시국에서 동시에 클릭 이벤트가 발생한다. 둘 다 영역 레이어에 속하므로, 레이어에 따른 우선순위의 부여는 불가능하다. 영역 레이어의 경우에는 이와 같은 경우가 많이 발생할 수 있다. 예를 들어 서울시 전체에 연관된 가상현실 공간과 종로구에 연관된 가상현실 공간과 인사동에 연관된 가상현실 공간과 조계사에 연관된 가상현실 공간을 모두 등록하고자 할 경우에도 마찬가지의 문제가 발생한다.
이와 같은 문제를 해결하기 위하여 영역 레이어에는 CSS3에서 사용하는 z 인덱스(z-index)와 유사한 색인(index)을 도입할 수 있다. 즉, 영역 레이어에 속하는 기하 객체에는 모두 우선권(priority)이라는 속성(attribute)을 부여하되, 그 값은 자연수로 주어지도록 한다. 그리고 한 개 이상의 영역 객체가 선택되었을 경우에, 높은 우선권을 가지는 영역 객체에 연관된 가상현실 공간이 새 창으로 열리도록 할 수 있다. 예를 들어 바티칸 시국의 우선권은 100이고, 바티칸 가든의 시국은 150으로 할 수 있다. 따라서 사용자가 지도 영역에서 C4라고 표시된 지점을 클릭하면 우선권이 150인 바티칸 가든에 연관된 가상현실 공간이 새 창으로 열리고, 우선권이 100인 바티칸 시국에 연관된 가상현실 공간은 열리지 않도록 할 수 있다.
이와 같이 지형지물 레이어 그룹은 영역 레이어(territory layer)를 가진다. 영역 레이어는 지도 영역에 부지(territory, area)의 경계를 표시하는 영역 객체(territory object)를 포함한다. 지도 영역 상의 한 지점은 동시에 한 개 이상의 부지에 포함될 수 있다. 영역 객체는 우선순위 속성(priority attribute)을 가지는 다각형객체(Polygon object)나 다중다각형객체(MultiPolygon object)로 주어진다. 사용자가 두 개 이상의 부지에 속하는 지도 영역 상의 어느 한 지점을 선택하면 우선순위가 가장 높은 영역 객체에 대응하는 가상현실 공간(virtual reality space)이 새 창으로 표시된다.
사용자는 사용자 반응 입력 수단(user response input means)을 이용하여 가상현실 공간을 걷기(Walk) 모드로 탐색(explore)할 수 있다. 사용자 반응 입력 수단은 컴퓨터 마우스(computer mouse)와 키보드(keyboard)와 카메라(camera)와 게임 패드(game pad)와 센서(sensor)와 액추에이터(actuator) 중의 어느 하나 혹은 어느 하나 이상의 조합이다.
본 발명의 대상이 되는 가상현실 콘텐츠와 메타버스(metaverse) 콘텐츠는 공통된 점이 많다. 둘 다 사이버 공간과 관련된 플랫폼 기술이라고 할 수 있다. 그런데 일반적으로 가상현실 공간(virtual reality space)에서는 사용자(user) 홀로 가상공간을 탐험하거나 둘러보는 형태로 구현되는데 반하여, 메타버스 공간(metaverse space)에서는 다른 사용자와 상호작용을 할 수 있고, 사용자의 아바타(avatar)와 다른 사용자의 아바타가 메타버스 공간에 추가되며, 사용자의 움직임과 다른 사용자의 움직임이 각각 아바타에 반영된다. 따라서 동일한 공간, 예를 들어 한강 시민공원을 가상현실과 메타버스로 구현하는 것은 기술적인 난이도가 현저히 다르다.
도 36은 도 30에 보이는 성당을 메타버스로 구현하여 두 사용자의 아바타가 성당 앞에서 상호작용하는 것을 예시한 것이다. 이 성당의 부지에 대응하는 영역 객체는 영역 레이어에 추가된다. 따라서 사용자가 지도 영역에 표시된 성당의 부지, 또는 대등하게 성당의 영역 객체를 선택하면 이 성당에 연관된 메타버스 공간이 새 창으로 열리면서 사용자의 아바타가 메타버스 공간에 추가된다. 또 다른 사용자도 자신의 PC나 스마트폰에서 이 영역 객체를 선택하면 그 사용자의 아바타 역시 메타버스 공간에 추가된다. 따라서 둘 이상의 사용자가 메타버스 공간에서 만나서 상호작용을 할 수 있다.
이를 위하여 [특 14]에 예시된 바와 같이 메타버스 서버(metaverse server)와 클라이언트 단말(client terminal)이 필요할 것이다. 사용자는 마우스나 키보드를 이용하여 메타버스 공간에서 걷기(Walk) 모드로 탐색할 수 있다. 두 사용자는 채팅을 할 수도 있고, 액션 매니아(action mania)라면 결투를 할 수도 있다. 또는 두 남녀가 메타버스 공간에서 만나서 데이트를 할 수도 있다. 예를 들어 한국에 있는 남자와 미국에 있는 여자가 그리스의 산토리니섬(Santorini) 전체를 가상으로 구현한 메타버스 공간에서 만나서 연애를 할 수 있다.
이와 같은 디지털 지도 기반의 메타버스 온라인 플랫폼(digital map based metaverse online platform)은 디지털 지도의 지도 영역(map area)에 실외 지도(outdoor map) 및 사전에 정해진 조건을 만족하는 지형지물(地形地物, geographic features, terrain features)을 실외 지도상의 올바른 위치에 표시한다. 한 명 이상의 사용자(user)가 지도 영역에 표시된 어느 한 지형지물을 선택하면 그 지형지물에 연관된 메타버스 공간(metaverse space)이 새 창(window)으로 열리면서 사용자의 아바타(avatar)가 메타버스 공간에 추가된다. 사용자는 사용자 반응 입력 수단(user response input means)을 통하여 자신의 아바타를 제어할 수 있다.
사용자 반응 입력 수단은 컴퓨터 마우스(computer mouse)와 키보드(keyboard)와 카메라(camera)와 게임 패드(game pad)와 센서(sensor)와 액추에이터(actuator) 중의 어느 하나 혹은 어느 하나 이상의 조합이며, 사용자는 자신의 아바타를 이용하여 걷기(Walk) 모드로 메타버스 공간을 탐색할 수 있다.
디지털 지도의 지도 객체(map object)는 실외 지도 레이어(outdoor map layer)와 하나 이상의 벡터 레이어(vector layer)를 가지는 지형지물 레이어 그룹(geographic feature layer group)을 가진다. 지형지물 레이어 그룹은 실외 지도 레이어 위에 있고, 지형지물 레이어 그룹에는 지도 영역에 보이는 지형지물을 표시하는 기하 객체(geometric objects)가 포함되어 있다.
지형지물 레이어 그룹은 부지(territory, area)의 경계를 표시하는 영역 레이어(territory layer)와, 영역 레이어 위에 있으며 건물의 외곽선을 표시하는 건물 레이어(building layer)와, 건물 레이어 위에 있으며 건물의 어느 한 층의 평면도를 표시하는 평면도 레이어(floorplan layer)를 포함할 수 있다.
건물 레이어는 지도 영역에 보이는 건물의 외곽선을 다각형객체나 다중다각형객체로 표시하는 건물 객체(building object)를 포함한다. 평면도 레이어는 지도 영역에 외곽선이 표시된 건물들 중 사전에 정해진 조건을 만족하는 건물들의 어느 한 층의 평면도를 건물들의 외곽선과 부합되게 표시하는 평면도 객체(floorplan object)를 포함한다.
여기서 사전에 정해진 조건이란 지도 영역에 평면도가 표시되는 건물들은 디지털 지도의 줌 값이 그 건물의 평면도 표시 줌 값보다 크면서 해당 건물이 지면층(ground floor)이 있는 건물이거나, 사용자가 지도와의 상호 작용을 통하여 지면층이 아닌 다른 층을 선택하는 경우를 의미한다.
지도 영역에 평면도가 표시되지 않은 건물 객체를 선택하면 사용자의 아바타가 메타버스 공간에서 해당 건물의 입구에 추가되며, 지도 영역에 평면도가 표시된 건물의 평면도 객체를 선택하면 사용자의 아바타가 메타버스 공간에서 해당 건물의 해당 층에 추가된다.
영역 레이어는 지도 영역에 부지(territory, area)의 경계를 표시하는 영역 객체(territory object)를 포함한다. 지도 영역 상의 한 지점은 동시에 한 개 이상의 부지에 포함될 수 있다. 영역 객체는 우선순위 속성(priority attribute)을 가지는 다각형객체(Polygon object)나 다중다각형객체(MultiPolygon object)로 주어진다. 사용자가 한 개 이상의 부지에 속하는 지도 영역 상의 어느 한 지점에 대응하는 한 개 이상의 영역 객체를 선택하면 우선순위가 가장 높은 영역 객체에 연관된 메타버스 공간(metaverse space)이 새 창으로 열린다.
이와 같은 메타버스 온라인 플랫폼을 이용하여 디지털 지도를 기반으로 메타버스 공간(metaverse space)을 탐색할 수 있다. 이 방법에는 디지털 지도의 지도 영역(map area)에 사전에 정해진 조건을 만족하는 지형지물(地形地物, geographic features, terrain features)을 표시하는 단계, 지도 영역에 사용자(user)에 의한 선택 이벤트(selection event)가 발생하였는지 검사하는 단계, 선택 이벤트가 발생했으면 선택 포인트(selection point)의 지리 좌표(geographic coordinate)를 계산하는 단계, 계산된 지리 좌표에 지형지물이 있는지 검사하는 단계, 지형지물이 있으면 대응하는 기하 객체(geometric object)의 속성(attributes)을 추출하는 단계, 추출된 기하 객체의 속성으로 데이터베이스에서 메타버스 공간(metaverse space)의 URL을 조회하는 단계, 조회된 URL에 실제로 메타버스 공간이 있는지 확인하는 단계, 메타버스 공간이 있으면 해당 메타버스 공간을 새 창(window)으로 열고 사용자의 아바타(avatar)를 추가하는 단계, 사용자가 사용자 반응 입력 수단(user response input means)을 이용하여 자신의 아바타를 제어해서 메타버스 공간을 탐색하는 단계를 포함한다.
디지털 지도에서 관심있는 건물의 실내·외를 가상현실을 통하여 돌아볼 수 있어 디지털 지도의 유용성이 증가되고, 지리적 위치를 부여할 수 있는 모든 가상현실 콘텐츠를 통합할 수 있다. 이 기술은 부동산 매매, 호텔 예약, 관광지 홍보, 사이버 미술관 구축 등에 사용될 수 있다.
N: 북향거리
E: 동향거리
F: 층
I: 북향거리 대응 정수
J: 동향거리 대응 정수
E: 동향거리
F: 층
I: 북향거리 대응 정수
J: 동향거리 대응 정수
Claims (46)
- 디지털 지도 기반의 가상현실 온라인 플랫폼(digital map based virtual reality online platform)에 있어서,
사용자가 디지털 지도를 이용하는 수단인 사용자 단말기(user terminal)와,
사용자 단말기가 인터넷으로 접속하는 메인 서버(main server)와,
메인 서버에 실외 지도(outdoor map) 데이터를 공급하는 실외 지도 서버(outdoor map server)와,
메인 서버에 지형지물(地形地物, geographic features) 데이터 및 가상현실 데이터를 공급하는 데이터 저장소(data store)와,
지형지물 데이터 및 가상현실 데이터와 관련된 정보를 관리하는 데이터베이스(database)를 포함하고,
디지털 지도의 지도 영역(map area)에는 실외 지도 및 사전에 정해진 조건을 만족하는 지형지물이 실외 지도 상의 올바른 위치에 표시되며,
지도 영역에 표시된 어느 한 지형지물에 선택 이벤트(selection event)가 발생하면 그 지형지물의 3D 모형(3D model)을 포함하는 가상현실 공간(virtual reality space)이 새 창(window)으로 열리되,
디지털 지도의 지도 객체(map object)는 실외 지도 레이어(outdoor map layer)와 하나 이상의 벡터 레이어(vector layer)를 가지는 지형지물 레이어 그룹(geographic feature layer group)을 가지며,
지형지물 레이어 그룹은 실외 지도 레이어 위에 있고,
지형지물 레이어 그룹에는 지도 영역에 보이는 지형지물을 표시하는 기하 객체(geometric objects)가 포함되어 있으며,
기하 객체는 지오제이슨(GeoJSON) 형식의 다각형객체(Polygon object)와 다중다각형 객체(MultiPolygon object)와 연결선분객체(LineString object)와 다중연결선분객체(MultiLineString object) 중 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지고,
지형지물 레이어 그룹은 영역 레이어(territory layer)를 포함하되,
영역 레이어는 지도 영역에 부지(territory)의 경계를 표시하는 영역 객체(territory object)를 포함하며,
지도 영역 상의 한 지점(地點, point)은 동시에 한 개 이상의 부지에 포함될 수 있고,
영역 객체는 우선순위 속성(priority attribute)을 가지는 다각형객체(Polygon object)나 다중다각형객체(MultiPolygon object)로 주어지며,
한 개 이상의 부지에 속하는 지도 영역 상의 어느 한 지점에 대응하는 한 개 이상의 영역 객체들에 선택 이벤트가 발생하면 우선순위가 가장 높은 영역 객체에 대응하는 가상현실 공간(virtual reality space)이 새 창에서 걷기(Walk) 모드로 열리며,
지형지물의 3D 모형은 X3DOM으로 주어지는 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 제1항에 있어서,
사전에 정해진 조건이란 지형지물의 대표 지점의 지리 좌표(geographic coordinate)가 디지털 지도의 뷰 범위(view extent)에 포함되고, 지형지물이 지도 영역에 표시되기 위한 줌(zoom) 값보다 디지털 지도의 줌 값이 큰 조건을 포함하는 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 제1항에 있어서,
지형지물에 발생하는 선택 이벤트는 클릭(click) 이벤트와 더블 클릭(double click) 이벤트와 터치(touch) 이벤트 중의 어느 하나인 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 삭제
- 제1항에 있어서,
지형지물 레이어 그룹은 부지(territory)의 경계를 표시하는 영역 레이어(territory layer)와,
영역 레이어 위에 있으며 건물의 외곽선을 표시하는 건물 레이어(building layer)와,
건물 레이어 위에 있으며 건물의 어느 한 층의 평면도를 표시하는 평면도 레이어(floorplan layer)와,
평면도 레이어 위에 있으며 사물(thing)을 표시하는 사물 레이어(thing layer)를 포함하는 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 제1항에 있어서,
지형지물 레이어 그룹은 건물 레이어(building layer)와 평면도 레이어(floorplan layer)를 포함하되,
평면도 레이어는 건물 레이어 위에 있고,
건물 레이어는 지도 영역에 보이는 건물의 외곽선을 다각형객체나 다중다각형객체로 표시하는 건물 객체(building object)를 포함하며,
평면도 레이어는 지도 영역에 외곽선이 표시된 건물들 중 평면도 표시 조건을 만족하는 건물들의 어느 한 층의 평면도를 건물들의 외곽선에 부합되게 표시하는 평면도 객체(floorplan object)를 포함하고,
평면도 객체는 다각형객체와 다중다각형객체와 연결선분객체와 다중연결선분객체들 중의 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지는 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 제6항에 있어서,
평면도 표시 조건이란;
지도의 줌 값이 그 건물의 평면도 표시 줌 값보다 크면서 해당 건물이 지면층(ground floor)이 있는 건물이거나,
층 선택 메뉴(floor selector)를 통하여 지면층이 아닌 다른 층을 선택하는 이벤트가 발생한 경우인 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 제6항에 있어서,
건물 객체에 선택 이벤트가 발생하면 해당 건물의 3D 모형을 포함하는 가상현실 공간(virtual reality space)이 새 창(window)에서 관찰(Examine) 모드로 열리고,
평면도 객체에 선택 이벤트가 발생하면 해당 평면도의 3D 모형을 포함하는 가상현실 공간이 새 창에서 걷기(Walk) 모드로 열리는 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 삭제
- 삭제
- 제1항에 있어서,
가상현실 공간은 사용자 반응 입력 수단(user response input means)을 이용하여 탐색(explore)이 가능하되,
사용자 반응 입력 수단은 컴퓨터 마우스(computer mouse)와 키보드(keyboard)와 터치 모니터(touch monitor)와 카메라(camera)와 게임 패드(game pad)와 센서(sensor)와 액추에이터(actuator) 중의 어느 하나 혹은 어느 하나 이상의 조합인 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 제1항에 있어서,
지형지물 레이어 그룹은 사물 레이어(thing layer)를 포함하되,
사물 레이어는 지도 영역에 보이는 동산(movables)을 표시하는 사물 객체(thing object)를 포함하며,
어느 한 사물 객체에 선택 이벤트가 발생하면 해당 사물 객체의 3D 모형을 포함하는 가상현실 공간이 새 창에서 턴테이블(Turntable) 모드로 열리는 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 제12항에 있어서,
사물 객체는 북향거리 대응 정수(northing corresponding integer) 속성과 동향거리 대응 정수(easting corresponding integer) 속성과 층(floor) 속성과 사물 아이디(thing ID) 속성을 가지되,
북향거리 대응 정수는 동산의 대표 지점의 위도 φ와 경도 λ로부터 다음과 같이 주어지는 북향거리(northing) N을 반올림하여 얻어지는 정수이고,
여기서 R은 지구의 평균 반경이며,
동향거리 대응 정수는 동산의 대표 지점의 위도와 경도로부터 다음과 같이 주어지는 동향거리(easting) E를 반올림하여 얻어지는 정수이고,
층 속성은 동산이 위치한 실내·외의 층을 나타내는 정수이며,
북향거리 대응 정수 속성과 동향거리 대응 정수 속성과 층 속성이 모두 동일한 사물 객체들의 사물 아이디 속성은 서로 다른 것을 특징으로 하는,
디지털 지도 기반의 가상현실 온라인 플랫폼.
- 디지털 지도를 기반으로 지형지물(地形地物, geographic features)의 3D 콘텐츠(3D content)를 표시하는 방법에 있어서,
사용자가 디지털 지도를 이용하는 수단인 사용자 단말기(user terminal)와,
사용자 단말기가 인터넷으로 접속하는 메인 서버(main server)와,
메인 서버에 실외 지도(outdoor map) 데이터를 공급하는 실외 지도 서버(outdoor map server)와,
메인 서버에 지형지물 데이터 및 가상현실 데이터를 공급하는 데이터 저장소(data store)와,
지형지물 데이터 및 가상현실 데이터와 관련된 정보를 관리하는 데이터베이스(database)를 포함하는 시스템이 일련의 단계들(series of stages)을 실행하되,
디지털 지도의 지도 객체(map object)는 실외 지도 레이어(outdoor map layer)와 하나 이상의 벡터 레이어(vector layer)를 가지는 지형지물 레이어 그룹(geographic feature layer group)을 가지며,
지형지물 레이어 그룹은 실외 지도 레이어 위에 있고,
지형지물 레이어 그룹에는 지도 영역에 보이는 지형지물을 표시하는 기하 객체(geometric objects)가 포함되어 있으며,
기하 객체는 지오제이슨(GeoJSON) 형식의 다각형객체(Polygon object)와 다중다각형 객체(MultiPolygon object)와 연결선분객체(LineString object)와 다중연결선분객체(MultiLineString object) 중 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지고,
지형지물 레이어 그룹은 영역 레이어(territory layer)를 포함하되,
영역 레이어는 지도 영역에 부지(territory)의 경계를 표시하는 영역 객체(territory object)를 포함하며,
지도 영역 상의 한 지점은 동시에 한 개 이상의 부지에 포함될 수 있고,
영역 객체는 우선순위 속성(priority attribute)을 가지는 다각형객체(Polygon object)나 다중다각형객체(MultiPolygon object)로 주어지며,
한 개 이상의 부지에 속하는 지도 영역 상의 어느 한 지점에 대응하는 한 개 이상의 영역 객체들에 선택 이벤트가 발생하면 우선순위가 가장 높은 영역 객체의 3D 모형을 포함하는 가상현실 공간(virtual reality space)이 새 창에서 걷기(Walk) 모드로 열리고,
지형지물의 3D 모형(3D model)은 X3DOM으로 주어지며,
시스템이 실행하는 일련의 단계들은;
디지털 지도의 지도 영역(map area)에 사전에 정해진 조건을 만족하는 지형지물을 표시하는 단계,
지도 영역에 선택 이벤트(selection event)가 발생하였는지 검사하는 단계,
선택 이벤트가 발생했으면 선택 포인트(selection point)의 지리 좌표(geographic coordinate)를 계산하는 단계,
계산된 지리 좌표에 지형지물이 있는지 검사하는 단계,
지형지물이 있으면 대응하는 기하 객체(geometric object)의 속성(attributes)을 추출하는 단계,
추출된 기하 객체의 속성으로 데이터베이스에서 3D 모형의 URL을 조회하는 단계,
조회된 URL에 실제로 3D 모형이 있는지 확인하는 단계,
3D 모형이 있으면 해당 3D 모형을 포함하는 가상현실 공간(virtual reality space)이 새 창(window)으로 열리는 단계를 포함하는 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 제14항에 있어서,
사전에 정해진 조건이란 지형지물의 대표 지점의 지리 좌표(geographic coordinate)가 디지털 지도의 뷰 범위(view extent)에 포함되고, 지형지물이 지도 영역에 표시되기 위한 줌(zoom) 값보다 디지털 지도의 줌 값이 큰 조건을 포함하는 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 제14항에 있어서,
지도 영역에 발생하는 선택 이벤트는 클릭(click) 이벤트와 더블 클릭(double click) 이벤트와 터치(touch) 이벤트 중의 어느 하나인 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 삭제
- 제14항에 있어서,
지형지물 레이어 그룹은 부지(territory)의 경계를 표시하는 영역 레이어(territory layer)와,
영역 레이어 위에 있으며 건물의 외곽선을 표시하는 건물 레이어(building layer)와,
건물 레이어 위에 있으며 건물의 어느 한 층의 평면도를 표시하는 평면도 레이어(floorplan layer)와,
평면도 레이어 위에 있으며 사물(thing)을 표시하는 사물 레이어(thing layer)를 포함하는 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 제14항에 있어서,
지형지물 레이어 그룹은 건물 레이어(building layer)와 평면도 레이어(floorplan layer)를 포함하되,
평면도 레이어는 건물 레이어 위에 있고,
건물 레이어는 지도 영역에 보이는 건물의 외곽선을 다각형객체나 다중다각형객체로 표시하는 건물 객체(building object)를 포함하며,
평면도 레이어는 지도 영역에 외곽선이 표시된 건물들 중 평면도 표시 조건을 만족하는 건물들의 어느 한 층의 평면도를 건물들의 외곽선에 부합되게 표시하는 평면도 객체(floorplan object)를 포함하고,
평면도 객체는 다각형객체와 다중다각형객체와 연결선분객체와 다중연결선분객체 중의 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지는 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 제19항에 있어서,
평면도 표시 조건이란;
지도의 줌 값이 그 건물의 평면도 표시 줌 값보다 크면서 해당 건물이 지면층(ground floor)이 있는 건물이거나,
층 선택 메뉴(floor selector)를 통하여 지면층이 아닌 다른 층을 선택하는 이벤트가 발생한 경우인 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 제19항에 있어서,
건물 객체에 선택 이벤트가 발생하면 해당 건물의 3D 모형을 포함하는 가상현실 공간(virtual reality space)이 새 창(window)에서 관찰(Examine) 모드로 열리고,
평면도 객체에 선택 이벤트가 발생하면 해당 평면도의 3D 모형을 포함하는 가상현실 공간이 새 창에서 걷기(Walk) 모드로 열리는 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 삭제
- 삭제
- 제14항에 있어서,
가상현실 공간은 사용자 반응 입력 수단(user response input means)을 이용하여 탐색(explore)이 가능하되,
사용자 반응 입력 수단은 컴퓨터 마우스(computer mouse)와 키보드(keyboard)와 터치 모니터(touch monitor)와 카메라(camera)와 게임 패드(game pad)와 센서(sensor)와 액추에이터(actuator) 중의 어느 하나 혹은 어느 하나 이상의 조합인 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 제14항에 있어서,
지형지물 레이어 그룹은 사물 레이어(thing layer)를 포함하되,
사물 레이어는 지도 영역에 보이는 동산(movables)을 표시하는 사물 객체(thing object)를 포함하며,
어느 한 사물 객체에 선택 이벤트가 발생하면 해당 사물 객체의 3D 모형을 포함하는 가상현실 공간이 새 창에서 턴테이블(Turntable) 모드로 열리는 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 제25항에 있어서,
사물 객체는 북향거리 대응 정수(northing corresponding integer) 속성과 동향거리 대응 정수(easting corresponding integer) 속성과 층(floor) 속성과 사물 아이디(thing ID) 속성을 가지되,
북향거리 대응 정수는 동산의 대표 지점의 위도 φ와 경도 λ로부터 다음과 같이 주어지는 북향거리(northing) N을 반올림하여 얻어지는 정수이고,
여기서 R은 지구의 평균 반경이며,
동향거리 대응 정수는 동산의 대표 지점의 위도와 경도로부터 다음과 같이 주어지는 동향거리(easting) E를 반올림하여 얻어지는 정수이고,
층 속성은 동산이 위치한 실내·외의 층을 나타내는 정수이며,
북향거리 대응 정수 속성과 동향거리 대응 정수 속성과 층 속성이 모두 동일한 사물 객체들의 사물 아이디 속성은 서로 다른 것을 특징으로 하는,
디지털 지도를 기반으로 지형지물의 3D 콘텐츠를 표시하는 방법.
- 디지털 지도 기반의 메타버스 온라인 플랫폼(digital map based metaverse online platform)에 있어서,
사용자가 디지털 지도를 이용하는 수단인 사용자 단말기(user terminal)와,
사용자 단말기가 인터넷으로 접속하는 메인 서버(main server)와,
메인 서버에 실외 지도(outdoor map) 데이터를 공급하는 실외 지도 서버(outdoor map server)와,
메인 서버에 지형지물(地形地物, geographic features) 데이터 및 메타버스 데이터를 공급하는 데이터 저장소(data store)와,
지형지물 데이터 및 메타버스 데이터와 관련된 정보를 관리하는 데이터베이스(database)를 포함하고,
디지털 지도의 지도 영역(map area)에는 실외 지도(outdoor map) 및 사전에 정해진 조건을 만족하는 지형지물이 실외 지도 상의 올바른 위치에 표시되며,
지도 영역에 표시된 어느 한 지형지물에 사용자(user)에 의한 선택 이벤트(selection event)가 발생하면 그 지형지물의 3D 모형(3D model)을 포함하는 메타버스 공간(metaverse space)이 새 창(window)으로 열리면서 사용자의 아바타(avatar)가 메타버스 공간에 추가되고,
사용자의 아바타는 사용자 반응 입력 수단(user response input means)에 의하여 제어되는 것을 특징으로 하되,
디지털 지도의 지도 객체(map object)는 실외 지도 레이어(outdoor map layer)와 하나 이상의 벡터 레이어(vector layer)를 가지는 지형지물 레이어 그룹(geographic feature layer group)을 가지며,
지형지물 레이어 그룹은 실외 지도 레이어 위에 있고,
지형지물 레이어 그룹에는 지도 영역에 보이는 지형지물을 표시하는 기하 객체(geometric objects)가 포함되어 있으며,
기하 객체는 지오제이슨(GeoJSON) 형식의 다각형객체(Polygon object)와 다중다각형 객체(MultiPolygon object)와 연결선분객체(LineString object)와 다중연결선분객체(MultiLineString object) 중 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지고,
지형지물 레이어 그룹은 영역 레이어(territory layer)를 포함하되,
영역 레이어는 지도 영역에 부지(territory)의 경계를 표시하는 영역 객체(territory object)를 포함하고,
지도 영역 상의 한 지점은 동시에 한 개 이상의 부지에 포함될 수 있으며,
영역 객체는 우선순위 속성(priority attribute)을 가지는 다각형객체(Polygon object)나 다중다각형객체(MultiPolygon object)로 주어지고,
한 개 이상의 부지에 속하는 지도 영역 상의 어느 한 지점에 대응하는 한 개 이상의 영역 객체들에 선택 이벤트가 발생하면 우선순위가 가장 높은 영역 객체의 3D 모형을 포함하는 메타버스 공간(metaverse space)이 새 창으로 열리고,
지형지물의 3D 모형은 X3DOM으로 주어지는 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 제27항에 있어서,
사전에 정해진 조건이란 지형지물의 대표 지점의 지리 좌표(geographic coordinate)가 뷰 범위(view extent)에 포함되고, 지형지물이 지도 영역에 표시되기 위한 줌(zoom) 값보다 디지털 지도의 줌 값이 큰 조건을 포함하는 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 제27항에 있어서,
지형지물에 발생하는 선택 이벤트는 클릭(click) 이벤트와 더블 클릭(double click) 이벤트와 터치(touch) 이벤트 중의 어느 하나인 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 제27항에 있어서,
사용자의 아바타는 메타버스 공간에 걷기(Walk) 모드로 추가되며,
사용자 반응 입력 수단은 컴퓨터 마우스(computer mouse)와 키보드(keyboard)와 터치 모니터(touch monitor)와 카메라(camera)와 게임 패드(game pad)와 센서(sensor)와 액추에이터(actuator) 중의 어느 하나 혹은 어느 하나 이상의 조합인 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 삭제
- 제27항에 있어서,
지형지물 레이어 그룹은 부지(territory)의 경계를 표시하는 영역 레이어(territory layer)와,
영역 레이어 위에 있으며 건물의 외곽선을 표시하는 건물 레이어(building layer)와,
건물 레이어 위에 있으며 건물의 어느 한 층의 평면도를 표시하는 평면도 레이어(floorplan layer)를 포함하는 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 제27항에 있어서,
지형지물 레이어 그룹은 건물 레이어(building layer)와 평면도 레이어(floorplan layer)를 포함하되,
평면도 레이어는 건물 레이어 위에 있고,
건물 레이어는 지도 영역에 보이는 건물의 외곽선을 다각형객체나 다중다각형객체로 표시하는 건물 객체(building object)를 포함하며,
평면도 레이어는 지도 영역에 외곽선이 표시된 건물들 중 평면도 표시 조건을 만족하는 건물들의 어느 한 층의 평면도를 건물들의 외곽선에 부합되게 표시하는 평면도 객체(floorplan object)를 포함하고,
평면도 객체는 다각형객체와 다중다각형객체와 연결선분객체와 다중연결선분객체 중의 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지는 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 제33항에 있어서,
평면도 표시 조건이란;
지도의 줌 값이 그 건물의 평면도 표시 줌 값보다 크면서 해당 건물이 지면층(ground floor)이 있는 건물이거나,
층 선택 메뉴(floor selector)를 통하여 지면층이 아닌 다른 층을 선택하는 이벤트가 발생한 경우인 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 제33항에 있어서,
건물 객체에 선택 이벤트가 발생하면 사용자의 아바타가 메타버스 공간에서 해당 건물의 입구에 추가되며,
평면도 객체에 선택 이벤트가 발생하면 사용자의 아바타가 메타버스 공간에서 해당 건물의 해당 층에 추가되는 것을 특징으로 하는,
디지털 지도 기반의 메타버스 온라인 플랫폼.
- 삭제
- 디지털 지도를 기반으로 메타버스 공간(metaverse space)을 탐색하는 방법에 있어서,
사용자가 디지털 지도를 이용하는 수단인 사용자 단말기(user terminal)와,
사용자 단말기가 인터넷으로 접속하는 메인 서버(main server)와,
메인 서버에 실외 지도(outdoor map) 데이터를 공급하는 실외 지도 서버(outdoor map server)와,
메인 서버에 지형지물(地形地物, geographic features) 데이터 및 메타버스 데이터를 공급하는 데이터 저장소(data store)와,
지형지물 데이터 및 메타버스 데이터와 관련된 정보를 관리하는 데이터베이스(database)를 포함하는 시스템이 일련의 단계들(series of stages)을 실행하되,
디지털 지도의 지도 객체(map object)는 실외 지도 레이어(outdoor map layer)와 하나 이상의 벡터 레이어(vector layer)를 가지는 지형지물 레이어 그룹(geographic feature layer group)을 가지며,
지형지물 레이어 그룹은 실외 지도 레이어 위에 있고,
지형지물 레이어 그룹에는 지도 영역에 보이는 지형지물을 표시하는 기하 객체(geometric objects)가 포함되어 있으며,
기하 객체는 지오제이슨(GeoJSON) 형식의 다각형객체(Polygon object)와 다중다각형 객체(MultiPolygon object)와 연결선분객체(LineString object)와 다중연결선분객체(MultiLineString object) 중 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지고,
지형지물 레이어 그룹은 영역 레이어(territory layer)를 포함하되,
영역 레이어는 지도 영역에 부지(territory)의 경계를 표시하는 영역 객체(territory object)를 포함하고,
지도 영역 상의 한 지점은 동시에 한 개 이상의 부지에 포함될 수 있으며,
영역 객체는 우선순위 속성(priority attribute)을 가지는 다각형객체(Polygon object)나 다중다각형객체(MultiPolygon object)로 주어지고,
한 개 이상의 부지에 속하는 지도 영역 상의 어느 한 지점에 대응하는 한 개 이상의 영역 객체들에 선택 이벤트가 발생하면 우선순위가 가장 높은 영역 객체의 3D 모형을 포함하는 메타버스 공간(metaverse space)이 새 창으로 열리고,
지형지물의 3D 모형(3D model)은 X3DOM으로 주어지며,
시스템이 실행하는 일련의 단계들은;
디지털 지도의 지도 영역(map area)에 사전에 정해진 조건을 만족하는 지형지물을 표시하는 단계,
지도 영역에 사용자(user)에 의한 선택 이벤트(selection event)가 발생하였는지 검사하는 단계,
선택 이벤트가 발생했으면 선택 포인트(selection point)의 지리 좌표(geographic coordinate)를 계산하는 단계,
계산된 지리 좌표에 지형지물이 있는지 검사하는 단계,
지형지물이 있으면 대응하는 기하 객체(geographic object)의 속성(attributes)을 추출하는 단계,
추출된 기하 객체의 속성으로 데이터베이스에서 그 지형지물의 3D 모형(3D model)을 포함하는 메타버스 공간(metaverse space)의 URL을 조회하는 단계,
조회된 URL에 실제로 메타버스 공간이 있는지 확인하는 단계,
메타버스 공간이 있으면 해당 메타버스 공간을 새 창(window)으로 열고 사용자의 아바타(avatar)를 추가하는 단계,
사용자 반응 입력 수단(user response input means)에 의하여 사용자의 아바타가 제어되는 단계를 포함하는 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 제37항에 있어서,
사전에 정해진 조건이란 지형지물의 대표 지점의 지리 좌표(geographic coordinate)가 뷰 범위(view extent)에 포함되고, 지형지물이 지도 영역에 표시되기 위한 줌(zoom) 값보다 디지털 지도의 줌 값이 큰 조건을 포함하는 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 제37항에 있어서,
지도 영역에 발생하는 선택 이벤트는 클릭(click) 이벤트와 더블 클릭(double click) 이벤트와 터치(touch) 이벤트 중의 어느 하나인 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 제37항에 있어서,
사용자의 아바타는 메타버스 공간에 걷기(Walk) 모드로 추가되며,
사용자 반응 입력 수단은 컴퓨터 마우스(computer mouse)와 키보드(keyboard)와 터치 모니터(touch monitor)와 카메라(camera)와 게임 패드(game pad)와 센서(sensor)와 액추에이터(actuator) 중의 어느 하나 혹은 어느 하나 이상의 조합인 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 삭제
- 제37항에 있어서,
지형지물 레이어 그룹은 부지(territory)의 경계를 표시하는 영역 레이어(territory layer)와,
영역 레이어 위에 있으며 건물의 외곽선을 표시하는 건물 레이어(building layer)와,
건물 레이어 위에 있으며 건물의 어느 한 층의 평면도를 표시하는 평면도 레이어(floorplan layer)를 포함하는 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 제37항에 있어서,
지형지물 레이어 그룹은 건물 레이어(building layer)와 평면도 레이어(floorplan layer)를 포함하되,
평면도 레이어는 건물 레이어 위에 있고,
건물 레이어는 지도 영역에 보이는 건물의 외곽선을 다각형객체나 다중다각형객체로 표시하는 건물 객체(building object)를 포함하며,
평면도 레이어는 지도 영역에 외곽선이 표시된 건물들 중 평면도 표시 조건을 만족하는 건물들의 어느 한 층의 평면도를 건물들의 외곽선에 부합되게 표시하는 평면도 객체(floorplan object)를 포함하고,
평면도 객체는 다각형객체와 다중다각형객체와 연결선분객체와 다중연결선분객체 중의 어느 하나 혹은 어느 하나 이상의 조합(combination)으로 주어지는 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 제43항에 있어서,
평면도 표시 조건이란;
지도의 줌 값이 그 건물의 평면도 표시 줌 값보다 크면서 해당 건물이 지면층(ground floor)이 있는 건물이거나,
층 선택 메뉴(floor selector)를 통하여 지면층이 아닌 다른 층을 선택하는 이벤트가 발생한 경우인 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 제43항에 있어서,
건물 객체에 선택 이벤트가 발생하면 사용자의 아바타가 메타버스 공간에서 해당 건물의 입구에 추가되며,
평면도 객체에 선택 이벤트가 발생하면 사용자의 아바타가 메타버스 공간에서 해당 건물의 해당 층에 추가되는 것을 특징으로 하는,
디지털 지도를 기반으로 메타버스 공간을 탐색하는 방법.
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2022/012152 WO2023018314A1 (ko) | 2021-08-13 | 2022-08-15 | 디지털 지도 기반의 가상현실 및 메타버스 온라인 플랫폼 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210107186 | 2021-08-13 | ||
KR20210107186 | 2021-08-13 | ||
KR1020220034476 | 2022-03-21 | ||
KR20220034476 | 2022-03-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230025646A KR20230025646A (ko) | 2023-02-22 |
KR102497681B1 true KR102497681B1 (ko) | 2023-02-24 |
Family
ID=85329734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220101002A KR102497681B1 (ko) | 2021-08-13 | 2022-08-12 | 디지털 지도 기반의 가상현실 및 메타버스 온라인 플랫폼 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102497681B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102593239B1 (ko) * | 2022-10-14 | 2023-10-26 | 주식회사 와이드브레인 | 가상 공간에서 다수의 이벤트에 동시에 참여하는 방법 및 그 장치 |
KR102711305B1 (ko) * | 2024-03-29 | 2024-09-30 | 주식회사 소울엑스 | 콘텐츠 제작 서비스 장치 및 그 장치의 구동방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019625A1 (en) * | 2013-07-09 | 2015-01-15 | Google Inc. | Providing indoor map data to a client computing device |
KR102234723B1 (ko) * | 2019-10-09 | 2021-04-01 | 주식회사 에스360브이알 | 지리상의 위치를 특정하는 방법과 이를 이용하는 데이터베이스 및 데이터베이스의 데이터베이스 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000054344A (ko) | 2000-06-02 | 2000-09-05 | 민영욱 | 인터넷을 통한 3차원 가상현실 미술관/쇼핑몰 시스템 및그 운영 방법 |
US7933897B2 (en) * | 2005-10-12 | 2011-04-26 | Google Inc. | Entity display priority in a distributed geographic information system |
US20120162225A1 (en) * | 2010-12-23 | 2012-06-28 | Google Inc. | View dependent techniques to determine user interest in a feature in a 3d application |
KR101923723B1 (ko) * | 2012-09-17 | 2018-11-29 | 한국전자통신연구원 | 사용자 간 상호작용이 가능한 메타버스 공간을 제공하기 위한 메타버스 클라이언트 단말 및 방법 |
KR101875697B1 (ko) | 2017-05-22 | 2018-07-09 | 김석종 | 증강 및 가상현실 기반 건물 정보 제공 시스템 및 그 제공 방법 |
KR102230685B1 (ko) | 2018-12-06 | 2021-03-19 | 신효미 | Vr 갤러리 시스템 및 이를 이용한 vr 갤러리 관리 방법 |
KR102296173B1 (ko) | 2019-11-18 | 2021-08-30 | 이정근 | 공실정보 제공 서버 및 방법 |
-
2022
- 2022-08-12 KR KR1020220101002A patent/KR102497681B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019625A1 (en) * | 2013-07-09 | 2015-01-15 | Google Inc. | Providing indoor map data to a client computing device |
KR102234723B1 (ko) * | 2019-10-09 | 2021-04-01 | 주식회사 에스360브이알 | 지리상의 위치를 특정하는 방법과 이를 이용하는 데이터베이스 및 데이터베이스의 데이터베이스 |
Also Published As
Publication number | Publication date |
---|---|
KR20230025646A (ko) | 2023-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103842777B (zh) | 基于显著性生成和渲染地图特征 | |
KR102497681B1 (ko) | 디지털 지도 기반의 가상현실 및 메타버스 온라인 플랫폼 | |
KR102344087B1 (ko) | 디지털 지도 기반의 온라인 플랫폼 | |
US20040075697A1 (en) | Apparatus, system, method, and program for using GIS data | |
De Fino et al. | Virtual tours and informational models for improving territorial attractiveness and the smart management of architectural heritage: The 3d-imp-act project | |
US11886527B2 (en) | Digital map based online platform | |
KR102553567B1 (ko) | 실측 기반의 평면도를 사용하는 실내 지도와 그 작성 방법 | |
Malinverni et al. | A geodatabase for multisource data management applied to cultural heritage: the case study of Villa Buonaccorsi’s historical garden | |
US11922582B2 (en) | Location-specific three-dimensional models responsive to location-related queries | |
US10489965B1 (en) | Systems and methods for positioning a virtual camera | |
CN106030488A (zh) | 用于视觉接口的入口 | |
Kadi et al. | Mobile application development with augmented reality for promoting tourism objects in Southwest Sumba | |
Ioannidis et al. | A multi-purpose cultural heritage data platform for 4D visualization and interactive information services | |
Robles-Ortega et al. | Automatic street surface modeling for web-based urban information systems | |
Adreani et al. | Design and develop of a smart city digital twin with 3d representation and user interface for what-if analysis | |
Zhou et al. | Customizing visualization in three-dimensional urban GIS via web-based interaction | |
Robles-Ortega et al. | Design of Topologically Structured Geo-database for Interactive Navigation and Exploration in 3D Web-Based Urban Information Systems. | |
Fischer-Stabel et al. | Digital twins, augmented reality and explorer maps rising attractiveness of rural regions for outdoor tourism | |
Lerma et al. | Three‐Dimensional city model visualisation for real‐time guided museum tours | |
Gruen et al. | Perspectives in the reality-based generation, n D modelling, and operation of buildings and building stocks | |
TW201028957A (en) | Automatic display technology of vision landscape in different heights and hidden content of map target objects in a 3D map | |
Meschini et al. | Disclosing Documentary Archives: AR interfaces to recall missing urban scenery | |
Virtanen et al. | CREATING OPEN ONLINE APPLICATIONS WITH GEOSPATIAL INTERFACES-CASE STUDY “PALVELUTUTKA” | |
Ballatore et al. | Design and development of personal geoservices for universities | |
WO2010032178A1 (en) | Computer-readable program for three-dimensional map user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |