KR102553567B1 - Indoor maps using floor plans based on actual measurements and methods for creating them - Google Patents
Indoor maps using floor plans based on actual measurements and methods for creating them Download PDFInfo
- Publication number
- KR102553567B1 KR102553567B1 KR1020230018638A KR20230018638A KR102553567B1 KR 102553567 B1 KR102553567 B1 KR 102553567B1 KR 1020230018638 A KR1020230018638 A KR 1020230018638A KR 20230018638 A KR20230018638 A KR 20230018638A KR 102553567 B1 KR102553567 B1 KR 102553567B1
- Authority
- KR
- South Korea
- Prior art keywords
- building
- floor
- map
- coordinate system
- coordinates
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000005259 measurement Methods 0.000 title description 16
- 238000011960 computer-aided design Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 3
- 230000008676 import Effects 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims 1
- 239000010410 layer Substances 0.000 description 117
- 230000006870 function Effects 0.000 description 22
- 230000000875 corresponding effect Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000003550 marker Substances 0.000 description 5
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 244000240602 cacao Species 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000003203 everyday effect Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 241000985630 Lota lota Species 0.000 description 2
- 101100521345 Mus musculus Prop1 gene Proteins 0.000 description 2
- 108700017836 Prophet of Pit-1 Proteins 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004091 panning Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100509468 Arabidopsis thaliana JASON gene Proteins 0.000 description 1
- 229920002160 Celluloid Polymers 0.000 description 1
- 240000007643 Phytolacca americana Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 235000019640 taste Nutrition 0.000 description 1
- 239000002341 toxic gas Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/004—Map manufacture or repair; Tear or ink or water resistant maps; Long-life maps
-
- 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
-
- 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/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/487—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/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/587—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
- 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
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
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)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Tourism & Hospitality (AREA)
- Educational Technology (AREA)
- Educational Administration (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
본 발명은 실측 기반의 평면도를 사용하는 실내 지도와 그 작성 방법을 제공한다.The present invention provides an indoor map using a floor plan based on actual measurements and a method for creating the same.
과거에는 큰 종이에 한 장으로 인쇄되거나 아니면 지역별로 분할되어 책으로 인쇄된 지도가 여행의 필수품이었다. 그런데 지금은 컴퓨터나 스마트폰이 대중화되면서 디지털 지도(digital map)가 그 자리를 대신하게 되었다. 디지털 지도의 가장 큰 장점은 우리가 관심 있는 장소로 화면(screen)의 중심을 옮기고(translate, move), 필요한 배율로 확대하며(zoom-in/zoom-out), 또한 눈앞에 보이는 실제 풍경과 비교하기 위하여 지도의 방향을 바꿀 수 있다(rotate)는 점일 것이다. 이와 같이 종이로 된 지도에서는 없던 편리한 기능을 구현하기 위한 기본 개념이 뷰(view)이다.In the past, maps printed as a single sheet on a large sheet of paper or divided into regions and printed as a book were essential for travel. But now, as computers and smartphones have become popular, digital maps have taken their place. The biggest advantage of a digital map is that it can move the center of the screen to the place we are interested in (translate, move), enlarge it to the required magnification (zoom-in/zoom-out), and compare it with the actual landscape seen in front of us. To do this, you can change the direction of the map (rotate) will be the point. The basic concept for implementing convenient functions that were not available in paper maps like this is a view.
대한민국전도(大韓民國全圖, a complete map of Korea) 또는 세계지도(世界地圖, a world map)를 전체 지도라고 한다면, 그 중에서 컴퓨터나 스마트폰(smartphone)의 화면에 보이는 지도의 일부, 또는 그 지도가 보이는 객체(客體, object)를 뷰라고 생각할 수 있다. 지도 관련하여 대표적인 클라이언트 측 오픈 소스 소프트웨어(client-side open source software)인 오픈레이어스(OpenLayers)는 뷰(view)를 다음과 같이 정의하고 있다(출처: https://openlayers.org/en/latest/apidoc/module-ol_View-View.html).If a complete map of Korea or a world map is the entire map, a part of the map displayed on the screen of a computer or smartphone, or the map You can think of an object that is visible as a view. OpenLayers, a representative client-side open source software related to maps, defines a view as follows (source: 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).)A view object represents a simple two-dimensional view of a map. You can apply map center, resolution, and rotation operations to this object. A view has a projection method. This projection determines the center of coordinates, and the units of this view determine the units of resolution. The default projection is spherical Mercator (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 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, 네이버 지도, 카카오 지도와 같은 다른 지도들도 모두 동일한 개념을 사용한다. 따라서 뷰를 비공식적이지만 사실상 모든 디지털 지도들이 사용하는 공통 개념이라고 생각할 수 있다.Other maps such as Google map, BingMap, OpenStreetMap, Naver Map, and Kakao Map all use the same concept. Thus, you can think of a view as an unofficial but common concept used by virtually all digital maps.
인터넷으로 접속하는 디지털 지도는 지도의 줌 레벨(zoom level)에 따라서 뷰에 보여지는 내용이 달라진다. 일반적인 지도의 줌 레벨은 0에서 24 정도까지 변할 수 있다. 줌 레벨이 0일 때 전 세계가 보인다. 도 1은 오픈레이어스(OpenLayers)로 대한민국 주변의 실외 지도와 함께 맵 타일(map tile)을 표시한 것이며, 지도 데이터의 출처는 오픈스트리트맵(OpenStreetMap)이다(https://www.openstreetmap.org). 한 장의 맵 타일은 폭(width)과 높이(height)가 모두 256 픽셀(pixel)인 PNG(Portable Network Graphics) 파일로 작성되는 것이 일반적이다.Digital maps accessed through the Internet differ in what is displayed on the view depending on the zoom level of the map. The zoom level of a typical map can vary from 0 to 24 degrees. At
도 1을 보면 줌 레벨 5에서 남한 전체가 하나의 맵 타일(z:5, x:27, y:12)에 들어가는 것을 볼 수 있다. 이 타일에는 각 도의 경계선들이 보이고, 또 서울, 광주, 부산 등 대도시들이 표시된 것을 볼 수 있다. 한편, 도 2는 줌 레벨 6에서 같은 지역을 본 것이다. 하나의 타일에 보이던 영역이 가로:세로 각 2개씩 총 4개의 타일에 걸쳐서 나누어져 보이고, 또 총 면적이 늘어나므로 소도시들과 고속도로들이 추가로 표시된 것을 볼 수 있다. 이와 같이 줌 레벨이 1씩 증가할 때 한 장의 타일에 보여지는 영역은 1/4로 줄어들고, 반대로 지도는 4배씩 확대되어 보여진다.Looking at Figure 1, it can be seen that all of South Korea is included in one map tile (z:5, x:27, y:12) at
디지털 지도를 시작하면 지리상의 위치(geographic location)와 줌 레벨에 부합하는 타일들을 지도 서버(map server)에서 가져와서 뷰에 보여주게 된다. 따라서 예를 들어 줌 레벨이 5.0부터 시작하여 6.0이 되기까지는 모두 동일한 타일들이 보여지며, 단지 디지털 지도의 줌 레벨에 맞게 타일이 확대하거나 축소하여 보여지게 된다. 한편, 줌 레벨이 6.0을 넘어가게 되면 다른 타일 세트가 사용되므로, 원칙적으로 다른 이미지를 보여줄 수 있다.When you start a digital map, tiles matching your geographic location and zoom level are fetched from the map server and displayed in the view. Therefore, for example, the same tiles are shown until the zoom level starts from 5.0 to 6.0, and only the tiles are enlarged or reduced according to the zoom level of the digital map. On the other hand, when the zoom level exceeds 6.0, a different tile set is used, so in principle, a different image can be displayed.
디지털 지도에 사용되는 타일을 생성하는 방법은 먼저 도로, 건물, 철도 등 지도에 포함되어야 할 지형지물(地形地物)을 모두 각각의 레이어(layer)로 정의하고, 또 각각의 레이어를 겹치는 순서를 정의한다. 도 3은 지도 제작에 있어서 실세계를 각각의 레이어로 분할하는 과정을 예시하는 개념도이다(출처: https://saylordotorg.github.io/text_essentials-of-geographic-information-systems/s11-02-multiple-layer-analysis.html). 실세계를 지도로 묘사하는데 있어서 토지이용(土地利用, land usage) 현황, 고도(elevation), 땅의 구획(parcels), 도로(streets) 등을 각각 별도의 레이어로 구축한 것을 볼 수 있다.To create a tile used in a digital map, first define all the features to be included in the map, such as roads, buildings, and railroads, as layers, and then determine the order in which each layer is overlapped. define. 3 is a conceptual diagram illustrating a process of dividing the real world into layers in map production (source: https://saylordotorg.github.io/text_essentials-of-geographic-information-systems/s11-02-multiple- layer-analysis.html). In describing the real world as a map, you can see that land usage status, elevation, parcels, and streets are built into separate layers.
사람들에게 널리 알려진 오토캐드(AutoCAD), 포토샵(Photoshop), 어도비 일러스트레이터(Adobe Illustrator)와 같은 소프트웨어들은 도면, 사진, 일러스트레이션을 생성하거나 수정하기 위하여 모두 레이어(layer)를 사용한다. 더 이전에는 셀 애니메이션(cel animation)을 만들 때에도 레이어의 개념이 사용되었다.Software such as AutoCAD, Photoshop, and Adobe Illustrator, which are widely known to people, all use layers to create or modify drawings, photos, and illustrations. Even earlier, the concept of layers was used to create cel animations.
셀 애니메이션은 만화 영화를 만드는 제작 기법으로 배경과 등장 인물들을 모두 각각 별도의 셀룰로이드(celluloid)라는 투명한 필름 위에 그린 뒤, 그 필름들을 겹쳐놓고 카메라로 촬영하여 한 프레임(frame)씩 완성하는 기술이다. 이와 같은 기술을 사용하면 프레임별로 변하지 않는 레이어는 반복 사용할 수 있어 시간과 노력을 절약할 수 있다.Cell animation is a production technique that creates a cartoon movie. It is a technology in which the background and characters are drawn on a separate transparent film called celluloid, and then the films are overlapped and filmed with a camera to complete frame by frame. Using this technique, layers that do not change from frame to frame can be repeatedly used, saving time and effort.
도 3에서 각각의 레이어를 투명한 필름으로 제작한 뒤, 사진을 찍기 위하여 순서에 맞게 겹쳐 놓았다고 가정하자. 이렇게 겹쳐 놓은 레이어들을 위에서 송곳으로 찔러서 모든 레이어에 작은 구멍을 냈다고 하면, 모든 레이어의 구멍은 실제 세계에서 같은 지리적인 위치, 예를 들어 같은 위도(緯度, latitude)와 경도(經度, longitude)를 가질 것이다.Assume that each layer in FIG. 3 is made of a transparent film and then overlapped in order to take a picture. If you poke small holes in all layers by poking the overlapping layers from above with an awl, the holes in all layers will have the same geographical location in the real world, for example, the same latitude and longitude. will be.
실제 예로 국토지리정보원(https://www.ngii.go.kr)에서 제작한 국가 공식 지도인 바로e맵(map.ngii.go.kr)의 2020년 버전(version)은 총 193개의 레이어로 구성되어 있다. 지도 제작을 위한 오픈소스 소프트웨어인 QGIS와 같은 소프트웨어를 사용하면, 각각의 레이어를 별도로 수정한 뒤 전체 레이어를 합쳐서 한 장의 지도로 출력할 수 있다.As an actual example, the 2020 version of Baro e Map (map.ngii.go.kr), the official national map produced by the National Geographic Information Institute (https://www.ngii.go.kr), has a total of 193 layers. Consists of. Using software such as QGIS, an open source software for map production, each layer can be modified separately and then all layers can be merged and output as a single map.
이 한 장의 지도는 jpeg이나 png, tiff와 같은 확장자를 가지는 그림 파일, 즉 래스터 지도(raster map)로 생성할 수도 있고, 오토캐드로 작성한 건축물의 평면도와 같은 벡터 지도(vector map)로 만들 수도 있다. 바로e맵의 제작 과정에서는 193개의 레이어가 사용됐지만, 완성된 래스터 지도는 단일 레이어가 된다.This single map can be created as a picture file with an extension such as jpeg, png, or tiff, that is, a raster map, or a vector map such as a floor plan of a building created with AutoCAD. . 193 layers were used in the production process of the Baro e-map, but the completed raster map becomes a single layer.
QGIS, OpenLayers나 Leaflet과 같은 소프트웨어를 사용하면 각자 자신의 필요에 특화된 지도를 만들 수 있다. 이 경우에도 다시 한 장 이상의 레이어를 사용할 수 있는데, 예를 들어 위성사진을 불러 온 뒤, 그 위성사진에서 희미하게 보이는 도로들을 벡터 레이어로 그리고, 이 두 레이어를 겹쳐서 표시할 수 있다. 이 경우에 하늘에서 내려다본 것과 같은 실제 풍경에 도로를 두드러지게 표현함으로써 하이킹(hiking) 계획을 세우는데 사용할 수 있을 것이다.Using software such as QGIS, OpenLayers or Leaflet, each person can create maps specific to their needs. In this case, more than one layer can be used again. For example, after loading a satellite image, faintly visible roads in the satellite image can be drawn as a vector layer, and these two layers can be overlapped. In this case, it could be used to plan a hike by emphasizing the road in a real landscape as seen from the sky.
도 3에 보이는 것과 같은 각각의 레이어들에 대하여 디지털 지도에서 보여지는 줌 레벨을 정의할 수 있다. 예를 들어 고속도로는 줌 레벨 6에서부터 24까지 어느 레벨에서도 보이도록 정의하고, 지방 도로는 줌 레벨이 7 이상일 경우에만 보이도록 정의하는 식이다. 이와 같이 각각의 레이어에 대하여 줌 레벨을 정의한 뒤, 이와 같은 레이어들로부터 셀 애니메이션을 만들듯이 디지털 지도에 사용할 타일들을 생성한다. 따라서 줌 레벨에 따라서 다른 타일 세트로 교환될 때 다른 정보가 보여질 수 있다.A zoom level shown on the digital map may be defined for each layer as shown in FIG. 3 . For example, highways are defined to be visible at any zoom level from 6 to 24, and local roads are defined to be visible only when the zoom level is 7 or higher. After defining the zoom level for each layer in this way, tiles to be used in the digital map are created from these layers as if creating a cell animation. Therefore, different information can be shown when swapping to different tile sets depending on the zoom level.
도 4는 바로e맵에서 대전중앙로사거리 근처를 보여준다. 지도의 줌이 작을 때에는 중앙로역의 북동쪽에 단지 중앙카센터만이 보여지고 있다. 그런데 도 5에서 지도의 줌이 증가하자 한솔약국 등을 포함하는 다수의 건물들의 외곽선이 보여지고 있다.Figure 4 shows the neighborhood of Daejeon Jungang-ro Intersection in Baro e Map. When the zoom of the map is small, only the central car center is shown to the northeast of Jungangno Station. However, as the zoom of the map increases in FIG. 5, outlines of a number of buildings including Hansol Pharmacy are shown.
도 4에서와 같이 줌 레벨이 작을 경우에 이와 같은 정보들을 모두 표시하면 사실상 아무것도 알아볼 수 없을 것이다. 따라서 지도의 줌이 증가함에 따라서 점점 더 상세한 정보가 표시되도록 하는 방법은 필수불가결하다고 할 수 있다.As in FIG. 4, when the zoom level is small, virtually nothing can be recognized if all such information is displayed. Therefore, as the zoom of the map increases, a method for displaying more and more detailed information is indispensable.
한편, 급속한 도시화로 인하여 전 세계의 인구 대부분이 도시에 거주하고 있으며, 또 많은 건물이 2층 이상의 다층 건물이다. 따라서 특정 건물의 온전한 정보를 온라인 지도상에 표시하고 싶다면, 사용자가 특정 층을 선택하면 그 층의 구조와 정보를 보여주는 실내 지도(indoor map)가 필수적이다. 실내 지도는 기본적으로 건물의 층별 평면도에 선택적으로 추가적인 정보를 표시한 것을 말한다.On the other hand, due to rapid urbanization, most of the world's population lives in cities, and many buildings are multi-story buildings with two or more floors. Therefore, if you want to display complete information of a particular building on an online map, an indoor map that shows the structure and information of a particular floor when the user selects it is essential. An indoor map is basically an optional display of additional information on a floor plan of a building.
구글은 2005년 2월에 웹으로 실행되는 디지털 지도를 서비스하기 시작하였으며, 실내 지도 서비스는 2011년 3월에 시작하였고, 지금은 많은 기업들이 다양한 형태의 실내 지도 서비스를 제공하고 있다비특1. 구글 크롬(Chrome)에서 '구글 실내 지도'를 검색하면 구글의 실내 지도 서비스를 소개하는 페이지(https://www.google.com/intl/ko/maps/about/partners/indoormaps)를 찾을 수 있으며, 실내 지도의 사례로 미국 뉴욕의 매디슨 스퀘어 가든(Madison Square Garden)을 보여주고 있다. 여기서 'Google 지도에서 보기'라고 표시된 링크를 클릭하면 도 6과 같은 화면이 보여진다(출처: https://www.google.com/maps/place/%EB%A7%A4%EB%94%94%EC%8A%A8+%EC%8A%A4%ED%80%98%EC%96%B4+%EA%B0%80%EB%93%A0/@40.7505029,-73.9936424,19z/data=!3m1!5s0x89c259ae1546fb27:0x93ba42deb43c8368!4m12!1m6!3m5!1s0x89c25a21fb011c85:0x33df10e49762f8e4!2z66ek65SU7IqoIOyKpO2AmOyWtCDqsIDrk6A!8m2!3d40.7505045!4d-73.9934387!3m4!1s0x89c25a21fb011c85:0x33df10e49762f8e4!8m2!3d40.7505045!4d-73.9934387).Google started providing digital map services running on the web in February 2005, and indoor map services in March 2011, and now many companies are providing various types of indoor map services . If you search for 'Google Indoor Maps' in Google Chrome, you can find a page introducing Google's indoor map service (https://www.google.com/intl/en/maps/about/partners/indoormaps). , shows Madison Square Garden in New York, USA as an example of an indoor map. If you click the link marked 'View on Google Maps' here, the screen shown in Figure 6 is displayed (Source: https://www.google.com/maps/place/%EB%A7%A4%EB%94%94 %EC%8A%A8+%EC%8A%A4%ED%80%98%EC%96%B4+%EA%B0%80%EB%93%A0/@40.7505029,-73.9936424,19z/data=!3m1! 5s0x89c259ae1546fb27:0x93ba42deb43c8368!4m12!1m6!3m5!1s0x89c25a21fb011c85:0x33df10e49762f8e4!2z66ek65SU7IqoIOyKpO2AmOyWtCDqsIDrk6A !8m2!3d40.7505045!4d-73.9934387!3m4!1s0x89c25a21fb011c85:0x33df10e49762f8e4!8m2!3d40.7505045!4d-73.9934387).
도 6에서 보여지는 바와 같이 실외 지도(outdoor map)상의 올바른 위치에 실내 지도(indoor map)가 중첩되어 표시되고 있으며, 소개 화면에는 6K 층이 보여지고 있다. 또 화면 왼쪽에는 매디슨 스퀘어 가든의 미니 홈페이지가 보여지고 있으며, 오른쪽에는 다른 층을 선택할 수 있는 메뉴가 있다.As shown in FIG. 6, an indoor map is overlapped and displayed at the correct position on the outdoor map, and a 6K floor is shown on the introduction screen. In addition, the mini home page of Madison Square Garden is shown on the left side of the screen, and there is a menu to select other floors on the right side.
도 7에서는 지도 화면을 확대하여 매디슨 스퀘어 가든의 동편을 보여주고 있으며, 도 8에서는 층을 지하 2층(-2)으로 변경한 것이다. 이처럼 다른 층을 선택하면 해당 층의 평면도로 교체되어 표시된다.In FIG. 7, the map screen is enlarged to show the east side of Madison Square Garden, and in FIG. 8, the floor is changed to the second basement floor (-2). If you select a different floor like this, the plan view of that floor is replaced and displayed.
실외 지도는 뷰에 보여주고자 하는 지리적 위치와 줌 레벨이 정해지면 지도에 보여질 타일들이 자동적으로 정해진다. 전술한 바와 같이 타일은 png 파일의 형태로 제작된 정사각형의 래스터 파일(raster files)을 사용하는 경우가 대부분이지만, 요즈음은 벡터 타일(vector tiles)을 사용하는 지도 서비스업자들도 늘어나고 있다. 그런데 실내 지도는 실외 지도 위에 중첩되어 보여져야 하고, 사용자가 다른 층을 선택하면 다른 실내 지도, 즉 다른 층의 평면도가 보여져야 하므로 실외 지도와 같은 타일 방식으로는 서비스를 하기 어렵다. 따라서 실내 지도는 실외 지도와 별개의 데이터로 관리되어야 하며, 데이터 저장소(data store)에 저장되었다가 필요시 불러와서 실외 지도 위에 중첩하여 표시할 수 있어야 한다.For outdoor maps, tiles to be displayed on the map are automatically determined when the geographic location and zoom level to be displayed on the view are determined. As described above, in most cases, square raster files produced in the form of png files are used for tiles, but these days, map service providers using vector tiles are also increasing. However, the indoor map must be overlapped on the outdoor map, and when the user selects another floor, another indoor map, that is, a floor plan of another floor, must be displayed, so it is difficult to provide a service in the same tiled manner as the outdoor map. Therefore, the indoor map should be managed as separate data from the outdoor map, stored in a data store, and then retrieved when necessary and displayed superimposed on the outdoor map.
이와 같이 데이터 저장소에 저장되었다가 웹 서버에 제공되기 위해서는 텍스트(text) 기반의 벡터 파일(vector file)로 실내 지도를 작성하는 것이 바람직하며, 이에 가장 적합한 파일 형식이 지오제이슨(GeoJSON)이다. 공식적인 홈페이지(https://geojson.org)에 의하면 GeoJSON은 다양한 지리적인 데이터 구조를 표현하기 위한 형식이다(GeoJSON is a format for encoding a variety of geographic data structures).In this way, in order to be stored in a data storage and provided to a web server, it is desirable to create an indoor map as a text-based vector file, and the most suitable file format for this is GeoJSON. According to the official website (https://geojson.org), GeoJSON is a format for encoding a variety of geographic data structures.
위키피디아 한국어 사이트에는 "GeoJSON(지오제이슨)은 위치정보를 갖는 점을 기반으로 체계적으로 지형을 표현하기 위해 설계된 개방형 공개 표준 형식이다. 이것은 JSON인 자바스크립트 오브젝트 노테이션(Object Notation)을 사용하는 파일 포맷이다."라고 해설되어 있다비특2.According to the Korean Wikipedia site, "GeoJSON is an open and open standard format designed to systematically represent terrain based on points with location information. This is a file format that uses JSON, JavaScript Object Notation. ." It is explained as non-special 2 .
지오제이슨은 자바스크립트 객체(JavaScript object)이므로, 지오제이슨의 이해에 앞서서 자바스크립트 객체의 이해가 선행되어야 한다. MDN Web Docs는 자바스크립트 객체를 다음과 같이 설명하고 있다(출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object).Since GeoJason is a JavaScript object, understanding of JavaScript objects should precede understanding of GeoJason. MDN Web Docs describes JavaScript objects as follows (source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object).
객체 클래스(Object class)는 자바스크립트의 데이터 유형 중 하나를 나타낸다. 이것은 다양한 키(key)를 가지는 값들의 모음 및 더 복잡한 엔티티들을 저장하는 데 사용된다. 객체는 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.)An object class represents one of JavaScript's data types. It is used to store collections of values with various keys and more complex entities. Objects can be created using the Object() constructor or object initializer / literal syntax. Object() constructor or the object initializer / literal syntax.)
자바스크립트 객체를 생성하기 위해서는 중괄호({}) 안에 '키(key): 값(value)'의 쌍으로 구성된 프로퍼티(property)를 넣으면 되며, 키엔 문자형(string type), 값엔 모든 자료형이 허용된다. 예를 들어 좌표(coordinate)라는 사용자 정의 객체를 다음과 같이 정의할 수 있다.To create a JavaScript object, put a property consisting of a pair of 'key: value' inside curly braces ({}), and a string type is allowed for the key, and all data types are allowed for the value. For example, a user-defined object called coordinate can be defined as:
var coordinate = { lat: 36.0, lon: 127.0 };var coordinate = { lat: 36.0, lon: 127.0 };
여기서 lat과 lon은 키(key)이며, 36.0과 127.0은 그 값(value)들이다. 예를 들어 lat의 값은 coordinate.lat으로 구할 수 있다.Here, lat and lon are keys, and 36.0 and 127.0 are values. For example, the value of lat can be obtained as coordinate.lat.
지오제이슨에 대한 최신의 공식 문서는 국제 인터넷 표준화 기구 산하 실무반(Internet Engineering Task Force Working Group)에 의하여 2016년에 발간된 "RFC(Request for Comments) 7946 - The GeoJSON Format"이다비특3. 이에 의하면 지오제이슨이 허용하는 객체의 종류(type)는 기하객체(幾何客體, Geometry)와 속성객체(屬性客體, Feature)와 속성집단객체(屬性集團客體, FeatureCollection)이다.The latest official document on GeoJSON is "RFC (Request for Comments) 7946 - The GeoJSON Format" published in 2016 by the International Internet Engineering Task Force Working Group. According to this, the types of objects that GeoJason allows are Geometry, Property Objects, and Property Group Objects.
지오제이슨은 다음과 같은 종류의 기하객체를 지원한다. 점(點, Point), 연결선분(連結線分, LineString), 다각형(多角形, Polygon), 다중점(多重點, MultiPoint), 다중연결선분(多重連結線分, MultiLineString), 다중다각형(多重多角形, MultiPolygon), 그리고 기하집단(幾何集團, GeometryCollection). 속성객체(屬性客體, Feature)는 기하객체에 추가적인 속성(properties)을 부여한 객체이다. 그리고 속성집단객체(屬性集團客體, FeatureCollection)는 다수의 속성객체를 가지는 객체이다.(GeoJSON supports the following geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection. Features in GeoJSON contain a Geometry object and additional properties, and a FeatureCollection contains a list of Features.)GeoJason supports the following types of geometric objects: Point, line segment, line string, polygon, multi point, multi line segment, multi line string, multi polygon多角形, MultiPolygon), and GeometryCollection. A feature object is an object that has additional properties added to a geometric object. And a property group object (FeatureCollection) is an object that has multiple property objects. (GeoJSON supports the following geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection. Features in GeoJSON contain a Geometry object and additional properties, and a FeatureCollection contains a list of Features.)
GeoJSON 객체는 JSON(JavaScript Object Notation) 객체의 하나이며, 종류(type) 항목(member)을 가지는데, 그 항목의 값은 위에 열거한 9개 중의 어느 하나이어야 한다. 즉, GeoJSON 객체는 기하객체에 속성객체와 속성집단객체를 추가한 것이다. 또, 외부 항목(foreign member)을 가질 수 있다.A GeoJSON object is one of JSON (JavaScript Object Notation) objects, and has a type item (member), and the value of the item must be one of the nine items listed above. In other words, the GeoJSON object is obtained by adding a property object and a property group object to the geometry object. Also, it can have foreign members.
3. 지오제이슨 객체3. GeoJason object
지오제이슨 객체란 기하객체와 속성객체와 속성집단객체를 의미한다.GeoJason objects refer to geometry objects, property objects, and property group objects.
o 지오제이슨 객체는 제이슨 객체이다.o A geoJason object is a JASON object.
o 지오제이슨 객체는 종류(type)라는 이름의 항목을 가지고 있다. 그 항목의 값은 지오제이슨 객체의 종류 중 어느 하나이어야만 한다.o A GeoJason object has an item named type. The value of that item must be one of the types of GeoJason objects.
o 지오제이슨 객체는 "bbox" 항목을 가질 수 있으며, 그 항목의 값은 최소 경계 상자 배열(bounding box array)이어야만 한다.o A GeoJason object can have a "bbox" item, and the value of that item must be a minimum bounding box array.
o 지오제이슨 객체는 다른 항목을 가질 수 있다.o GeoJason objects can have other items.
(3. GeoJSON Object(3. GeoJSON Object
A GeoJSON object represents a Geometry, Feature, or collection of Features.A GeoJSON object represents a Geometry, Feature, or collection of Features.
o A GeoJSON object is a JSON object.o A GeoJSON object is a JSON object.
o A GeoJSON object has a member with the name "type". The value of the member MUST be one of the GeoJSON types.o A GeoJSON object has a member with the name "type". The value of the member MUST be one of the GeoJSON types.
o A GeoJSON object MAY have a "bbox" member, the value of which MUST be a bounding box array.o A GeoJSON object MAY have a "bbox" member, the value of which MUST be a bounding box array.
o A GeoJSON object MAY have other members.)o A GeoJSON object MAY have other members.)
기하객체는 좌표 공간에서 점, 곡선, 표면을 표현한다(A Geometry object represents points, curves, and surfaces in coordinate space). 기하객체의 종류 항목의 값은 전술한 7개의 기하객체 중 어느 하나이어야 한다(The value of a Geometry object's "type" member MUST be one of the seven geometry types). 즉, 기하객체의 종류 항목은 "Point", "LineString", "Polygon", "MultiPoint", "MultiLineString", "MultiPolygon", "GeometryCollection" 중 어느 하나를 값으로 가져야 한다.A Geometry object represents points, curves, and surfaces in coordinate space. The value of a Geometry object's "type" member MUST be one of the seven geometry types. That is, the type of geometry object must have one of "Point", "LineString", "Polygon", "MultiPoint", "MultiLineString", "MultiPolygon", and "GeometryCollection" as a value.
기하집단객체를 제외한 지오제이슨 기하객체들은 "좌표"라는 항목을 가진다(A GeoJSON Geometry object of any type other than "GeometryCollection" has a member with the name "coordinates"). "좌표" 항목의 값은 배열로 주어진다(The value of the "coordinates" member is an array).A GeoJSON Geometry object of any type other than "GeometryCollection" has a member with the name "coordinates". The value of the "coordinates" member is an array.
위치(position)는 기하객체를 구성하는 근본적인 기하학적 구성 요소이다. 점객체는 단 하나의 위치로 구성되고, 연결선분객체는 위치의 배열로 주어진다.Position is a fundamental geometric component of a geometric object. A point object consists of only one position, and a connecting line segment object is given as an array of positions.
3.1.1. 위치3.1.1. location
위치는 근본적인 기하학적 구성 요소이다. 기하객체의 좌표 속성은 다음과 같이 구성된다.:Position is a fundamental geometric component. The coordinate properties of a geometry object consist of:
o 점객체의 경우에는 하나의 위치,o For a point object, one position,
o 연결선분객체 또는 다중점객체의 경우에는 위치의 배열,o an array of positions in the case of a connecting line segment object or multipoint object;
o 다중연결선분객체나 다각형객체의 경우에는 연결선분객체의 배열이나 좌표의 환상(環狀) 배치,o In the case of multi-connected line segment objects or polygonal objects, arrangement of connected line segment objects or annular arrangement of coordinates,
또는or
o 다중다각형객체의 경우에는 다각형객체의 좌표의 배열.o In the case of a multi-polygon object, an array of polygon object coordinates.
(3.1.1. Position(3.1.1. Position
A position is the fundamental geometry construct. The "coordinates" member of a Geometry object is composed of either:A position is the fundamental geometry construct. The "coordinates" member of a Geometry object is composed of either:
o one position in the case of a Point geometry,o one position in the case of a Point geometry;
o an array of positions in the case of a LineString or MultiPoint geometry.o an array of positions in the case of a LineString or MultiPoint geometry.
o an array of LineString or linear ring coordinates in the case of a Polygon or MultiLineString geometry,o an array of LineString or linear ring coordinates in the case of a Polygon or MultiLineString geometry,
oror
o an array of Polygon coordinates in the case of a MultiPolygon geometry.)o an array of Polygon coordinates in the case of a MultiPolygon geometry.)
위치는 경도(longitude)와 측지 위도(geodetic latitude), 또는 동향거리(東向距離, easting)와 북향거리(北向距離, northing)의 배열이며, 세번째 요소로 고도(altitude, elevation)를 추가할 수 있다.A location is an array of longitude and geodetic latitude, or easting and northing distances, with an optional third element, altitude (elevation). .
위치는 숫자의 배열이다. 거기에는 두 개나 그 이상의 요소들이 있어야 한다. 처음 두 개의 요소는 경도와 위도, 또는 동향거리와 북향거리이어야 하며, 순서가 이대로 정확해야 하고, 숫자는 십진법으로 주어져야 한다. 선택적으로 높이 또는 해발고도(海拔高度)가 제3의 요소로 추가될 수 있다(A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element).position is an array of numbers. There must be two or more elements. The first two elements must be longitude and latitude, or distance east and north, in that exact order, and numbers given in decimal notation. A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing , precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element).
이상에서 알 수 있듯이 가장 간단한 지오제이슨 객체는 점객체이다. 경도의 값을 lon이라고 하고, 위도의 값을 lat이라고 하면, 점객체는 다음과 같이 주어진다.As you can see from the above, the simplest GeoJason object is a point object. If the value of longitude is lon and the value of latitude is lat, the point object is given as follows.
{"type": "Point", "coordinates": [lon, lat]}{"type": "Point", "coordinates": [lon, lat]}
여기서 위치는 경도 lon과 위도 lat의 배열 [lon, lat]로 주어진 것을 알 수 있다. 자바스크립트(JavaScript)에서 배열은 대괄호([])로 표시한다. 또, 고도를 alt라고 하면, 고도를 포함한 점객체는 다음과 같이 주어진다.Here, we can see that the location is given as an array [lon, lat] of longitude lon and latitude lat. Arrays in JavaScript are denoted by square brackets ([]). Also, if the altitude is alt, the point object including the altitude is given as follows.
{"type": "Point", "coordinates": [lon, lat, alt]}{"type": "Point", "coordinates": [lon, lat, alt]}
연결선분객체는 최소한 두 개의 위치가 필요하다. 경위도(經緯度)가 (100.0°, 0.0°)인 위치에서 (101.0°, 1.0°)인 위치를 연결하는 연결선분객체는 다음과 같이 주어진다.A connecting segment object requires at least two locations. The connecting line segment object connecting the position of (100.0°, 0.0°) to (101.0°, 1.0°) of longitude and latitude is given as follows.
{"type": "LineString", "coordinates": [[100.0, 0.0], [101.0,1.0]]}{"type": "LineString", "coordinates": [[100.0, 0.0], [101.0,1.0]]}
여기서 종류(type)를 다중점객체(MultiPoint)로 바꾼다면, 연결선분이 아니라 두 개의 점이 된다.If you change the type here to MultiPoint, it becomes two points instead of a connecting line.
또, 삼각형을 수학적으로 정의하기 위해서는 3개의 점이 필요하다. 삼각형을 연결선분객체와 다각형객체로 표현했을 때의 차이는 삼각형의 내부와 외부를 구분할 수 있는가의 여부이다. 똑같이 보이는 삼각형이라도 연결선분객체의 경우에는 단지 3개의 선분이며, 내부와 외부를 구분할 수 없기 때문에 삼각형을 색칠하는 것이 불가능하다. 반면, 다각형객체는 내부와 외부를 구분할 수 있기 때문에 삼각형을 색칠할 수 있고, 마우스 커서(cursor)가 삼각형의 내부에 있는지 외부에 있는지도 판단할 수 있다.Also, three points are needed to mathematically define a triangle. The difference between expressing a triangle as a connecting line segment object and a polygon object is whether the inside and outside of the triangle can be distinguished. Even if the triangle looks the same, in the case of a connecting line segment object, it is only three line segments, and it is impossible to color the triangle because the inside and outside cannot be distinguished. On the other hand, since polygon objects can distinguish between inside and outside, triangles can be colored, and whether the mouse cursor is inside or outside the triangle can also be determined.
연결선분객체와 다각형객체는 모두 위치의 배열로 주어진다. 그런데 지오제이슨에서는 다각형객체를 정의하기 위하여 2개의 필수 조건을 요구한다. 첫번째로 좌표 항목의 값으로 주어지는 위치의 배열에서 첫번째 위치와 마지막 위치가 동일해야 한다. 두번째로 위치의 순서가 좌표계 공간에서 보았을 때 반시계 방향으로 주어져야 한다.Both the connecting line segment object and the polygon object are given as an array of positions. However, GeoJason requires two essential conditions to define a polygon object. First, the first position and the last position in the position array given as the value of the coordinate item must be the same. Second, the order of positions must be given in a counterclockwise direction when viewed in coordinate space.
3.1.6. 다각형객체3.1.6. polygon object
다각형객체에만 적용되는 구속 조건을 이해하기 위해서 선형환(線形環, linear ring)의 개념을 도입하는 것이 유용하다:To understand constraints that apply only to polygonal objects, it is useful to introduce the concept of a linear ring:
o 선형환은 4개 이상의 위치를 갖는 닫혀진 연결선분객체이다.o A linear ring is a closed connecting line segment object with 4 or more positions.
o 처음과 마지막 위치는 같으며, 값과 형식이 모두 동일하여야 한다.o The first and last positions must be the same, and both the value and format must be the same.
o 선형환은 표면의 경계나, 표면에 뚫린 구멍의 경계를 나타낸다.o A linear ring represents the boundary of the surface or the boundary of a hole drilled in the surface.
o 선형환이 나타내는 영역의 경계와 관련하여 선형환은 오른손 법칙을 따라야 한다. 즉, 외부의 선형환은 반시계 방향이고, 구멍은 시계 방향이다.o The linear ring must follow the right-hand rule with respect to the boundaries of the area represented by the linear ring. That is, the outer linear ring is counterclockwise, and the hole is clockwise.
(3.1.6. Polygon(3.1.6. Polygon
To specify a constraint specific to Polygons, it is useful to introduce the concept of a linear ring:To specify a constraint specific to Polygons, it is useful to introduce the concept of a linear ring:
o A linear ring is a closed LineString with four or more positions.o A linear ring is a closed LineString with four or more positions.
o The first and last positions are equivalent, and they MUST contain identical values; their representation SHOULD also be identical.o The first and last positions are equivalent, and they MUST contain identical values; their representation SHOULD also be identical.
o A linear ring is the boundary of a surface or the boundary of a hole in a surface.o A linear ring is the boundary of a surface or the boundary of a hole in a surface.
o A linear ring MUST follow the right-hand rule with respect to the area it bounds, i.e., exterior rings are counterclockwise, and holes are clockwise.)o A linear ring MUST follow the right-hand rule with respect to the area it bounds, i.e., exterior rings are counterclockwise, and holes are clockwise.)
만약 다각형객체가 하나 이상의 선형환을 가지고 있다면, 첫번째 선형환이 가장 바깥의 경계를 나타내야 하고, 나머지는 안쪽의 구멍을 나타낸다.If a polygon object has more than one linear ring, the first linear ring should represent the outermost boundary and the others represent the inner holes.
o 다각형객체의 좌표는 선형환의 좌표의 배열로 주어져야 한다.o Coordinates of a polygon object must be given as an array of coordinates of a linear ring.
o 하나 이상의 선형환을 가지는 다각형객체는 첫번째 선형환이 가장 바깥의 선형환이어야 하고, 나머지는 내부의 선형환들이다. 가장 바깥의 선형환은 표면의 경계를 나타내고, 안쪽의 선형환이 존재한다면 이들은 구멍의 경계를 나타낸다.o For a polygon object with more than one linear ring, the first linear ring must be the outermost linear ring, and the rest are inner linear rings. The outermost linear rings represent the boundary of the surface, and the inner linear rings, if present, represent the boundaries of the hole.
(o For type "Polygon", the "coordinates" member MUST be an array of linear ring coordinate arrays.(o For type "Polygon", the "coordinates" member MUST be an array of linear ring coordinate arrays.
o For Polygons with more than one of these rings, the first MUST be the exterior ring, and any others MUST be interior rings. The exterior ring bounds the surface, and the interior rings (if present) bound holes within the surface.)o For Polygons with more than one of these rings, the first MUST be the exterior ring, and any others MUST be interior rings. The exterior ring bounds the surface, and the interior rings (if present) bound holes within the surface.)
기하집단객체(GeometryCollection)는 "기하구조들(geometries)"이라는 이름을 가지는 항목의 값으로 기하객체를 가지는 지오제이슨 객체이다.A GeometryCollection is a GeoJason object that has a geometry object as the value of an item named "geometries".
3.1.8. 기하집단객체3.1.8. geometry group object
종류가 "기하집단객체"인 지오제이슨 객체는 기하객체이다. 기하집단객체는 이름이 "기하구조들"이라는 항목을 가지고 있다. "기하구조들"의 값은 배열이다. 이 배열의 각각의 요소는 지오제이슨 기하객체이다. 값을 가지지 않는 빈 배열이 허용된다.A GeoJason object with a type of "GeogroupObject" is a Geometry object. The GeoGroup object has an item named "geoms". The value of "geoms" is an array. Each element of this array is a GeoJason geometry object. An empty array with no values is allowed.
(3.1.8. GeometryCollection(3.1.8. GeometryCollection
A GeoJSON object with type "GeometryCollection" is a Geometry object. A GeometryCollection has a member with the name "geometries". The value of "geometries" is an array. Each element of this array is a GeoJSON Geometry object. It is possible for this array to be empty.)A GeoJSON object with type "GeometryCollection" is a Geometry object. A GeometryCollection has a member with the name "geometries". The value of "geometries" is an array. Each element of this array is a GeoJSON Geometry object. It is possible for this array to be empty.)
한편, 전술한 바와 같이 속성객체는 기하객체에 추가적으로 속성(properties) 항목(member)을 가지는 객체이다. 속성객체는 id 항목과 사용자가 정의한 외부 항목을 가질 수 있다. 속성객체의 예는 다음과 같다.Meanwhile, as described above, the property object is an object having a property member in addition to the geometry object. The property object can have an id item and an external item defined by the user. An example of a property object is as follows.
{{
"type": "Feature","type": "Feature",
"id": "f1","id": "f1",
"geometry": {...},"geometry": {...},
"properties": {...},"properties": {...},
"title": "Example Feature""title": "Example Feature"
}}
여기서 키(key)가 "title"이고, 값(value)이 "Example Feature"인 항목이 외부 항목이다. 그런데, 이 외부 항목에 담긴 정보는 속성 항목(properties member)으로 다음과 같이 옮길 수도 있다.Here, an item whose key is "title" and whose value is "Example Feature" is an external item. However, the information contained in this external item can be moved to the properties member as follows.
{{
"type": "Feature","type": "Feature",
"id": "f1","id": "f1",
"geometry": {...},"geometry": {...},
"properties": {"properties": {
"title": "Example Feature","title": "Example Feature",
......
}}
}}
공식 문서에는 따로 정의되어 있지 않지만, 점객체에서 유래된 속성객체를 점속성객체(點屬性客體, Point Feature)라고 부를 수 있을 것이며, 다른 기하객체들도 마찬가지로 대응하는 속성객체들로 부를 수 있을 것이다. 한편, 속성집단객체는 다음의 예와 같이 다수의 속성객체(Feature)를 가지는 지오제이슨 객체이다.Although not defined in the official documentation, a property object derived from a point object could be called a point feature object, and other geometric objects could be called the corresponding property objects as well. . On the other hand, the property group object is a GeoJason object that has a number of property objects (Features) as in the following example.
{{
"type": "FeatureCollection","type": "FeatureCollection",
"features": [{"features": [{
"type": "Feature","type": "Feature",
"geometry": {"geometry": {
"type": "Point","type": "Point",
"coordinates": [102.0, 0.5]"coordinates": [102.0, 0.5]
},},
"properties": {"properties": {
"prop0": "value0""prop0": "value0"
}}
},},
{{
"type": "Feature","type": "Feature",
"geometry": {"geometry": {
"type": "LineString","type": "LineString",
"coordinates": ["coordinates": [
[102.0, 0.0],[102.0, 0.0],
[103.0, 1.0],[103.0, 1.0],
[104.0, 0.0],[104.0, 0.0],
[105.0, 1.0][105.0, 1.0]
]]
},},
"properties": {"properties": {
"prop0": "value0","prop0": "value0",
"prop1": 0.0"prop1": 0.0
}}
},},
{{
"type": "Feature","type": "Feature",
"geometry": {"geometry": {
"type": "Polygon","type": "Polygon",
"coordinates": ["coordinates": [
[[
[100.0, 0.0],[100.0, 0.0],
[101.0, 0.0],[101.0, 0.0],
[101.0, 1.0],[101.0, 1.0],
[100.0, 1.0],[100.0, 1.0],
[100.0, 0.0][100.0, 0.0]
]]
]]
},},
"properties": {"properties": {
"prop0": "value0","prop0": "value0",
"prop1": {"prop1": {
"this": "that""this": "that"
}}
}}
}]}]
}}
이 예에서 속성집단객체는 점속성객체와 연결선분속성객체와 다각형속성객체를 각각 1개씩 가지는 객체이다.In this example, the attribute group object is an object that has one point attribute object, one connection line segment attribute object, and one polygon attribute object.
도 9는 GeoJSON으로 다각형, 점, 선분을 작성하여 실외 지도에 중첩한 오픈레이어스의 예제(출처: https://openlayers.org/en/latest/examples/geojson.html)를 조금 수정한 것이며, 그 소스 코드(source code)는 다음과 같다.9 is a slightly modified example of OpenLayers (source: https://openlayers.org/en/latest/examples/geojson.html) in which polygons, points, and line segments are created with GeoJSON and superimposed on an outdoor map. The source code is as follows.
<!doctype html><!doctype html>
<html><html>
<head><head>
<meta charset="utf-8"> <meta charset="utf-8">
<link rel="stylesheet" href="ol.css"> <link rel="stylesheet" href="ol.css">
<style> <style>
.map { .map {
position: absolute; position: absolute;
top: 0; top: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
right: 0; right: 0;
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
} }
</style> </style>
</head></head>
<body><body>
<div id="map" class="map"></div> <div id="map" class="map"></div>
<script src="ol.js"></script> <script src="ol.js"></script>
<script> <script>
const styles = { const styles = {
'Point': new ol.style.Style({ 'Point': new ol.style.Style({
image: new ol.style.Circle({ image: new ol.style.Circle({
radius: 5, radius: 5,
fill: null, fill: null,
stroke: new ol.style.Stroke({color: 'red', width: 1}), stroke: new ol.style.Stroke({color: 'red', width: 1}),
}) })
}), }),
'LineString': new ol.style.Style({ 'LineString': new ol.style.Style({
stroke: new ol.style.Stroke({ stroke: new ol.style.Stroke({
color: 'green', color: 'green',
width: 1, width: 1;
}), }),
}), }),
'Polygon': new ol.style.Style({ 'Polygon': new ol.style.Style({
stroke: new ol.style.Stroke({ stroke: new ol.style.Stroke({
color: 'blue', color: 'blue',
lineDash: [4], lineDash: [4],
width: 3, width: 3;
}), }),
fill: new ol.style.Fill({ fill: new ol.style.Fill({
color: 'rgba(0, 0, 255, 0.1)', color: 'rgba(0, 0, 255, 0.1)',
}), }),
}), }),
}; };
const styleFunction = function (feature) { const styleFunction = function (feature) {
return styles[feature.getGeometry().getType()]; return styles[feature.getGeometry().getType()];
}; };
const geojsonObject = { const geojsonObject = {
'type': 'FeatureCollection', 'type': 'FeatureCollection',
'crs': { 'crs': {
'type': 'name', 'type': 'name',
'properties': { 'properties': {
'name': 'EPSG:3857', 'name': 'EPSG:3857',
}, },
}, },
'features': [ 'features': [
{ {
'type': 'Feature', 'type': 'Feature',
'geometry': { 'geometry': {
'type': 'Point', 'type': 'Point',
'coordinates': [0, 0], 'coordinates': [0, 0],
}, },
}, },
{ {
'type': 'Feature', 'type': 'Feature',
'geometry': { 'geometry': {
'type': 'LineString', 'type': 'LineString',
'coordinates': [ 'coordinates': [
[4e6, -2e6], [4e6, -2e6],
[8e6, 2e6], [8e6, 2e6],
], ],
}, },
}, },
{ {
'type': 'Feature', 'type': 'Feature',
'geometry': { 'geometry': {
'type': 'LineString', 'type': 'LineString',
'coordinates': [ 'coordinates': [
[4e6, 2e6], [4e6, 2e6],
[8e6, -2e6], [8e6, -2e6],
], ],
}, },
}, },
{ {
'type': 'Feature', 'type': 'Feature',
'geometry': { 'geometry': {
'type': 'Polygon', 'type': 'Polygon',
'coordinates': [ 'coordinates': [
[ [
[-5e6, -1e6], [-5e6, -1e6],
[-3e6, -1e6], [-3e6, -1e6],
[-4e6, 1e6], [-4e6, 1e6],
[-5e6, -1e6], [-5e6, -1e6],
], ],
], ],
}, },
}, },
], ],
}; };
const vectorSource = new ol.source.Vector({ const vectorSource = new ol.source.Vector({
features: new ol.format.GeoJSON().readFeatures(geojsonObject), features: new ol.format.GeoJSON().readFeatures(geojsonObject),
}); });
var map = new ol.Map({ var map = new ol. Map({
view: new ol.View({ view: new ol. View({
center: [0, 0], center: [0, 0],
zoom: 2 Zoom: 2
}), }),
layers: [ layers: [
new ol.layer.Tile({ new ol. layer. Tile({
source: new ol.source.OSM() source: new ol.source.OSM()
}), }),
new ol.layer.Vector({ new ol. layer. Vector({
source: vectorSource, source: vectorSource,
style: styleFunction style: styleFunction
}) })
], ],
target: 'map' target: 'map'
}); });
</script> </script>
</body></body>
</html></html>
노트패드(notepad)에서 이렇게 문서를 작성하여 index.html이라는 이름으로 저장하고, 오픈레이어스(OpenLayers) 라이브러리에 포함된 ol.css 파일과 ol.js 파일을 인덱스 파일(index.html)과 같은 폴더(folder)에 저장한 뒤, 크롬(Chrome)이나 에지(Edge) 브라우저로 인덱스 파일을 열면, 도 9와 같은 지도 화면을 볼 수 있다.Create a document like this in notepad, save it as index.html, and save the ol.css and ol.js files included in the OpenLayers library in the same folder as the index file (index.html) ( folder) and open the index file with Chrome or Edge browser, you can see the map screen as shown in FIG. 9.
여기에서 볼 수 있는 바와 같이 도 9에는 점속성객체 1개, 연결선분속성객체 2개, 다각형속성객체 1개를 가지는 속성집단객체를 세계 지도 위에 중첩하였으며, 각 점의 위치, 연결선분의 마디점들의 위치, 다각형의 꼭짓점들의 위치를 디지털 지도의 투사 방식과 동일한 웹메르카토르 투사 방식(EPSG:3857)에서의 동향거리와 북향거리로 나타내었다. 웹메르카토르 투사 방식에서의 동향거리와 북향거리는 각각 경도(longitude) 및 측지 위도(geodetic latitude)와 상호 변환될 수 있다.As can be seen here, in FIG. 9, an attribute group object having one point attribute object, two connection line segment attribute objects, and one polygon attribute object is superimposed on the world map, and the position of each point and the nodal point of the connecting line segment are superimposed on the world map. The positions of the polygons and the vertices of the polygons were expressed as eastward and northward distances in the Web Mercator projection method (EPSG: 3857), which is the same as the projection method of the digital map. Eastward and northward distances in the Web Mercator projection method can be converted to and from longitude and geodetic latitude, respectively.
또, styles라는 상수(const)가 있는데, 이 상수는 점객체(Point object), 연결선분객체(LineString object), 다각형객체(Polygon object)를 지도상에서 각각 어떻게 표현(render)할 것인지 미리 정의한다. 예를 들어, style 상수의 다각형객체 요소는 다음과 같이 정의되어 있다.In addition, there is a constant called styles, which predefines how to render a Point object, a LineString object, and a Polygon object on a map. For example, the polygon object element of the style constant is defined as follows.
'Polygon': new ol.style.Style({'Polygon': new ol.style.Style({
stroke: new ol.style.Stroke({stroke: new ol.style.Stroke({
color: 'blue',color: 'blue',
lineDash: [4],lineDash: [4],
width: 3,width: 3;
}),}),
fill: new ol.style.Fill({fill: new ol.style.Fill({
color: 'rgba(0, 0, 255, 0.1)',color: 'rgba(0, 0, 255, 0.1)',
}),}),
})})
이는 다각형의 선을 두께 3 포인트(width: 3), 파란색(color: 'blue') 쇄선(鎖線)(lineDash: [4])으로 그리고, 표면은 투명도 0.1의 파란색(fill: new ol.style.Fill({color: 'rgba(0, 0, 255, 0.1)'}))으로 칠하라는 의미이다.This draws the polygon's line with a thickness of 3 points (width: 3), blue (color: 'blue') dashed line (lineDash: [4]), and the surface is blue (fill: new ol.style. It means to fill with Fill({color: 'rgba(0, 0, 255, 0.1)'})).
또, 다음과 같은 스타일 함수(styleFunction)가 정의되어 있다.In addition, the following style function (styleFunction) is defined.
const styleFunction = function (feature) {const styleFunction = function (feature) {
return styles[feature.getGeometry().getType()];return styles[feature.getGeometry().getType()];
};};
이 함수는 주어진 속성객체(feature)에 대하여 먼저 기하객체를 구하고(getGeometry()), 거기서 기하객체의 종류를 구한 뒤(getType()), 그 종류에 대응하는 스타일을 반환하라는(return styles[]) 의미이다.This function first obtains a geometry object for a given feature object (getGeometry()), obtains the type of the geometry object from it (getType()), and returns a style corresponding to that type (return styles[] ) means
이와 같은 함수를 사용하여 미리 정해진 스타일로 점객체와 연결선분객체와 다각형객체가 표현되었다. 이 함수가 없다면 이 도형들은 단순히 흑백 실선으로 그려지게 된다.Point objects, connecting line segment objects, and polygon objects were expressed in a predetermined style using such a function. Without this function, these shapes would simply be drawn as solid black and white lines.
이와 같은 방법을 사용하여 GeoJSON 형식으로 실내 지도를 작성하여 실외 지도에 중첩하여 표시할 수 있으며, 실외 지도를 움직이거나 확대·축소·회전을 하면 실내 지도도 같이 확대·축소·회전된다. 또, 이와 같은 GeoJSON 형식의 평면도를 동적으로(dynamically) 제거하고 다른 평면도로 교체하는 것도 가능하다.Using this method, an indoor map can be created in GeoJSON format and displayed overlaid on an outdoor map. When the outdoor map is moved or enlarged/reduced/rotated, the indoor map is also enlarged/reduced/rotated. In addition, it is also possible to dynamically remove a floor plan in GeoJSON format and replace it with another floor plan.
[특 1] 내지 [특 2]에는 디지털 지도에 사용할 목적으로 개발된 새로운 좌표계가 개시되어 있다. 이 좌표계는 지리상의 위치(geographic location)를 특정하는데 사용되는 측지 위도(測地緯度, geodetic latitude)와 경도(經度, longitude)를 대신하여 거리(distance)의 단위를 갖는 북향거리(北向距離, northing)와 동향거리(東向距離, easting)를 사용한다.[Special 1] to [Special 2] disclose a new coordinate system developed for use in digital maps. This coordinate system replaces geodetic latitude and longitude, which are used to specify a geographic location, with a unit of distance called northing. and easting distance (東向距離, easting) are used.
스마트폰이나 자동차 내비게이션 시스템(navigation system)에서 사용하는 위도(緯度, latitude)는 초등학교에서 배우는 위도와 다르다. 교과서에서 가르치는 위도는 지구의 형상이 완벽한 구(球, sphere)라고 가정하고 위도와 경도를 설명하기 때문에, 우리의 상식 속에 존재하는 위도는 사실은 지심 위도(地心緯度, geocentric latitude)이다. 그런데 지도나 GPS 시스템에서 사용하는 위도는 측지 위도(測地緯度, geodetic latitude)이다.The latitude used in a smartphone or car navigation system is different from the latitude learned in elementary school. Since the latitude taught in textbooks explains latitude and longitude assuming that the shape of the earth is a perfect sphere, the latitude that exists in our common sense is actually geocentric latitude. However, the latitude used in maps and GPS systems is called geodetic latitude.
측지 위도는 지구의 자전(自轉, rotation of the Earth on its axis)의 영향으로 지구의 형상이 편평한 회전타원체(回轉楕圓體, rotational ellipsoid, ellipsoid of revolution, spheroid), 즉 편구면(偏球面, oblate spheroid)에 가깝다는 사실을 반영한다. 이 지구타원체(Earth ellipsoid)는 지도를 만들 때 그 기준타원체(reference ellipsoid)로 활용된다. 도 10은 측지 위도 φ와 지심 위도 ψ의 차이를 이해하기 위한 개념도이다비특4.Geodetic latitude is the rotation of the Earth due to the rotation of the Earth on its axis. ), which reflects the fact that This Earth ellipsoid is used as a reference ellipsoid when making maps. 10 is a conceptual diagram for understanding the difference between geodetic latitude φ and geocentric latitude ψ.
지구를 모델링하기 위해서는 회전타원체의 형상뿐만 아니라 실제 지구에 대한 회전타원체의 원점(origin)의 위치와 방향도 결정되어야 한다. 지구타원체(1001)의 중심(center) C는 지구의 질량 중심(質量中心, center of mass)에 위치하며, 그 오차는 2cm 이내라고 한다. 지구의 자전축(rotation axis)(1002)은 지구의 질량 중심을 지난다. 그리고 지구의 자전축(1002)이 지구타원체(1001)와 만나는 두 지점이 북극(NP, North Pole)과 남극(SP, South Pole)이다. 이 지구타원체는 편구면이므로, 이 회전타원체의 단축(短軸, semi-minor axis)이 지구의 자전축과 일치한다.In order to model the earth, not only the shape of the spheroid but also the location and direction of the origin of the spheroid with respect to the actual earth must be determined. The center C of the
지구상의 한 점 P의 좌표는 3차원 직각 좌표계(three-dimensional Cartesian coordinate, three-dimensional rectangular coordinate)에서 (X, Y, Z)로 나타낼 수 있다. 3차원 직각 좌표계는 ECEF(Earth-Centered, Earth-Fixed) 방식으로 설정된다. 3차원 직각 좌표계의 원점은 지구타원체의 중심(C)에 위치하며, Z-축은 회전타원체의 단축과 일치한다. 남극에서 북극으로 가는 방향이 Z-축의 양(+)의 방향이고, X-축과 Y-축은 적도면(赤道面, Equtorial plane)에 포함된다. 사실은 지구의 자전축이 지표면과 만나는 두 지점이 북극과 남극이다. 이 북극과 남극은 나침반이 가리키는 자북극(磁北極, magnetic northern pole, north magnetic pole)이나 자남극(磁南極, magnetic southern pole)과 정확히 일치하지는 않는다. 즉, Z-축이 지구의 자전축이고, X-Y 평면이 적도면이다. 지구에 고정되었다(Earth-Fixed)는 말은 이 좌표계가 자전하는 지구와 같이 회전한다는 뜻이다.The coordinates of a point P on the Earth can be expressed as (X, Y, Z) in a three-dimensional Cartesian coordinate (three-dimensional rectangular coordinate). The 3D Cartesian coordinate system is set in the ECEF (Earth-Centered, Earth-Fixed) method. The origin of the three-dimensional rectangular coordinate system is located at the center (C) of the Earth's ellipsoid, and the Z-axis coincides with the minor axis of the spheroid. The direction from the South Pole to the North Pole is the positive (+) direction of the Z-axis, and the X-axis and Y-axis are included in the Equatorial plane. In fact, the two points where the earth's axis of rotation intersects with the earth's surface are the north and south poles. These north and south poles do not exactly coincide with the magnetic northern pole (north magnetic pole) or magnetic southern pole pointed to by the compass. That is, the Z-axis is the Earth's axis of rotation, and the X-Y plane is the equatorial plane. Earth-Fixed means that this coordinate system rotates as the Earth rotates.
이 지구타원체에 최적의 구면좌표계(球面座標係, spherical coordinate system)를 적용한 것을 측지 데이텀(測地 datum, geodetic datum)이라고 한다. 지리 좌표계(geographic coordinate system) 또는 세계 측지 시스템(WGS: World Geodetic System)은 지도 작성(cartography), 측지학(測地學, geodesy) 및 위성 기반 내비게이션(satellite-based navigation)의 표준이다. 가장 최신의 WGS는 WGS 84, WGS 1984 또는 EPSG:4326이라고 부르는 시스템이며, GPS는 이 시스템을 사용한다.The application of the optimal spherical coordinate system to this earth ellipsoid is called a geodetic datum. The geographic coordinate system or World Geodetic System (WGS) is a standard for cartography, geodesy and satellite-based navigation. The most recent WGS is a system called WGS 84, WGS 1984 or EPSG:4326, and GPS uses this system.
북극과 남극을 포함하는 평면(平面, plane)은 지구타원체의 중심(C)도 포함하며, 이 평면과 지구타원체의 교선(交線, line of intersection)은 타원(楕圓, ellipse)으로 주어진다. 그런데 그 타원의 중심이 지구타원체의 중심과 일치한다는 뜻에서 편의상 대원(大圓, great circle)이라고 부르기로 한다. 북극에서 남극에 이르는 교선, 즉 대원의 절반을 자오선(子午線, meridian) 또는 경선(經線, lines of longitude)이라고 부른다. 그리고 그리니치 천문대(Royal Greenwich Observatory)를 지나는 자오선이 본초자오선(本初子午線, prime meridian)(PM)이고, 반대편에 있는 자오선이 반대자오선(反對子午線, antimeridian)(AM)이다.The plane containing the north and south poles also includes the center (C) of the Earth's ellipsoid, and the line of intersection between this plane and the Earth's ellipsoid is given as an ellipse. However, since the center of the ellipse coincides with the center of the Earth's ellipsoid, it is called a great circle for convenience. The line of intersection from the North Pole to the South Pole, or half of the great circle, is called the meridian or lines of longitude. The meridian passing through the Greenwich Observatory is the prime meridian (PM), and the meridian on the opposite side is the antimeridian (AM).
지구상에서의 한 점 P의 좌표는 측지 위도 φ, 경도 λ 및 타원체고(楕圓體高, ellipsoidal height) h로 표시할 수도 있다. 측지 위도 φ, 경도 λ 및 타원체고 h를 사용하는 좌표계를 측지 좌표계(geodetic coordinate system)라고 한다. 여기서 측지 위도는 3차원 직각 좌표계의 원점 C와 점 P를 잇는 선분(線分, line segment)을 기준으로 측정하는 것이 아니다. 점 P에서 지구타원체(1001)에 법선(法線, normal) n을 내린다. 그 법선(n)이 지구타원체(1001)와 만나는 점(1003)을 타원체점(ellipsoidal point)이라고 지칭하겠다. 타원체점(1003)에서 지구타원체(1001)에 대한 접평면(tangent plane)(1004)을 그린다면, 정의에 의하여 법선은 접평면(1004)을 수직으로 지난다. 그 법선이 적도면(X-Y 평면)과 이루는 각도 φ가 측지 위도이다. 그리고 그 법선을 연장하여 Z-축과 만나는 점(1005)에서 타원체점(1003)까지의 거리가 묘유선(卯酉線)의 곡률 반지름(radius of curvature in the prime vertical) RN이다비특5.The coordinates of a point P on the Earth can also be expressed by the geodetic latitude φ, longitude λ, and ellipsoidal height h. A coordinate system using geodetic latitude φ, longitude λ and height h is called a geodetic coordinate system. Here, geodetic latitude is not measured based on a line segment connecting the origin C and point P in a three-dimensional rectangular coordinate system. At the point P, the normal n to the earth ellipsoid (1001) is lowered. A
지구타원체의 장축 반경(radius of the semi-major axis)은 6,378,137m이다비특6. 지구타원체의 장축 반경, 즉 긴 반지름이 a이고, 단축 반경(radius of the semi-minor axis), 즉 짧은 반지름이 b라고 하면, 지구타원체의 이심률(離心率, eccentricity) e는 수학식 1과 같이 주어진다.The radius of the semi-major axis of the Earth's ellipsoid is 6,378,137 m . If the radius of the major axis of the earth ellipsoid, that is, the major radius is a, and the radius of the semi-minor axis, that is, the minor axis is b, the eccentricity e of the earth ellipsoid is as shown in
그리고 묘유선의 곡률 반지름 RN은 수학식 2와 같이 주어진다.And the radius of curvature R N of the hairline is given by
즉, 묘유선의 곡률 반지름은 상수(constant)가 아니라 측지 위도 φ의 함수로 주어진다. 그리고 3차원 직각 좌표 X, Y, Z는 측지 위도 φ, 경도 λ, 타원체고 h의 함수로 수학식 3 내지 5와 같이 주어진다.That is, the radius of curvature of the catheter is given as a function of the geodetic latitude φ, not a constant. In addition, the three-dimensional rectangular coordinates X, Y, and Z are given as
이 지구타원체와 적도면과의 교선이 적도(赤道, Equator)이며, 삼차원 직각 좌표계의 X-축은 지구 중심에서 본초자오선과 적도의 교점(交點, intersection point)을 지나는 직선이다. The intersection of this earth ellipsoid and the plane of the equator is the equator, and the X-axis of the three-dimensional rectangular coordinate system is a straight line passing through the intersection point of the Prime Meridian and the equator at the center of the Earth.
지구상에서의 한 점 P의 경도는 그 점을 포함하는 자오면(子午面, meridian plane)이 X-Z 평면과 이루는 각도이며, 수학식 6과 같이 주어진다.The longitude of a point P on the Earth is the angle formed by the meridian plane containing the point with the X-Z plane, and is given by
한편 타원체점(1003)에서 점 P까지의 거리가 타원체고(楕圓體高, ellipsoidal height) h이다. 그리고 지구타원체의 중심 C에서 타원체점(1003)에 이르는 선분이 X-Y 평면과 이루는 각도가 지심 위도 ψ이다. 지심 위도는 수학식 7과 같이 주어진다.On the other hand, the distance from the
측지 위도의 공식은 상당히 복잡하며, 수학식 8과 같이 주어진다.The formula for geodetic latitude is quite complicated and is given as
즉, 측지 위도를 구하는 공식에 측지 위도가 포함되어 있다. 따라서 단순히 계산기를 두드려서 계산할 수 없다. 우리가 무심코 위도라고 지칭할 때에는 정확하게는 측지 위도를 의미한다. 구글 지도(https://www.google.com/maps)나 네이버 지도(https://map.naver.com)와 같은 디지털 지도에서 표시되는 위도는 측지 위도이다. 한편, 경도는 초등학교 교과서에서 배운 것과 개념이 같지만, 본초자오선이 그린위치 천문대를 정확하게 지나지 않는다는 점에서 미세한 차이가 있다. 어쨌든 이와 같은 수학식을 이용하여 측지 위도 φ, 경도 λ, 타원체고 h를 3차원 직각 좌표계의 좌표 (X, Y, Z)와 상호 변환하는 것이 가능하다.That is, the formula for obtaining geodetic latitude includes geodetic latitude. Therefore, it cannot be calculated simply by tapping a calculator. When we casually refer to latitude, we mean precisely geodetic latitude. The latitude displayed on digital maps such as Google Maps (https://www.google.com/maps) or Naver Maps (https://map.naver.com) is a geodetic latitude. On the other hand, longitude is the same concept as what you learned in elementary school textbooks, but there is a subtle difference in that the prime meridian does not exactly pass through the Greenwich Observatory. In any case, it is possible to mutually transform geodetic latitude φ, longitude λ, and ellipsoidal height h with the coordinates (X, Y, Z) of a 3-dimensional rectangular coordinate system using the above equation.
이상에서 알 수 있는 바와 같이 지구상에서 정확한 3차원적인 위치를 특정하기 위해서는 (측지) 위도와 경도에 더하여 그 지점에서의 타원체고 h가 주어져야 한다. 그런데 스마트폰에서 주어지는 GPS 좌표는 측지 위도와 경도와 해발 고도(海拔高度, height above sea level)이다. 해발 고도는 지오이드(geoid)를 기준으로 측정한 높이이며, 지오이드는 평균 해수면의 높이를 육지까지 확장했을 때 얻어지는 가상의 폐곡면(閉曲面, closed surface)이다. 지오이드의 정확한 형상은 구나 회전타원체가 아니다. 회전타원체에 가깝지만 지하나 지상의 물질의 양과 밀도의 차이로 인하여 울퉁불퉁한 폐곡면으로 주어지며, 지오이드의 전체 형상을 수학적 함수로 기술하기는 사실상 불가능하다.As can be seen from the foregoing, in order to specify an accurate three-dimensional position on the earth, in addition to (geodetic) latitude and longitude, the height h of the ellipsoid at that point must be given. However, the GPS coordinates given by the smartphone are geodetic latitude, longitude, and height above sea level. Altitude above sea level is the height measured based on the geoid, and the geoid is a virtual closed surface obtained when the height of average sea level is extended to land. The exact shape of the geoid is neither a sphere nor a spheroid. Although it is close to a spheroid, it is given as a rugged closed surface due to the difference in the amount and density of materials underground or on the ground, and it is virtually impossible to describe the entire shape of the geoid as a mathematical function.
스마트폰에서 GPS 좌표를 보면 (측지) 위도와 경도 및 해발 고도를 알 수 있지만, 그 지점에서의 지오이드의 높이를 알지 못하면 지구상에서의 정확한 3차원적인 위치를 알 수 없다. 그러나 측량, 토목 공사, 건축, 또는 군사 작전 등 정확한 지구의 형상이나 현재 위치, 또는 두 지점 간의 거리 등이 필요한 경우가 아니라면 실제로 지구타원체 상에서 어느 높이에 있는지는 굳이 알 필요가 없을 것이다.Viewing GPS coordinates on a smartphone gives you (geodetic) latitude, longitude, and altitude above sea level, but without knowing the height of the geoid at that point, you cannot determine your exact three-dimensional location on Earth. However, unless you need the exact shape of the Earth, your current location, or the distance between two points, such as surveying, civil engineering, construction, or military operations, you probably don't need to know what height you are actually on the Earth's ellipsoid.
도 11은 [특 1] 내지 [특 2]의 종래 발명에서 사용되는 북향거리와 동향거리의 개념을 설명하기 위한 도면이다. 도 11에서 중심이 지구의 질량 중심에 위치하는 구를 가정하며, 이 구면 모델 지구(spherical model Earth)의 반경은 R이다. R 값은 적도에서의 지구의 반경인 6,378,137m를 사용한다.11 is a diagram for explaining the concepts of northbound distance and eastbound distance used in the conventional inventions of [Special 1] to [Special 2]. In FIG. 11, a sphere whose center is located at the center of mass of the Earth is assumed, and the radius of this spherical model Earth is R. The R value uses 6,378,137 m, the Earth's radius at the equator.
세계 좌표계(World coordinate system), 즉 지구 중심 지구 고정 3차원 직각 좌표계(Earth-Centered Earth-Fixed three-dimensional Cartesian coordinate system)의 원점 C는 지구의 질량 중심에 위치하며, Z-축은 지구의 자전축과 일치한다. 또, 적도(Lo)와 본초자오선(PM)이 만나는 교점(intersection point)을 경위선의 원점(latitude-longitude origin) O라고 지칭한다. 그러면 X-축은 원점(C)에서 경위선의 원점을 지나는 직선이며, Y-축의 방향은 오른손 좌표계(RHS: Right-Handed coordinate System)의 원리에 의하여 자동적으로 결정된다.The origin C of the World coordinate system, or Earth-Centered Earth-Fixed three-dimensional Cartesian coordinate system, is located at the Earth's center of mass, and the Z-axis coincides with the Earth's axis of rotation. . In addition, the intersection point where the equator (L o ) and the prime meridian (PM) meet is referred to as the latitude-longitude origin O. Then, the X-axis is a straight line passing through the origin of the graticule at the origin (C), and the direction of the Y-axis is automatically determined by the principle of Right-Handed coordinate system (RHS).
이때 측지 위도 φ와 경도 λ와 타원체고 h를 가지는 한 점의 북향거리 N과 동향거리 E는 다음과 같이 측정한다. 먼저, 측지 위도 φ와 경도 λ와 타원체고 h를 가지는 한 점을 지심 위도 φ와 경도 λ와 지심 고도 h를 가지는 점 P로 대체한다. 그리고 세계 좌표계의 원점 C에서 점 P에 이르는 선분이 구와 만나는 점을 구점(sphere point) S(φ, λ)이라고 지칭하고, 지심 위도 φ를 가지는 위선(緯線, parallels, parallels of latitude, lines of latitude) Lφ과 반대자오선(AM)이 만나는 점 w를 경로점(經路點, waypoint)이라고 지칭한다. 그러면 북향거리(N)는 남극점(SP)에서 경로점(w)까지 반대자오선(AM)을 따라서 측정한 호(弧, arc)의 길이로 정의하고, 동향거리(E)는 경로점(w)에서 지심 위도 φ와 경도 λ를 가지는 구점 S(φ, λ)까지 위선(Lφ)을 따라서 측정한 호의 길이로 정의한다.At this time, the northward distance N and eastward distance E of a point having geodetic latitude φ, longitude λ, and ellipsoidal height h are measured as follows. First, a point with geodetic latitude φ, longitude λ, and ellipsoidal height h is replaced by a point P with geocentric latitude φ, longitude λ, and geocentric altitude h. In addition, the point where the line segment from the origin C of the world coordinate system to the point P intersects the sphere is called the sphere point S(φ, λ), and the latitude line with the geocentric latitude φ is called ) The point w where L φ and the antimeridian (AM) intersect is called a waypoint. Then, the northward distance (N) is defined as the length of an arc measured along the antimeridian (AM) from the South Pole (SP) to the path point (w), and the eastward distance (E) is defined as the path point (w) It is defined as the length of an arc measured along the line of latitude (L φ ) from , to the ball point S(φ, λ) with the geocentric latitude φ and longitude λ.
이와 같은 정의에 의하면 북향거리는 측지 위도 φ의 함수로 수학식 9와 같이 주어지고, 동향거리는 측지 위도 φ와 경도 λ의 함수로 수학식 10과 같이 주어진다.According to this definition, the northbound distance is given as Equation 9 as a function of geodetic latitude φ, and the eastbound distance is given as
또한, 역으로 북향거리와 동향거리에서 측지 위도와 경도를 얻는 공식은 수학식 11 내지 12와 같이 주어진다.Inversely, formulas for obtaining geodetic latitude and longitude from northward and eastward distances are given as
이와 같은 좌표계를 사용하면 지구상의 모든 지점에서 북향거리와 동향거리가 유한한 양의 값을 가진다. 이 좌표계는 도 11에 예시한 바와 같이 모든 거리를 남극점으로부터 측정하며, 정해진 경로를 따라서 측정해야 한다. 이 좌표계의 가장 큰 장점은 일상생활에서 사용하기에 충분한 정도의 정밀도를 가지는 거리의 단위로 지구상의 임의의 위치를 특정할 수 있다는 점이다.Using this coordinate system, the distances north and east from any point on the earth have finite positive values. As illustrated in FIG. 11, this coordinate system measures all distances from the South Pole and must be measured along a defined path. The greatest advantage of this coordinate system is that it is possible to specify an arbitrary location on the earth with a unit of distance that has a degree of precision sufficient for everyday use.
도 12는 [특 1] 내지 [특 2]의 종래 발명에서 사용하는 층(層, floor, story, level) 모델을 이해하기 위한 개념도이다. 단순한 수학적 모델과 일관된 개념으로 지구 전체를 묘사하기 위해서는 지면층(地面層, ground floor)을 0층이라고 부르는 것이 바람직하다. 또한, 지표면이나 호수의 수면, 바다 한가운데에서의 해수면도 모두 0층으로 간주한다. 여기서 0층은 사람이 자연 상태에서 발을 딛고 돌아다닐 수 있는 지표면 및 이 지표면과 연속적으로 이어지는 건물의 층을 말한다. 따라서 갑돌이가 강변도로를 따라서 조깅을 하거나, 호수에서 수영을 하거나, 마음에 드는 가게를 발견하여 인도에서 가게 안으로 들어갔더라도 모두 0층에 있는 것이 된다. 또, 백두산이나 에베레스트산에 등정하여 산 정상에서 만세를 부르고 있을 때에도 역시 0층에 있는 것이다. 즉, 0층은 타원체고나 해발 고도와는 아무런 상관이 없다. 한편, 우리가 2층이라고 부르는 층은 +1층이고, 3층은 +2층이다. 또한, 지하 1층은 -1층이고, 지하 2층은 -2층이다.12 is a conceptual diagram for understanding the layer (層, floor, story, level) model used in the conventional invention of [Special 1] to [Special 2]. In order to describe the entire earth with a concept consistent with a simple mathematical model, it is preferable to call the
[특 1] 내지 [특 2]의 종래 발명에서는 지심 고도나 타원체고나 해발 고도를 모두 무시하고, 대신에 층을 나타내는 정수 F를 사용한다. 또한, 수평적인 공간에서의 위치는 북향거리 N과 동향거리 E를 사용한다. 그리고 층을 나타내는 정수 F는 선택적으로 사용한다. 즉, 한 지점의 위치를 (N, E, F)라고 특정했다면, 이는 북향거리 N, 동향거리 E인 건물의 F층을 의미한다. 실제로는 어떤 건물의 F층에서 측지 위도와 경도가 북향거리 N과 동향거리 E에 해당하는 특정 지점을 나타낸다. 한편, (N, E)라고만 적는다면 이는 (N, E, 0)를 의미한다. 즉, 실외를 의미할 수도 있고, 다층 건물의 1층을 의미할 수도 있다. 이와 같이 층이라는 개념을 건물 내에서 실외로까지 논리적으로 확장하여 통합적으로 실내·외의 위치를 특정할 수 있다.In the conventional inventions of [Special 1] to [Special 2], the ground core height, the ellipsoidal height, and the height above sea level are all ignored, and the integer F representing the floor is used instead. In addition, the northward distance N and the eastward distance E are used for the location in a horizontal space. And the integer F representing the layer is optionally used. In other words, if the location of a point is specified as (N, E, F), this means the F floor of a building with north-facing street N and east-facing street E. In practice, the geodetic latitude and longitude on floor F of a building denotes a particular point corresponding to a distance N north and a distance E east. On the other hand, if you only write (N, E), it means (N, E, 0). That is, it may mean outdoors or may mean the first floor of a multi-story building. In this way, the concept of a floor can be logically extended from the inside of a building to the outside to specify the indoor/outdoor locations integrally.
이 모델은 다층 건물이 대부분인 대도시에서 배달 음식을 시키거나 우편물을 배달하거나 다른 사람과 만날 약속을 하거나, 또는 인터넷에서 찾은 맛집을 찾아가는 등 다양한 목적에서 사용할 수 있다.This model can be used for a variety of purposes, such as ordering food to be delivered, delivering mail, making an appointment with someone, or visiting a restaurant found on the Internet in a large city with many multi-story buildings.
[특 3]에는 이와 같은 좌표계를 사용하는 지도 기반의 온라인 플랫폼(online platform)이 개시되어 있다. 도 13은 웹앱(web app)의 형식으로 실내 지도를 서비스하는 종래 발명의 디지털 지도 시스템(digital map system)의 구성을 보여주는 개념도이다. 스마트폰(smartphone)이나 데스크톱 컴퓨터(desktop computer) 사용자, 혹은 배달 로봇(delivery robot) 등이 인터넷(Internet)을 통하여 웹 서버(web server)에 접속하면, 구글 크롬(Google Chrome)이나 마이크로소프트 에지(Microsoft Edge)와 같은 웹 브라우저(web browser)를 사용하여 디지털 지도(digital map)를 이용할 수 있다. 디지털 지도가 웹앱(web app)으로 작동하므로 웹 서버(web server)와 앱 서버(app server)는 사실상 동일하다. 따라서 웹 서버라는 용어와 앱 서버라는 용어를 모두 사용할 수 있다.[Special 3] discloses a map-based online platform using such a coordinate system. 13 is a conceptual diagram showing the configuration of a digital map system of the related art that provides indoor map service in the form of a web app. When a smartphone or desktop computer user or a delivery robot accesses a web server through the Internet, Google Chrome or Microsoft Edge ( You can use a digital map using a web browser such as Microsoft Edge. Since the digital map works as a web app, the web server and app server are effectively the same. Therefore, both the terms web server and app server can be used.
디지털 지도 서비스를 원하는 사용자는 컴퓨터나 스마트폰을 이용하여 직접 웹 서버(web server)에 접속하게 되며, 웹 서버는 실외 지도 서버(outdoor map server)와 건물 데이터베이스(building database)와 건물 데이터 저장소(building data store)에 연결되어 있다. 이들이 통합하여 디지털 지도 시스템의 하드웨어(hardware)를 구성한다고 할 수 있다.A user who wants a digital map service directly accesses a web server using a computer or smartphone, and the web server includes an outdoor map server, a building database, and a building data store. data store). It can be said that they are integrated to form the hardware of the digital map system.
실외 지도 서버(outdoor map server)는 웹 서버에 맵 타일(map tile)을 제공하여 실외 지도를 그리도록 하는 서버이다. 예를 들어 타일 서비스를 제공하는 오픈 스트리트 맵(www.openstreetmap.org)의 서비스 서버를 실외 지도 서버라고 간주할 수 있다.An outdoor map server is a server that provides map tiles to a web server to draw an outdoor map. For example, a service server of Open Street Map (www.openstreetmap.org) providing tile service may be regarded as an outdoor map server.
건물 데이터베이스는 건물의 이름, 주소, 홈페이지, 지리적인 위치, 건물의 외곽선 도면(building outline drawing) 파일이나 평면도 파일이 저장된 위치 등 건물과 관련된 정보를 조회할 수 있는 데이터베이스이다.The building database is a database capable of searching for information related to a building, such as a building name, address, homepage, geographical location, and a location where a building outline drawing file or floor plan file is stored.
건물 데이터 저장소(building data store)는 건물의 외곽선 도면(building outline drawing)과 층별 평면도(floorplan per level)를 포함하는 실내 지도 파일(indoor map file)이 벡터 데이터(vector data)로 저장되어 있는 곳이다. 건물 데이터 저장소는 인터넷에 연결된 NAS(Network Attached Storage)라고 생각할 수 있으며, 사용자와 콘텐츠가 늘어남에 따라 한 개 이상의 장치 혹은 서버가 될 수 있다. 그리고 웹 서버는 건물 데이터 저장소에서 실내 지도 파일을 가져와서 실외 지도상의 올바른 위치에 중첩하여 그린다.The building data store is where vector data is stored as indoor map files, including building outline drawings and floorplans per level. . Building data storage can be thought of as Network Attached Storage (NAS) connected to the Internet, and as users and content grow, it can be one or more devices or servers. And the web server fetches the indoor map file from the building data storage and draws it overlaid on the correct location on the outdoor map.
기존의 방식에서는 PC에서는 웹앱으로, 스마트폰에서는 네이티브 앱(native application)으로 각각 지도 앱을 이용할 수 있었다. 이를 위해서 PC용으로는 HTML5/CSS3/JavaScript를 이용하여 디지털 지도의 웹 사이트(web site)를 만들고, 안드로이드폰에서는 Kotlin으로 네이티브 앱을 만들며, 아이폰(iPhone)에서는 Swift를 이용하여 네이티브 앱을 만든다. Kotlin은 자바(Java)와 유사하며, Swift는 C++과 유사하다. 결국, JavaScript, Kotlin, Swift라는 독립된 3개의 언어로 앱을 작성하여야 하며, 이 앱을 유지·보수하는 데에도 3배의 노력이 필요하다.In the conventional method, the map app could be used as a web app on a PC and as a native application on a smartphone. To this end, a web site for digital maps is created using HTML5/CSS3/JavaScript for PC, a native app is created with Kotlin for Android phones, and a native app is created for iPhone using Swift. Kotlin is similar to Java, and Swift is similar to C++. In the end, the app must be written in three independent languages: JavaScript, Kotlin, and Swift, and three times the effort is required to maintain and maintain the app.
웹앱의 최대의 장점은 하나의 소스(source)로 PC와 스마트폰에 모두 대응할 수 있으며, 따로따로 앱을 작성·유지·보수할 필요가 없다는 점이다. 이와 같은 일이 가능한 이유는 웹 브라우저(web browser)가 이용할 수 있는 자바스크립트(JavaScript)라는 훌륭한 프로그래밍 언어(programming language)가 존재하기 때문이다. 즉, PC와 스마트폰에 걸쳐서 존재하는 공통의 플랫폼(platform)이 존재한다.The biggest advantage of the web app is that it can respond to both PC and smartphone with a single source, and there is no need to write, maintain, and maintain a separate app. The reason this is possible is because there is a great programming language available for web browsers called JavaScript. That is, there is a common platform that exists across PCs and smartphones.
과거에는 플로피 디스크(floppy disk)나 USB(Universal Serial Bus) 디스크에 담긴 프로그램을 PC에 설치해서 사용하던 소프트웨어를 지금은 웹에 접속해서 사용하고, 이용료를 지불하는 방식으로 사용할 수 있게 된 것이 이러한 이유 때문이다. 웹 기술의 눈부신 발달로 인하여 마이크로소프트 워드(Microsoft Word)나 오토캐드(AutoCAD)와 같은 전문적인 프로그램도 웹앱으로 만들 수 있다.This is the reason why software, which used to be used by installing programs contained in floppy disks or USB (Universal Serial Bus) disks on PCs in the past, can now be used by accessing the web and paying a fee. Because. Due to the remarkable development of web technology, even professional programs such as Microsoft Word or AutoCAD can be made into web apps.
반면 웹앱의 가장 큰 단점은 매번 해당 웹사이트에 접속하여야 한다는 점이다. 예를 들어 웹앱으로 작성된 마이크로소프트 워드(MicroSoft Word)를 이용하려고 하면, 일단 PC나 스마트폰이 인터넷에 연결되어 있어야 하고, 워드 작업을 하기 위해서 매번 웹사이트를 방문하여야 한다. 웹사이트에 방문하면 클라이언트(client), 즉 웹 브라우저가 호스트(host), 즉 해당 웹서버에 접속하여 필요한 파일들을 가져와서 웹페이지를 만들어서 보여준다.On the other hand, the biggest drawback of web apps is that you have to access the website every time. For example, if you want to use Microsoft Word written as a web app, your PC or smartphone must be connected to the Internet, and you must visit the website every time to work on the word. When a website is visited, a client, that is, a web browser, connects to a host, that is, a corresponding web server, fetches necessary files, and creates and displays a web page.
이와 같은 단점은 프로그레시브 웹 앱(PWA, Progressive Web App)이라는 혁신적인 기술이 개발되면서 해결되었다. PWA는 설치가 가능한 웹앱이라고 할 수 있다. 웹앱이 PWA가 되기 위해서는 몇 개의 조건을 만족하여야 한다. 우선 http가 아니라 https 프로토콜(protocol)을 사용하여야 하고, 서비스 워커(service work)라는 자바스크립트 파일을 가져야 한다. 또 매니페스트 파일(manifest file)과 컴퓨터나 스마트폰의 바탕 화면에 보여줄 아이콘(icon)도 있어야 한다.This shortcoming was addressed with the development of a revolutionary technology called Progressive Web App (PWA). A PWA is an installable web app. In order for a web app to become a PWA, several conditions must be satisfied. First of all, you must use https protocol, not http, and have a JavaScript file called service work. You also need a manifest file and an icon to be displayed on the desktop of your computer or smartphone.
스마트폰에서 크롬(Chrome)이나 에지(Edge)로 프로그레시브 웹 앱의 주소에 접속하면 PWA가 실행되면서 '설치' 버튼이 나타난다. 이 버튼을 클릭(click)하면 PWA가 스마트폰에 설치되고, 바탕 화면에 아이콘(icon)도 나타난다. PWA가 설치되면서 필요한 파일들도 스마트폰에 반영구적으로 저장된다. 따라서 다음번에 접속할 때는 동일한 파일을 다시 가져오지 않아도 된다. 만약 새로운 페이지에 접속하거나, 소프트웨어가 업데이트된 부분이 있다면 그 부분만 새로 가져오게 된다. 따라서 PWA의 등장으로 인하여 웹앱의 가장 큰 단점이 제거되었다고 할 수 있다.If you access the address of the Progressive Web App on your smartphone with Chrome or Edge, the PWA will run and the 'Install' button will appear. If you click this button, the PWA is installed on your smartphone and an icon appears on the desktop. When the PWA is installed, necessary files are also saved semi-permanently on the smartphone. So the next time you connect, you don't have to import the same file again. If you access a new page, or if there is an updated part of the software, only that part is newly imported. Therefore, it can be said that the biggest drawback of web apps has been removed with the advent of PWA.
이미 살펴본 바와 같이 구글 지도에서는 여러 층으로 구성된 대형 건물에 대하여 실내 지도(indoor map)를 제공한다. 지도의 줌(zoom)이 사전에 설정된 값 이상이 되면 실내 지도 서비스를 제공하는 대형 건물의 기본층(default floor)의 평면도(floor plan)가 보이며, 그 건물을 클릭(click)하면 그 건물의 다른 층을 선택할 수 있는 메뉴가 지도 화면의 한쪽에 보인다. 그 메뉴에서 다른 층을 선택하면 기본층의 평면도가 해당층의 평면도로 교체되어 보여진다.As we have already seen, Google Maps provides indoor maps for large multi-story buildings. When the zoom of the map exceeds the preset value, the floor plan of the default floor of a large building providing indoor map service is displayed. A menu for selecting a floor appears on one side of the map screen. If you select a different floor from the menu, the floor plan of the base floor is replaced with the floor plan of the corresponding floor.
이와 같은 방식은 직관적으로 타당하게 보이지만, 실제로는 모두가 의자에 앉아서 컴퓨터 모니터를 통하여 지도를 보던 시절에 더 적합한 방식이다. 모두가 스마트폰이 있고, 또 무인 자동차와 무인 배달 로봇이 점점 현실화되어 가는 현재에는 가장 좋은 방식이라고 할 수 없다.While this seems intuitively reasonable, it's actually more appropriate in an era when everyone sat in a chair and looked at maps on computer monitors. It's not the best way now, when everyone has a smartphone and self-driving cars and unmanned delivery robots are increasingly becoming a reality.
스마트폰을 가지고 디지털 지도를 실행하면 스마트폰의 위치가 GPS 신호로부터 계산되어 지도상에 표시된다. 즉, 스마트폰에서 지도를 실행하면 지도에 나의 현재 위치가 표시되도록 할 수 있고, 또 나의 위치가 항상 지도의 중심에 오도록 지도를 자동으로 패닝(panning)이 되도록 프로그램을 할 수도 있다. 그러므로 스마트폰의 주인이 어떤 건물의 내부로 들어갔다면 굳이 마우스 클릭(click)이나 화면 터치(touch)를 하지 않더라도 층을 선택할 수 있는 메뉴를 보여줄 수 있을 것이다. 즉, 현재 위치가 층을 선택할 수 있는 다층 건물의 내부라면 굳이 클릭이나 터치를 하지 않더라도 층을 선택할 수 있는 메뉴를 보여주는 것이 편리할 것이다.When you run a digital map with your smartphone, the location of your smartphone is calculated from GPS signals and displayed on the map. That is, if you run the map on your smartphone, you can display your current location on the map, and you can program the map to pan automatically so that your location is always in the center of the map. Therefore, if the owner of the smartphone enters the inside of a building, a menu for selecting a floor can be displayed without clicking the mouse or touching the screen. That is, if the current location is inside a multi-story building where a floor can be selected, it would be convenient to display a menu for selecting a floor without clicking or touching.
이 방법에서 스마트폰의 주인이 지면층(ground floor)에 계속 머무른다면 층 선택 메뉴를 무시하면 되고, 계단이나 엘리베이터를 이용하여 다른 층으로 이동하려는 참이라면 층 선택 메뉴를 통하여 해당 층의 평면도를 미리 확인하면 편리할 것이다. 또한, 데스크탑 컴퓨터나 노트북의 경우에도 지도 화면의 중심을 나의 위치라고 가정하고, 지도 화면을 패닝(panning)하여 지도의 중심이 실내 지도를 제공하는 건물의 내부에 위치한다면 자동으로 층 선택 메뉴를 보여줄 수 있다. 또한, 층을 식별할 수 있는 다양한 기술들과 결합하면, 층이 바뀌면 자동으로 평면도도 교체되어 보이도록 할 수도 있을 것이다.In this method, if the owner of the smartphone continues to stay on the ground floor, he can ignore the floor selection menu, and if he intends to move to another floor using the stairs or elevator, the floor plan of the corresponding floor is displayed in advance through the floor selection menu. It will be convenient to check. In addition, in the case of a desktop computer or laptop, assuming that the center of the map screen is your location, and panning the map screen, if the center of the map is located inside a building that provides indoor maps, a floor selection menu will be automatically displayed. can In addition, when combined with various technologies that can identify floors, it will be possible to automatically change the view of the floor plan when the floor is changed.
도 14는 OpenLayers 문법으로 작성된 자바스크립트 코드(JavaScript code)의 일부로서, [특 3]의 종래 발명의 실시예에서 레이어의 구성을 보여준다. 레이어는 baseLayer, BBoxLayer, buildingLayer, bldLabelLayer, floorLayer, spaceLabelLayer, markerLayer로 구성된다. 레이어는 먼저 선언하는 레이어가 먼저 그려지므로 baseLayer가 가장 밑에 있고, markerLayer가 가장 위에 있다. baseLayer는 OpenStreetMap에서 그림 파일들로 지도의 타일(tile)들을 받아서 실외 지도를 그리는 레이어이다. baseLayer는 래스터 레이어(raster layer)이고, 나머지는 모두 벡터 레이어(vector layer)이다.14 is a part of JavaScript code written in OpenLayers grammar, and shows the configuration of layers in the embodiment of the conventional invention of [Special 3]. Layers are composed of baseLayer, BBoxLayer, buildingLayer, bldLabelLayer, floorLayer, spaceLabelLayer, and markerLayer. Layers that are declared first are drawn first, so baseLayer is at the bottom and markerLayer is at the top. baseLayer is a layer that receives map tiles from OpenStreetMap as picture files and draws an outdoor map. The baseLayer is a raster layer, and all others are vector layers.
markerLayer는 사용자의 편의를 위하여 뷰(view)의 중심에 십자선(cross)을 그리기 위한 레이어이다. baseLayer와 markerLayer를 제외한 나머지 레이어들이 구조 레이어 그룹(structure layer group)을 형성한다. 이 중에서 buildingLayer는 건물의 외곽선 도면(building outline drawing)을 그리기 위한 레이어이고, floorLayer는 건물의 층별 평면도(floor plan per level) 중 어느 한 층의 평면도를 그리기 위한 레이어이다. BBoxLayer는 참고용으로 건물을 그 안에 포함하는 최소 경계 상자(bounding box)를 그리기 위한 레이어이고, bldLabelLayer는 건물의 이름이나 홈페이지 주소 등 건물과 관련된 핵심 정보를 나타내기 위한 레이어이다. 그리고 spaceLabelLayer는 층별 평면도에 보이는 개별 공간들(spaces)의 상호 등을 보여주기 위한 레이어이다.A markerLayer is a layer for drawing a cross at the center of a view for the convenience of the user. The remaining layers except baseLayer and markerLayer form a structure layer group. Among them, buildingLayer is a layer for drawing a building outline drawing, and floorLayer is a layer for drawing a plan view of any one floor among floor plans per level of a building. BBoxLayer is a layer for drawing a minimum bounding box containing a building for reference, and bldLabelLayer is a layer for displaying key information related to a building, such as the building's name or homepage address. And spaceLabelLayer is a layer for showing each other of individual spaces shown in the floor plan.
여기서 공간(space)이란 위치 속성과 면적(area)을 가지는 실내·외의 장소를 의미한다. 공간은 폐곡선(closed curve) 또는 단순하게 다각형(polygon)으로 주어지는 경계(boundary)를 가진다. 가장 대표적인 예로는 방(room)을 생각할 수 있다. 방에는 벽과 문과 천정이 있어서 그 방의 중심의 경도와 위도 및 그 방이 위치한 층수(floor number)를 특정할 수 있다. 또한, 그 방의 면적은 m2의 단위로 특정할 수 있다. 그런데 거실은 벽이나 문으로 막혀 있지 않은 부분이 있지만, 누구나 어디서부터 어디까지가 거실이라고 특정할 수 있다. 이와 같은 거실도 종래 발명에서는 공간이라고 특정한다.Here, space means an indoor/outdoor place that has a location property and an area. Spaces have boundaries given by closed curves or simply polygons. A typical example is a room. A room has walls, a door, and a ceiling, so you can specify the longitude and latitude of the center of the room and the floor number on which the room is located. In addition, the area of the room can be specified in units of m 2 . However, there are parts of the living room that are not blocked by walls or doors, but anyone can specify where and how far the living room is. Such a living room is also specified as a space in the prior art.
도 14는 하나의 예시에 불과하지만, 가장 먼저 실외 지도를 표시하는 지도 레이어 그룹(map layer group)이 있고, 그 위에 벡터 레이어(vector layer)로 건물의 외곽선 도면이나 평면도를 보여주기 위한 구조 레이어 그룹이 있다는 점이 중요하다. 도 14에서 지도 레이어 그룹은 단 하나의 레이어(즉, baseLayer)만 있는 레이어 그룹이지만, 일반적인 지도와 위성 지도를 함께 사용하는 예에서는 지도 레이어도 복수의 레이어를 갖게 된다. 또, 구조 레이어 그룹은 여러 개의 레이어로 구성될 수 있다. 이와 같이 여러 개의 레이어로 구성하는 이유는 구조적으로 프로그래밍을 하기 위해서이다.Although FIG. 14 is only an example, there is a map layer group that displays an outdoor map first, and a structure layer group for showing the outline drawing or floor plan of a building as a vector layer on top of it. It is important that there is In FIG. 14, the map layer group is a layer group having only one layer (ie, baseLayer), but in an example in which a general map and a satellite map are used together, the map layer also has a plurality of layers. Also, the structural layer group may be composed of several layers. The reason for configuring multiple layers like this is to do structural programming.
도 15는 [특 3]의 종래 발명의 실시예에서 디지털 지도의 메인 화면(main window)을 보여준다. 이 지도는 웹 메르카토르 투사 방식(Web Mercator projection)을 따르고 있다. 웹 메르카토르 도법은 Google이 2005년에 채택하여 현재는 대부분의 인터넷 지도 서비스 업체들이 채택하는 투사법이며, SRID(Spatial Reference Identifier)는 EPSG:900913 또는 EPSG:3857로 주어진다비특7. EPSG:3857의 정식 명칭은 WGS 84/Pseudo_Mercator이다. 웹 메르카토르 도법은 구면 메르카토르(spherical Mercator) 도법으로 지칭되기도 한다. 웹 메르카토르 도법에서는 경도는 -180°에서 +180°까지 포함되지만, 위도는 ±85.051129°의 범위만 포함된다.15 shows the main window of the digital map in the embodiment of the conventional invention of [Special 3]. This map follows the Web Mercator projection. Web Mercator projection was adopted by Google in 2005 and is now a projection method adopted by most Internet map service providers, and SRID (Spatial Reference Identifier) is given as EPSG:900913 or EPSG: 3857 . The official name of EPSG:3857 is WGS 84/Pseudo_Mercator. Webb Mercator projection is also referred to as spherical Mercator projection. In the Webb Mercator projection, longitudes range from -180° to +180°, but latitudes range only from ±85.051129°.
웹 메르카토르 도법에서의 동향거리(x)와 북향거리(y)는 측지 위도 φ와 경도 λ의 함수로 수학식 13 내지 14와 같이 주어진다.The eastward distance (x) and northward distance (y) in the Webb Mercator projection are given as
전술한 바와 같이 디지털 지도의 가장 핵심적인 요소는 뷰(view)이며, 사용자와의 상호 작용을 용이하게 하기 위하여 사이드 패널(side panel)이 있는 것이 바람직하다. 도 15에서 뷰는 직사각형의 형상을 하고 있으며, 뷰에 보이는 실외 지도의 범위를 뷰 범위(view extent)라고 부른다. 뷰 범위는 뷰 영역의 경도의 최소값과 최대값, (측지) 위도의 최소값과 최대값으로 나타내거나, 아니면 대등하게 웹 메르카토르 도법에서의 동향거리(x)의 최소값과 최대값, 북향거리(y)의 최소값과 최대값으로 나타낼 수 있다.As described above, the most essential element of a digital map is a view, and it is desirable to have a side panel to facilitate interaction with a user. 15, the view has a rectangular shape, and the range of the outdoor map visible in the view is called a view extent. The view range is indicated by the minimum and maximum values of the longitude of the view area, the minimum and maximum values of (geodetic) latitude, or equivalently, the minimum and maximum values of the eastward distance (x) and the northward distance (y) in the Web Mercator projection. can be expressed as the minimum and maximum values of
또, 뷰의 중심에는 십자(cross) 모양의 마커(marker)가 있으며, 이 뷰의 중심의 좌표가 측지 위도와 경도, 웹 메르카토르 도법에서의 동향거리(x)와 북향거리(y) 등으로 사이드 패널에 표시되고 있다. 웹 메르카토르 좌표는 위도 85° 이상에서는 사용할 수 없지만, 그 이하에서는 경위도와 상호 변환이 가능하다.In addition, there is a cross-shaped marker at the center of the view, and the coordinates of the center of this view are the geodetic latitude and longitude, and the eastward distance (x) and northward distance (y) in the Web Mercator projection. displayed on the panel. Webb Mercator coordinates cannot be used above latitude 85°, but are interchangeable with longitude and latitude below.
도 15에서 뷰의 중심에 OK 벤처타운(OK Venture Town)이 있다. 뷰의 중심이 이 건물 - 이하, 중앙의 건물(building at the view center)이라고 지칭함 - 의 건물 외곽선(builing outline) 안에 위치할 때, 좌측의 사이드 패널에는 이 건물의 이름이 표시되며, 이 건물이 다층 건물이므로 층을 선택할 수 있는 층 선택 메뉴(floor selector)가 나타난다.In FIG. 15, OK Venture Town is located at the center of the view. When the center of the view is located within the building outline of this building (hereafter referred to as the building at the view center), the name of this building is displayed on the left side panel. Since it is a multi-story building, a floor selector appears where you can select a floor.
도 15에는 또한 건물의 외곽선을 그 안에 포함하는 최소 경계 상자(bounding box)도 보이고 있다. 최소 경계 상자는 어떤 건물이 뷰에 보여야 할지 말지를 빠르게 판단할 때 사용된다. 최소 경계 상자의 좌표는 사전에 계산되어 건물 데이터베이스에 저장된다.Figure 15 also shows a minimal bounding box containing the outline of the building within it. The minimum bounding box is used to quickly determine which buildings should or shouldn't appear in the view. The coordinates of the minimum bounding box are calculated in advance and stored in the building database.
이와 같이 종래 발명의 실시예는 디지털 지도(digital map)의 뷰(view)에 실외 지도(outdoor map)와 건물(building)의 평면도(floorplan)를 포함하는 실내 지도(indoor map)를 통합적으로 표시하는 방법을 제공한다. 도 16은 종래 발명의 실시예에서 디지털 지도가 표시되는 전체 과정을 예시하는 순서도(flowchart)이다.In this way, the embodiment of the prior invention integrates an indoor map including an outdoor map and a floorplan of a building in a view of a digital map. provides a way 16 is a flowchart illustrating an entire process of displaying a digital map in an embodiment of the related art.
여기에는 실외 지도 서버(outdoor map server)를 유지하는 단계, 건물들의 외곽선 도면(building outline drawings)과 평면도(floorplans)를 건물별로 각각 개별 폴더(individual folder)들에 관리하는 데이터 저장소(data store)를 유지하는 단계, 건물들의 지도 설정 데이터(map setting data)를 관리하는 건물 데이터베이스(building database)를 유지하는 단계를 포함한다.This includes maintaining an outdoor map server, a data store that manages building outline drawings and floorplans in individual folders for each building. The maintaining step includes maintaining a building database for managing map setting data of buildings.
상기 건물 데이터베이스에 저장된 지도 설정 데이터는 각 건물의 건물고유식별번호(unique building identification number, primary ID), 즉 건물 아이디(building 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를 포함한다.The map setting data stored in the building database includes the unique building identification number (primary ID) of each building, that is, the building ID bldID, the full path to the individual folder, and the lowest floor. floor), the floor number of the highest floor (maxFloor), the building outline display zoom level (zoomShowBld, zoom level for showing building outline), and the floor plan display zoom level (zoomShowFloor, zoom level for showing floorplan) Includes a northing corresponding integer I and an easting corresponding integer J.
출원인의 사무실이 소재한 OK벤처타운의 도심(centroid)의 지리 좌표(geographic coordinate)는 측지 위도 36.32981409°와 경도 127.42671111°로 주어지며, 이로부터 수학식 9와 10을 사용하여 북향거리 N과 동향거리 E를 구해보면 각각 N = 14062970.577m와 E = 27570402.871m로 주어진다. 따라서 북향거리 N을 반올림한 북향거리 대응 정수(northing corresponding integer) I와 동향거리 대응 정수(easting corresponding integer) J는 각각 14062971과 27570403으로 주어진다. 이로부터 OK벤처타운의 건물 외곽선 파일(Bld.geojson)과 평면도 파일(G.geojson, F1.geojson, F2.geojson)을 저장하는 폴더의 이름을 계산하면 N14062971E27570403으로 주어진다. 따라서 3층 건물인 OK벤처타운의 건물 파일은 다음과 같은 구조로 저장된다.The geographic coordinates of the centroid of OK Venture Town, where the applicant's office is located, are given as geodetic latitude 36.32981409° and longitude 127.42671111°. is given as N = 14062970.577m and E = 27570402.871m respectively. Thus, the northing corresponding integer I and the easting corresponding integer J, rounded off of the northing distance N, are given as 14062971 and 27570403, respectively. From this, if you calculate the name of the folder that stores OK Venture Town's building outline file (Bld.geojson) and floor plan files (G.geojson, F1.geojson, F2.geojson), it is given as N14062971E27570403. Therefore, the building file of OK Venture Town, which is a three-story building, is stored in the following structure.
우선 데이터 저장소(data store)의 URL(Uniform Resource Locator)은 https://www.buildings.land이다. 이 안에 각각의 건물은 각자의 폴더를 가지고 있으며, OK벤처타운과 관련된 파일은 N14062971E27570403이라는 폴더 안에 존재한다. 3층 건물인 OK벤처타운은 1층, 2층, 3층의 평면도 파일과 건물 외곽선 파일을 더하여 총 4개의 파일이 저장되어 있다. 이와 같은 파일 구조에서 도 16 내지 도 17에 도시한 알고리즘을 사용하여 효과적으로 실외 지도 위에 실내 지도를 표시할 수 있다.First, the URL (Uniform Resource Locator) of the data store is https://www.buildings.land. In this, each building has its own folder, and the files related to OK Venture Town exist in a folder called N14062971E27570403. OK Venture Town, a 3-story building, has a total of 4 files stored including the floor plan files of the 1st, 2nd and 3rd floors and the building outline file. In such a file structure, an indoor map can be effectively displayed on top of an outdoor map using the algorithms shown in FIGS. 16 and 17 .
북향거리 대응 정수와 동향거리 대응 정수는 각각 북향거리와 동향거리를 반올림하여 얻어지는 정수(integer)이다. 그런데 남극점을 제외한 지구상의 임의의 위치에서 북향거리와 동향거리가 양(+)의 실수로 주어지므로, 북향거리 대응 정수와 동향거리 대응 정수는 실제로는 자연수(natural number)로 주어진다.The northbound distance correspondence integer and the eastbound distance correspondence integer are integers obtained by rounding up the northbound distance and the eastbound distance, respectively. However, since the distance to the north and the distance to the east are given as positive real numbers at any location on the earth except for the South Pole, the integer corresponding to the distance to the north and the distance to the east are actually given as natural numbers.
사용자가 디지털 지도를 시작하면 초기 설정 값(initial map setting)으로 뷰에 실외 지도를 보여주는 단계와, 사용자의 줌(zoom), 팬(pan), 회전(rotate) 선택에 맞게 뷰를 갱신하는 단계를 포함한다. 뷰를 갱신하면 실외 지도가 갱신될 뿐만 아니라 그 안에 포함된 건물의 외곽선이나 평면도도 마찬가지로 줌, 팬, 회전된 상태로 보여진다.When the user starts the digital map, the steps of displaying the outdoor map in the view with the initial map settings and updating the view according to the user's zoom, pan, and rotate selections are performed. include Renewing the view not only updates the outdoor map, but also zooms, pans, and rotates the outlines and floor plans of the buildings included in it.
디지털 맵의 사전 설정 데이터(preset data)에는 건물의 평면도를 표시하는 절대적인 줌 설정 값(preset zoom threshold value) zoomQueryingBuildingTable이 있다. 예를 들어 대한민국전도를 보고 있을 때 대한민국 내 건물들의 평면도를 모두 표시한다는 것은 가능하지도 필요하지도 않기 때문이다. 따라서 줌이 설정 값 이상으로 일부 건물에 대하여는 평면도를 보여줄 필요성이 있는 줌 레벨을 예를 들어 15로 설정할 수 있다. 이와 같이 디지털 지도의 줌이 사전에 설정한 값 이상이면 건물 데이터베이스를 검색하여 지리적 위치가 뷰 범위(view extent)에 포함되는 건물들의 목록(list), 즉 뷰 범위 건물 목록(view extent building list) bldIDsInExtent을 작성하는 단계를 포함한다.In the preset data of the digital map, there is an absolute zoom threshold value, zoomQueryingBuildingTable, which displays the floor plan of the building. For example, it is neither possible nor necessary to display the floor plans of all buildings in Korea when viewing the map of Korea. Therefore, a zoom level that needs to show a floor plan for some buildings with a zoom higher than a set value may be set to 15, for example. In this way, if the zoom of the digital map is greater than the pre-set value, the building database is searched and a list of buildings whose geographic location is included in the view extent, that is, the view extent building list bldIDsInExtent It includes the steps of writing
도 17은 뷰에 처음으로 평면도를 표시하는 평면도 표시 서브루틴을 예시하는 순서도이다. 뷰 범위 건물 목록에 있는 건물의 숫자가 0보다 크면 for 루프(for loop)와 같은 순환 루프가 시작되며, for 루프는 목록에 있는 첫 번째 건물부터 시작한다(i = 0). 이 첫 번째 건물은 bldIDsInExtent[0]이며, 마지막 건물은 bldIDsInExtent[bldIDsInExtent.length - 1]로 주어진다.17 is a flow chart illustrating a floor plan display subroutine for displaying a floor plan for the first time in a view. If the number of buildings in the view range building list is greater than 0, a recursive loop like the for loop starts, and the for loop starts with the first building in the list (i = 0). This first building is given as bldIDsInExtent[0], and the last building is given as bldIDsInExtent[bldIDsInExtent.length - 1].
여기서 뷰 범위 건물 목록(bldIDsInExtent)은 건물의 중심 좌표, 또는 건물의 전부나 일부가 뷰 안에 위치하고, 건물 데이터베이스에도 등록된 건물들의 목록이다. 그런데 어떤 건물은 너무 작아서 이 줌 레벨에서 표시하는 것이 부적절할 수 있다. 따라서 이 목록에 있는 건물들에 대하여 개별적으로 디지털 지도의 줌 레벨(zoom level)이 외곽선을 표시하는 줌 레벨(zoomShowBld)보다 큰 경우에만 건물 외곽선을 표시하게 된다. 또한, 뷰 범위 건물 목록에서 외곽선이 표시되어야 할 건물들의 목록 - 외곽선 표시 대상 건물 목록(bldIDsToShow)이라 지칭함 - 을 추출하여 관리한다.Here, the list of buildings in the view range (bldIDsInExtent) is the coordinates of the center of the building, or a list of buildings in which all or part of the building is located in the view and registered in the building database. However, some buildings may be too small to display at this zoom level. Therefore, for each building in this list, the building outline is displayed only when the zoom level of the digital map is greater than the zoom level (zoomShowBld) displaying the outline. In addition, a list of buildings to be displayed with outlines - referred to as a list of buildings to display outlines (bldIDsToShow) - is extracted and managed from the list of buildings in the view range.
이 건물, 즉 i번째 건물(ith building)이 외곽선 표시 대상 건물 목록에 있는 건물이면 이 건물의 외곽선 도면(building outline drawing)을 데이터 저장소(data store)에서 가져와서 건물 레이어(buildingLayer)에 추가한다. 이 외곽선 도면은 GeoJSON 형식으로 작성한다.If this building, that is, the ith building, is a building in the list of buildings to be outlined, the building outline drawing of this building is retrieved from the data store and added to the buildingLayer. . This outline drawing is created in GeoJSON format.
건물의 외곽선(outline)은 폐곡선(closed curve)이나 다각형(polygon)으로 주어져야 한다. 그런데 GeoJSON 형식에서는 곡선을 허용하지 않으므로 실제로는 다각형으로만 주어져야 한다. 외곽선이 다각형으로 주어지면 뷰의 중심(view center)이 다각형의 안에 있는지 바깥에 있는지 판단할 수 있다.The outline of the building should be given as a closed curve or polygon. However, the GeoJSON format does not allow curves, so in reality it should only be given as a polygon. If the outline is given as a polygon, it can be determined whether the view center is inside or outside the polygon.
그 점들의 좌표는 [동향거리, 북향거리], 또는 [경도, 위도]의 형식으로 주어진다. 자바스크립트에서 대괄호(square brackets) []는 배열을 의미한다. 따라서 이 외곽선 도면을 빌딩 레이어(buildingLayer)에 추가하면 자동적으로 올바른 위치에 추가된다.The coordinates of those points are given in the form [distance east, distance north] or [longitude, latitude]. In JavaScript, square brackets [] denote an array. So, when you add this outline drawing to the buildingLayer, it is automatically added to the correct location.
다음으로, 건물 외곽선 표시 대상 건물 목록(bldIDsToShow)에 있는 건물들에 대하여 디지털 지도의 줌 레벨이 건물의 이름 등을 포함하는 라벨(label)을 표시하는 줌 레벨(zoomShowLabel)보다 큰 경우에는 건물의 라벨을 건물 라벨 레이어(bldLabelLayer)에 추가한다.Next, if the zoom level of the digital map is greater than the zoom level (zoomShowLabel) displaying the label including the name of the building for the buildings in the building list (bldIDsToShow) to display the building outline, the label of the building to the building label layer (bldLabelLayer).
그 다음으로 다시 외곽선 표시 대상 건물 목록에 있는 건물들에 대하여 디지털 지도의 줌 레벨이 건물들의 평면도 표시 줌 레벨(zoomShowFloor, zoom level for showing floorplan)보다 큰지 조사하고, 디지털 지도의 줌 레벨이 평면도 표시 줌 레벨보다 큰 건물들에 대하여는 다시 지면층(ground floor)이 있는 건물인지 확인한다. 이는 그 건물의 최저층(minFloor)이 0보다 작거나 같고, 최고층(maxFloor)이 0보다 크거나 같은지를 조사하여 알 수 있다.Next, for the buildings in the list of buildings to be displayed as outlines, it is investigated whether the zoom level of the digital map is greater than the zoom level for showing floor plans (zoomShowFloor, zoom level for showing floorplan) of the buildings, and the zoom level of the digital map is the zoom level for showing floor plans. For buildings taller than the level, again check if the building has a ground floor. This can be found by examining whether the lowest floor (minFloor) of the building is less than or equal to 0 and the highest floor (maxFloor) is greater than or equal to 0.
다음으로, 이 두 가지 테스트를 모두 통과한 건물들의 목록 - 이하, 평면도 표시 대상 건물 목록(floorplanIDsToShow)이라 지칭함 - 을 작성하고, 이 목록에 있는 건물들에 대해서는 지면층의 평면도들을 데이터 저장소에서 가져와서 해당 건물들의 외곽선들에 부합되게 중첩하여 표시한다. 이 평면도들에 있는 점들의 위치도 모두 [동향거리, 북향거리], 또는 [경도, 위도]의 형식으로 주어지므로, 평면도 레이어(floorLayer)에 지면층의 평면도를 추가하면, 건물의 외곽선 도면과 지면층의 평면도가 모두 실외 지도상의 올바른 위치에 표시된다.Next, a list of buildings that have passed both of these tests - hereinafter referred to as a list of buildings subject to floor plan display (floorplanIDsToShow) - is created, and for the buildings in this list, floor plans of the ground floor are imported from the data store and It is overlapped and displayed in accordance with the outlines of the corresponding buildings. Since the locations of the points in these floor plans are all given in the form of [distance to the east, distance to the north] or [longitude, latitude], adding a floor plan to the floorLayer will create a drawing of the outline of the building and the ground. All floor plans are displayed in the correct location on the outdoor map.
지금까지 설명한 내용은 디지털 지도를 시작하여 건물의 평면도가 처음으로 보이기까지의 순서도라고 할 수 있다. 이후 줌, 팬, 회전 작용이 또 발생하여 새로운 평면도를 추가하거나, 기존의 평면도를 이동시키거나 또는 기존의 평면도 중 일부를 제거하는 것과 같은 지도 갱신(map update) 과정은 상기한 과정을 반복할 수도 있다. 즉, 이미 작성한 뷰 범위 건물 목록(bldIDsInExtent)과 외곽선 표시 대상 건물 목록(bldIDsToShow)과 평면도 표시 대상 건물 목록(floorplanIDsToShow)을 모두 0으로 초기화하고 뷰에 있는 모든 외곽선 도면과 평면도를 제거한 이후에, 뷰를 갱신하는 단계(update view)부터 다시 시작할 수도 있다.What has been described so far is a flow chart from the beginning of a digital map to the first view of a building's floor plan. A map update process may then repeat the above process, such as zooming, panning, or rotating operations to add a new floor plan, move an existing floor plan, or remove some of the existing floor plans. there is. That is, after initializing all the previously created view range building list (bldIDsInExtent), outline display target building list (bldIDsToShow), and floorplan display target building list (floorplanIDsToShow) to 0, and removing all outline drawings and floor plans in the view, open the view. You can also start over from the update view.
그런데 사용자 상호작용이 일어날 때마다 건물 외곽선 도면이나 평면도를 모두 제거하고 새로 그리는 작업은 대단히 비효율적이다. 따라서 뷰 범위 건물 목록(bldIDsInExtent)과 외곽선 표시 대상 건물 목록(bldIDsToShow) 이외에 추가로 외곽선 표시 건물 목록(bldIDsInView)을 유지하고 갱신하는 알고리즘을 사용하면 더 효과적이다. 즉, 뷰가 변화되면 뷰 범위 건물 목록(bldIDsInExtent)과 외곽선 표시 대상 건물 목록(bldIDsToShow)을 새로 작성한 이후에, 외곽선 표시 건물 목록(bldIDsInView)과 비교하여 기존의 건물의 외곽선 도면을 삭제하거나 갱신하는 단계 및 새로운 건물의 외곽선 도면을 추가하는 단계를 포함하며, 평면도와 관련해서도 마찬가지의 단계를 거치게 된다.However, it is very inefficient to remove all building outline drawings or floor plans and draw them again whenever user interaction occurs. Therefore, it is more effective to use an algorithm that maintains and updates the outline display building list (bldIDsInView) in addition to the view range building list (bldIDsInExtent) and outline display target building list (bldIDsToShow). That is, when the view is changed, after newly creating the view range building list (bldIDsInExtent) and the outline display target building list (bldIDsToShow), delete or update the outline drawing of the existing building by comparing it with the outline display building list (bldIDsInView). and adding an outline drawing of the new building, and the same steps are performed in relation to the floor plan.
이와 같은 기능을 수행하는 디지털 지도 시스템(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)을 실행하는, 매체에 저장된 컴퓨터 프로그램을 포함한다.A digital map system that performs this function includes an outdoor map server and data that manages building outline drawings and floor plans of buildings in individual folders for each building. A data store, a building database that manages map setting data of buildings, and outdoor maps and floorplans of buildings in views. A computer program stored on a medium that executes a series of stages to integrally display an indoor map containing
상기 일련의 단계들은 디지털 지도를 초기 설정 값(initial map setting)으로 시작하여 뷰에 실외 지도를 보여주는 단계와, 사용자의 줌(zoom), 팬(pan), 회전(rotate) 선택에 맞게 뷰를 갱신하는 단계와, 디지털 지도의 줌(map zoom)이 사전에 설정한 값(preset threshold zoom value) 이상이면 건물 데이터베이스를 검색하여 지리적 위치(geographic location)가 뷰 범위(view extent)에 포함되는 뷰 범위 건물 목록을 작성하는 단계와, 뷰 범위 건물 목록에 있는 건물들의 숫자가 0보다 크면 평면도 표시 서브루틴(floorplan display subroutine)과 층 선택 서브루틴(floor selection subroutine)을 실행하는 단계를 포함한다.The above sequence of steps includes starting the digital map with initial map settings, showing the outdoor map in the view, and updating the view according to the user's zoom, pan, and rotate selections. and, if the map zoom of the digital map is greater than or equal to a preset threshold zoom value, the building database is searched and the view range building whose geographic location is included in the view extent. Creating a list, and executing a floorplan display subroutine and a floor selection subroutine if the number of buildings in the view range building list is greater than zero.
한편, 도 18은 OK벤처타운 2층의 실측 평면도이다. 벽 두께가 전체 건물의 크기와 비교하여 비례에 맞게 표현되었으며, 출입문이나 창문도 그 크기나 종류를 알 수 있다. 이와 같이 자세한 평면도를 통하여 이 건물에 사무실을 임차하고자 할 경우에 필요한 많은 정보를 알 수 있다.On the other hand, Figure 18 is an actual plan view of the second floor of OK Venture Town. The wall thickness was expressed proportionally compared to the size of the entire building, and the size and type of doors and windows can also be known. This detailed floor plan provides a lot of information needed if you want to rent an office in this building.
반면에 도 6에 도시된 매디슨 스퀘어 가든의 실내 지도나 도 15에 도시된 OK 벤처타운의 실내 지도를 보면 출입문의 위치를 알기 어렵고, 창문도 표시되어 있지 않다. 따라서 매디슨 스퀘어 가든의 공실을 임차하려는 잠재적인 고객이 사업 계획을 세우는데 있어서 필요한 모든 정보를 알기 어렵다.On the other hand, looking at the indoor map of Madison Square Garden shown in FIG. 6 or the indoor map of OK Venture Town shown in FIG. Therefore, it is difficult for a potential client to rent a Madison Square Garden space to have all the information he or she needs to develop a business plan.
한편, 실내 지도와 관련된 선행 기술은 다음과 같다.On the other hand, the prior art related to the indoor map is as follows.
[특 4]에는 길안내 키오스크에 실측지도 및 인명정보 등을 효율적으로 연계하여 지도상에 목표지점까지의 경로 표시, 인명 정보, 건물 외관 동영상 등을 표시해줌으로써 정확하고 신속하게 길 안내를 할 수 있는 원스톱 길안내 정보시스템이 개시되어 있다.In [Special 4], route guidance to the target point, life information, and building exterior video are displayed on the map by efficiently linking the actual measurement map and life information to the road guidance kiosk, enabling accurate and prompt route guidance. A one-stop road guidance information system is disclosed.
[특 5]에는 전자 기기를 이용하여 실내의 도면에 좌표계를 설정하는 단계, 상기 실내의 각 분할 공간의 중심 좌표 정보 및 층간 또는 외부와의 출입을 위한 출입구의 입구 좌표 정보를 추출하는 단계, 상기 도면에 보행을 위한 실내 동선을 생성하는 단계, 상기 실내 동선을 따라 기설정된 간격의 관심점을 추출하는 단계 및 상기 관심점의 좌표 정보 및 속성 정보를 설정하는 단계를 포함하는 실내 전자지도 생성 방법이 개시되어 있다.[Special 5] includes the step of setting a coordinate system on an indoor drawing using an electronic device, the step of extracting the center coordinate information of each divided space in the room and the entrance coordinate information of the entrance for entering and exiting between floors or the outside; An indoor electronic map generation method comprising the steps of generating an indoor movement line for walking in a drawing, extracting points of interest at predetermined intervals along the indoor movement line, and setting coordinate information and attribute information of the point of interest. has been initiated.
[특 6] 내지 [특 7]에는 상호 작용이 가능한 디지털 지도에서 다층 건물의 한 층을 선택하는 기술이 개시되어 있다. 디지털 지도에는 다층 건물의 외형(external representation)이 표시되고, 사용자가 이 외형의 한 점을 선택(select)하면, 그 건물의 3D 모형이 나타나며, 그 건물의 층별 평면도가 부분적으로 중첩된 상태로 표시된다. 사용자가 이 모형을 수직 방향으로 쓸어내면(swipe), 선택된 층의 평면도가 나머지 다른 층의 평면도와 구별되는 방식으로 활성화된다.[Special 6] to [Special 7] disclose a technology for selecting a floor of a multi-story building from an interactive digital map. The external representation of a multi-story building is displayed on the digital map, and when the user selects a point on this external representation, a 3D model of the building is displayed, with the floor plan of the building partially overlapped. do. When the user swipes the model vertically, the floor plan of the selected floor is activated in a way that distinguishes it from the floor plans of the other floors.
[특 8]에는 건축물의 평면도(floor plan) 이미지를 영상 처리하여 이동할 수 있는 영역(navigable area)과 이동할 수 없는 영역(예: 벽)을 구분하고, 이동할 수 있는 영역과 이동할 수 없는 영역을 다른 색깔로 표시하는 실내 지도(indoor map)를 생성하는 기술이 개시되어 있다.In [Special 8], a navigable area and an unmovable area (e.g., wall) are distinguished by image processing of a floor plan image of a building, and a navigable area and an unmovable area are divided into different areas. A technique for generating a color-coded indoor map is disclosed.
[특 9]에는 지도 공급자로부터 등록받은 건축물의 실내 공간의 구조를 지도 형태로 사용자에게 제공하며, 개방형 API를 통해 실내지도를 사용 및 추가할 수 있도록 하는 방법이 개시되어 있다.[Special 9] discloses a method of providing the user with the structure of the indoor space of a building registered from a map provider in the form of a map, and allowing the user to use and add an indoor map through an open API.
[특 10]에는 건물의 도면 정보를 이용하여 건물에 상응하는 건물 모델을 구성하는 모델 구성부, 실외지도 POI(Point of Interest) 서버에 건물에 대한 POI 정보를 요청하는 건물정보 요청부, 건물 모델에 건물에 대한 POI 정보를 매칭시키는 매칭부 및 건물에 대한 POI 정보가 매칭된 건물 모델을 이용하여 건물의 실내지도정보를 생성하는 건물 실내지도 생성부를 포함하는 실내 지도 저작 도구가 개시되어 있다.[Special 10] includes a model configuration unit that constructs a building model corresponding to the building using drawing information of the building, a building information request unit that requests POI information about the building from an outdoor map POI (Point of Interest) server, and a building model discloses an indoor map authoring tool including a matching unit for matching POI information on a building and a building indoor map generating unit for generating indoor map information of a building using a building model matched with POI information on a building.
[특 11]에는 네트워크 서버(network server)가 사용자 기기(client device)에게 실내 지도 데이터(indoor map features)를 제공하는 기술이 개시되어 있다. 사용자가 특정한 지리적인 위치와 줌 레벨에 대한 실외 지도 데이터를 요청하면 네트워크 서버는 실외 지도 데이터 중에 다층 건물(multi-floor building)이 있는지 확인한 후, 다층 건물에 대한 기본층(default floor)의 실내 지도와 실내 지도 지시기(indoor map indicator)를 사용자 기기에 표시하며, 사용자가 실내 지도 지시기를 조작함에 따라서 실내 지도가 선택적으로 표시된다.[Special 11] discloses a technique in which a network server provides indoor map features to a client device. When a user requests outdoor map data for a specific geographic location and zoom level, the network server checks whether there is a multi-floor building among the outdoor map data, and then maps the indoor map of the default floor for the multi-floor building. and an indoor map indicator are displayed on the user device, and the indoor map is selectively displayed as the user manipulates the indoor map indicator.
[특 12]에는 실외 지도 데이터를 표시하는 기본 지도(base map)에서 실내 지도 데이터(indoor map data)로의 빠른 전환을 가능하게 하는 네트워크 서버의 컴퓨터 구현 방법이 제시되어 있으며, 위젯(widget)을 사용하여 표시하고자 하는 층을 용이하게 선택할 수 있다. 또, 다층 건물(multi-floor building)에서 1층이 아닌 사용자들이 관심을 가질 층을 기본층(default floor)으로 설정한다. 1층에는 주로 주차장이 위치하는 경우가 많기 때문이다.[Special 12] presents a computer implementation method of a network server that enables quick conversion from a base map displaying outdoor map data to indoor map data, using a widget. Thus, a layer to be displayed can be easily selected. Also, in a multi-floor building, a floor that users other than the first floor will be interested in is set as the default floor. This is because there are many cases where parking lots are located on the first floor.
[특 13]에는 타겟 시설에 대한 실내 지도를 구축하는 장치 및 방법이 개시되어 있다. 실내 지도 구축 장치는 실내 지도를 구축하고자 하는 타겟 시설 내부의 각 지점에 대한 스캔 정보에서 클라우드 포인트 정보를 추출하는 정보 추출부 및 상기 각 지점에 대한 클라우드 포인트 정보에 기초하여 타겟 시설의 형체에 대한 도화 작업을 수행함에 따라 타겟 시설에 대한 실내 지도를 구축하는 실내 지도 구축부를 포함한다. 상기 실내 지도 구축부는 상기 타겟 시설 내부의 각 지점을 스캔하는 스캔 장치에서 획득된 가속도 정보에 기초하여 스캔 장치의 이동에 따라 발생하는 도화 오차를 보정한다.[Special 13] discloses an apparatus and method for constructing an indoor map for a target facility. The indoor map building device includes an information extraction unit for extracting cloud point information from scan information for each point inside a target facility to build an indoor map, and a diagram of the shape of the target facility based on the cloud point information for each point. It includes an indoor map building unit that builds an indoor map of the target facility as the work is performed. The indoor map building unit corrects a drawing error generated according to the movement of the scanning device based on acceleration information obtained from the scanning device scanning each point inside the target facility.
[특 14]에는 컴퓨터를 이용하여 건물의 실내 평면도(building indoor floor plan)를 물리적인 지도 좌표로 투사하는 방법이 개시되어 있다. 이를 위하여 위성 사진에서 건물의 위치 정보를 획득하고, 가시적인 요소(visual elements)에 대한 위도와 경도를 포함하는 실세계 사물 데이터베이스(real-world objects database)를 구축한다. 그리고 이 데이터베이스를 이용하여 실내 평면도상의 각 사물의 상대적인 좌표 (x, y)가 실세계(real world)에서의 (x, y) 좌표, 즉 (경도, 위도)로 투사된다.[Special 14] discloses a method of projecting a building indoor floor plan to physical map coordinates using a computer. To this end, building location information is obtained from satellite photos, and a real-world objects database including latitude and longitude for visual elements is constructed. Then, using this database, the relative coordinates (x, y) of each object on the indoor floor plan are projected as (x, y) coordinates in the real world, that is, (longitude, latitude).
[특 15]에는 건물의 평면도 이미지에서 윤곽선을 추출하고, 추출된 윤곽선을 벽면으로 설정한 3차원 도면을 생성하는 기술이 개시되어 있다.[Special 15] discloses a technique of extracting an outline from a floor plan image of a building and generating a three-dimensional drawing in which the extracted outline is set as a wall surface.
[특 16]에는 건물의 층별 실내지도 상에 존재하는 노드들의 속성을 분석하는 단계, 상기 분석된 노드들의 속성을 기반으로 하나 이상의 층간 노드를 검출하는 단계 및 상기 검출된 층간 노드를 연결하여 새로운 링크를 생성하는 단계를 포함하는 실내지도 작성 방법이 개시되어 있다.[Special 16] includes the step of analyzing the attributes of nodes existing on the indoor map for each floor of the building, the step of detecting one or more inter-floor nodes based on the attributes of the analyzed nodes, and the step of connecting the detected inter-floor nodes to create new links. An indoor map creation method comprising the step of generating is disclosed.
[특 17]에는 건물의 도면 이미지 파일을 활용하여 실내지도를 자동으로 작성하는 방법 및 그 장치가 개시되어 있다. 구체적으로 실외지도를 포함하는 지도작성 화면을 표시하는 단계, 상기 실외지도에 포함된 건물들 중 실내지도를 작성할 건물을 지정하는 단계, 상기 지정된 건물의 도면 이미지를 호출하는 단계, 상기 호출된 도면 이미지를 상기 지정된 건물의 위치에 대응하는 실외지도 영역과 매칭시키는 단계, 상기 호출된 도면 이미지로부터 POI(Point of Interest), 폴리곤(polygon) 및 폴리라인(polyline) 중 적어도 하나를 검출하는 단계 및 상기 검출된 POI, 폴리곤 및 폴리라인 중 적어도 하나를 기반으로 상기 건물의 적어도 일부 영역에 관한 실내지도를 작성하는 단계를 포함한다. 또, 단순화한 도면 이미지로부터 임계치 이상의 크기를 갖는 폴리곤 또는 폴리라인과, 상기 폴리곤 또는 폴리라인의 상대 좌표값을 검출하고, 상대 좌표값을 상기 실내지도상의 절대 좌표값으로 변환하는 단계를 더 포함한다.[Special 17] discloses a method and apparatus for automatically creating an indoor map using a drawing image file of a building. Specifically, the step of displaying a map creation screen including an outdoor map, the step of designating a building for which an indoor map is to be created among the buildings included in the outdoor map, the step of calling a drawing image of the designated building, the called drawing image matching with an outdoor map area corresponding to the location of the designated building, detecting at least one of a Point of Interest (POI), a polygon, and a polyline from the called drawing image, and the detection and creating an indoor map for at least a partial area of the building based on at least one of a POI, a polygon, and a polyline. In addition, the step of detecting a polygon or polyline having a size greater than a threshold value and a relative coordinate value of the polygon or polyline from a simplified drawing image, and converting the relative coordinate value into an absolute coordinate value on the indoor map. .
[특 18]에는 지리정보시스템(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)가 표시되는 화면상의 임의의 위치로 이동시킬 수 있다. 이와 같은 레이어 제어 도구는 특히 화면의 크기가 작은 스마트폰과 같은 휴대용 기기에서 유용하게 사용될 수 있다.[Special 18] discloses a layer control tool capable of changing the display state of a geographic data layer displayed in a geographic information system. The layer control tool can make one or more layers of a plurality of geographical data layers shown in the geographic information system visible, invisible, or converted into a locked state so that the display state is not changed. Types of geographic data layers include terrain data layers, street information data layers, three-dimensional building data layers, and border data layers. do. The layer control tool can be moved to any position on the screen where geographic imagery is displayed. Such a layer control tool can be usefully used in a portable device such as a smart phone having a small screen size.
실측에 기반한 실내 지도를 제공하고자 한다.We intend to provide indoor maps based on actual measurements.
CAD 소프트웨어와 GPS 수신기를 이용하여 건물의 어느 한 층의 실내 지도를 작성한다. 이 방법은 거리의 단위를 가지는 국지좌표계에서 건물의 어느 한 층의 평면도를 포함하는 CAD 도면을 준비하는 단계, 건물에 대하여 상대적으로 고정된 기준점과 기준선을 설정하는 단계, GPS 수신기를 이용하여 평면직각좌표계에서 기준점의 좌표와 기준선의 방향을 결정하는 단계, 결정된 기준점의 좌표와 기준선의 방향을 이용하여 CAD 도면의 국지좌표계를 평면직각좌표계로 변환하는 단계, 평면도 상의 좌표들을 평면직각좌표계의 좌표에서 지리 좌표계의 좌표로 변환하는 단계를 포함한다.An indoor map of one floor of a building is created using CAD software and a GPS receiver. This method includes the steps of preparing a CAD drawing including a plan view of any one floor of a building in a local coordinate system having a unit of distance, setting a relatively fixed reference point and reference line for the building, and using a GPS receiver to perpendicular to the plane. Determining the coordinates of the reference point and the direction of the reference line in the coordinate system, converting the local coordinate system of the CAD drawing into a plane Cartesian coordinate system using the determined coordinates of the reference point and the direction of the reference line, converting the coordinates on the plan view from the coordinates of the plane Cartesian coordinate system Converting to the coordinates of the coordinate system.
실측 기반의 평면도를 실외 지도 위에 중첩하여 표시함으로써 건물과 관련하여 필요한 정보를 쉽게 파악할 수 있다.By superimposing a floor plan based on actual measurements on an outdoor map, it is possible to easily grasp necessary information related to a building.
도 1 내지 도 2는 오픈레이어스로 대한민국 주변의 지도와 함께 맵 타일을 같이 표시한 지도.
도 3은 지도 제작에 있어서 레이어의 개념을 예시하는 개념도.
도 4 내지 도 5는 바로e맵의 실시예.
도 6은 구글의 실내 지도의 시작 페이지 화면.
도 7 내지 도 8은 구글의 실내 지도에서 6K층과 지하 2층의 실내 지도를 확대한 모습.
도 9는 실외 지도에 지오제이슨으로 작성된 기하학적 도형을 표시한 모습.
도 10은 측지 위도와 지심 위도의 차이를 이해하기 위한 개념도.
도 11은 종래 발명에서 사용하는 북향거리와 동향거리의 개념도.
도 12는 종래 발명에서 층 정보의 개념을 예시하는 개념도.
도 13은 종래 발명의 디지털 지도 시스템의 구성을 보여주는 개념도.
도 14는 종래 발명의 실시예에서 레이어의 구성을 예시하는 도면.
도 15는 종래 발명의 실시예에서 디지털 지도의 뷰와 중앙의 건물의 예를 보여주는 도면.
도 16은 종래 발명에서 디지털 지도의 알고리즘을 보여주는 순서도.
도 17은 종래 발명에서 평면도 표시 서브루틴의 순서도.
도 18은 OK벤처타운 2층의 실측 평면도.
도 19는 OK벤처타운 1층의 건축물현황도.
도 20은 위성사진과 건물의 외곽선을 비교하는 그림.
도 21은 수치지도에서 추출한 OK벤처타운 근방의 건물들.
도 22는 대전중앙로지하상가의 평면도를 구면 메르카토르 좌표계에서 표시한 모습.
도 23은 대전중앙로지하상가의 평면도를 지리 좌표계에서 표시한 모습.
도 24는 본 발명의 제1 실시예에서 건물에 대하여 상대적으로 고정된 기준점과 기준선을 예시하는 개념도.
도 25는 본 발명의 제1 실시예의 기준점에서 GPS 좌표를 측정하는 사진.
도 26은 본 발명의 제1 실시예에서 건물의 평면도상의 상대적인 기준점이 절대적인 기준점과 일치하도록 건물의 평면도를 이동한 도면.
도 27은 본 발명의 제1 실시예에서 건물의 평면도상의 상대적인 기준선이 절대적인 기준선과 일치하도록 건물의 평면도를 기준점을 중심으로 회전한 도면.
도 28은 절대 좌표로 표시된 평면도를 QGIS에서 열어본 화면.
도 29는 바로e맵에서 추출한 OK벤처타운 건물의 외곽선과 실측으로 얻어진 건물의 외곽선을 QGIS에서 비교한 도면.
도 30은 브이월드 지도에 OK벤처타운의 외곽선을 중첩하여 표시한 도면.
도 31은 롯데 월드 타워의 전경.
도 32는 서울대학교 중앙도서관의 전경.
도 33은 본 발명의 실시예에서 레이어의 구성을 예시하는 도면.
도 34는 실외 지도에 OK벤처타운의 지면층의 외곽선이 표시된 모습.
도 35 내지 도 37은 실외 지도에 각각 OK벤처타운의 1층, 2층, 3층의 실내 지도가 표시된 모습.
도 38 내지 도 39는 본 발명의 제3 실시예에서의 OK벤처타운 2층의 실내 지도.
도 40은 평면도 레이어 상수를 보여주는 프로그램 코드의 일부.
도 41은 평면도 스타일 함수의 코드를 보여주는 도면.
도 42 내지 도 49는 본 발명의 제4 실시예의 평면도의 예.1 and 2 are maps in which map tiles are displayed together with maps around Korea in open layers.
3 is a conceptual diagram illustrating the concept of a layer in map production;
4 to 5 are examples of baro e-maps.
6 is a screen of a start page of Google's indoor map.
7 and 8 are enlarged indoor maps of the 6K floor and the second basement floor in Google's indoor map.
9 is a view of displaying geometric figures written in GeoJason on an outdoor map.
10 is a conceptual diagram for understanding the difference between geodetic latitude and geocentric latitude.
11 is a conceptual diagram of northbound and eastbound distances used in the prior art.
12 is a conceptual diagram illustrating the concept of layer information in the prior art.
13 is a conceptual diagram showing the configuration of a digital map system according to the related art;
Fig. 14 is a diagram illustrating the configuration of layers in an embodiment of the prior art;
15 is a diagram showing a view of a digital map and an example of a building in the center in an embodiment of the prior art.
16 is a flowchart showing a digital map algorithm in the prior art.
17 is a flowchart of a plan view display subroutine in the prior art.
18 is a plan view of the second floor of OK Venture Town.
19 is a building status diagram of the first floor of OK Venture Town.
Figure 20 is a picture comparing the outline of the satellite image and the building.
21 is buildings near OK Venture Town extracted from a numerical map.
22 is a view of the plan view of the Daejeon Jungang-ro underground shopping center displayed in the spherical Mercator coordinate system.
23 is a plan view of Daejeon Jungang-ro Underground Shopping Mall displayed in a geographic coordinate system.
24 is a conceptual diagram illustrating reference points and reference lines relatively fixed with respect to a building in the first embodiment of the present invention.
25 is a photograph of measuring GPS coordinates at a reference point according to the first embodiment of the present invention.
26 is a view in which the floor plan of the building is moved so that the relative reference point on the floor plan of the building coincides with the absolute reference point in the first embodiment of the present invention.
27 is a view in which the floor plan of a building is rotated around a reference point so that the relative reference line on the plan view of the building coincides with the absolute reference line in the first embodiment of the present invention.
28 is a screen of a plan view displayed in absolute coordinates opened in QGIS.
29 is a view comparing the outline of the OK Venture Town building extracted from Baro e Map and the outline of the building obtained by actual measurement in QGIS.
30 is a view showing the outline of OK Venture Town superimposed on a V-World map;
31 is a panoramic view of Lotte World Tower.
32 is a view of the Seoul National University Central Library.
33 is a diagram illustrating the configuration of layers in an embodiment of the present invention;
34 shows the outline of the ground floor of OK Venture Town displayed on an outdoor map.
35 to 37 are indoor maps of the 1st, 2nd and 3rd floors of OK Venture Town, respectively, displayed on the outdoor map.
38 to 39 are indoor maps of the second floor of OK Venture Town in the third embodiment of the present invention.
40 is a portion of program code showing floor plan layer constants;
41 shows the code of the floor plan style function.
42 to 49 are examples of plan views of a fourth embodiment of the present invention.
이하 도 19 내지 도 49를 이용하여 본 발명의 실시예들을 상세하게 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 19 to 49 .
건물의 평면도는 대개 오토캐드(AutoCAD)와 같은 CAD(Computer Aided Design) 소프트웨어로 작성되며, 그 CAD 도면(drawing)에서 좌표는 건물에 대하여 상대적으로 고정된 한 원점(origin)으로부터 측정된다. 즉, 평면도 상의 좌표는 원점에 대한 상대 좌표(相對座標, relative coordinate) 또는 국지 좌표(局地座標, local coordinate)로 주어진다. 그리고 국지좌표계(局地座標系, local coordinate system)의 단위는 거리(distance)로 주어지는데, 밀리미터(milimeter)나 인치(inch)를 주로 사용한다.A floor plan of a building is usually created with CAD (Computer Aided Design) software such as AutoCAD, and coordinates in the CAD drawing are measured from an origin that is fixed relative to the building. That is, the coordinates on the plan view are given as relative coordinates or local coordinates with respect to the origin. The unit of the local coordinate system is given as a distance, and millimeters or inches are mainly used.
도 19는 OK벤처타운 건물 1층의 건축물현황도(建築物現況圖)이다. 이 건축물현황도의 치수는 건물의 좌측 하단으로부터 측정된 상대 좌표로 주어졌으며, 이 건물의 크기는 가로 방향으로 26.7m, 세로 방향으로 23.8m인 것을 알 수 있다.19 is a building status map of the first floor of the OK Venture Town building. The dimensions of this building status map are given as relative coordinates measured from the lower left corner of the building, and it can be seen that the size of this building is 26.7m in the horizontal direction and 23.8m in the vertical direction.
반면에 실외 지도나 실외 지도에 중첩되는 실내 지도는 [경도, 위도] 또는 [동향거리, 북향거리]와 같은 절대 좌표(絶對座標, absolute coordinate)로 주어져야 한다. [특 17]의 종래 발명에서는 실외 지도상의 건물의 외곽선에 부합하도록 건물의 평면도를 이동, 회전, 확대/축소한 이후에, 상대 좌표를 [경도, 위도]와 같은 절대 좌표로 변환하는 방법을 사용하였다.On the other hand, an outdoor map or an indoor map superimposed on an outdoor map must be given absolute coordinates such as [longitude, latitude] or [distance eastward, distance northward]. In the prior invention of [Special 17], a method of converting relative coordinates into absolute coordinates such as [longitude, latitude] after moving, rotating, or enlarging/reducing the floor plan of the building to conform to the outline of the building on the outdoor map is used. did
그런데 이와 같은 방법에는 크게 세 가지의 문제점이 발견된다. 국토지리정보원과 같은 기관에서는 위성사진(satellite image)을 기반으로 실외 지도를 제작한다. 먼저, 오토캐드와 같은 프로그램에서 위성사진을 불러온 뒤, 건물이나 도로 등 지형지물의 외곽선을 트레이싱(tracing)하여 수치 지도(數値地圖, numerical map)를 작성한다. 그리고 수치 지도에서 건물이나 도로, 하천 등 지형지물을 각각의 레이어(layer)로 분리하여 실외 지도 제작에 필요한 각각의 레이어를 준비한다.However, there are three major problems with this method. Organizations such as the National Geographic Information Institute produce outdoor maps based on satellite images. First, after loading a satellite image in a program such as AutoCAD, a numerical map is created by tracing the outline of a feature such as a building or a road. In addition, each layer required for outdoor map production is prepared by separating topographical features such as buildings, roads, and rivers into respective layers in the digital map.
도 20은 이 과정을 예시하기 위하여 국토지리정보원의 수치 지도에서 추출한 OK벤처타운 건물 근처의 건물들의 외곽선을 카카오 위성 지도(Kakao satellite map)에 중첩하여 표시한 것이다. 수치 지도에서 추출한 건물의 외곽선은 흰 선으로 표시되었으며, 화면 중앙의 붉은 사각형 안에 OK벤처타운이 보여지고 있다. 이와 같이 위성사진을 기반으로 작성되는 건물 외곽선 도면(building outline drawing)은 정확도가 떨어질 수 밖에 없다.20 shows the outlines of buildings near the OK Venture Town building, extracted from the numerical map of the National Geographic Information Institute, overlaid on a Kakao satellite map to illustrate this process. The outline of the building extracted from the numerical map is marked with a white line, and OK Venture Town is shown in a red rectangle in the center of the screen. In this way, the building outline drawing based on the satellite imagery is inevitably inaccurate.
도 21은 수치 지도에서 추출한 OK벤처타운 주변의 건물들의 외곽선을 보여준다. 도 21을 도 19와 비교하면 건물의 형상 자체가 부정확한 것을 알 수 있다. 예를 들어 OK벤처타운 건물의 우측 하단의 모서리의 각도가 직각이 아니다. 수치 지도와 이로부터 생성되는 실외 지도는 길찾기 등 일상적인 용도로 사용하기 위해서 제작된 것이므로, 건물의 정확한 위치나 형상을 참조하기 위하여 사용해서는 안된다. 또, 이와 같이 실외 지도에 보여지는 건물의 형상이 부정확하므로, 건물의 평면도를 이동, 회전, 확대/축소를 하더라도 실외 지도에 보여지는 건물의 외곽선과 정확히 일치시킬 수 없다.21 shows the outlines of buildings around OK Venture Town extracted from the numerical map. Comparing FIG. 21 with FIG. 19, it can be seen that the shape of the building itself is incorrect. For example, the angle of the lower right corner of the OK Venture Town building is not right angle. Numerical maps and outdoor maps generated from them are intended for everyday use, such as finding directions, and should not be used to refer to the exact location or shape of a building. In addition, since the shape of the building shown on the outdoor map is inaccurate, even if the floor plan of the building is moved, rotated, or enlarged/reduced, it cannot exactly match the outline of the building shown on the outdoor map.
또 다른 문제점은 실외 지도를 지리적인 좌표계, 즉 [경도, 위도]로 주어지는 좌표계에서 표시하면 건물의 형상이 왜곡된다는 점이다. 도 22는 대전중앙로지하상가의 평면도를 구면 메르카토르 좌표계(EPSG:3857)에서 표시한 모습이다. 그런데 구면 메르카토르 좌표계에서는 건물의 형상과 방향은 올바르게 표시되지만, 크기가 심하게 왜곡되며, 위도가 높아질수록 그 차이는 더 커진다.Another problem is that the shape of a building is distorted when an outdoor map is displayed in a geographical coordinate system, that is, a coordinate system given by [longitude, latitude]. 22 is a plan view of the Daejeon Jungang-ro Underground Shopping Mall displayed in a spherical Mercator coordinate system (EPSG: 3857). However, in the spherical Mercator coordinate system, the shape and direction of the building are displayed correctly, but the size is severely distorted, and the difference increases as the latitude increases.
한편, 도 23은 동일한 평면도를 지리 좌표계(geographic coordinate), 즉 경위도 좌표계(EPSG:4326)에서 표시한 모습이다. 경위도 좌표계에서는 사각형이 사각형으로 보이지 않고, 원이 원으로 보이지 않는다. 따라서 건물의 정확한 평면도를 이동, 회전, 확대/축소를 하더라도 실외 지도상의 건물의 외곽선에 일치시키기 곤란하다.Meanwhile, FIG. 23 shows the same plan view displayed in a geographic coordinate system, that is, a longitude and latitude coordinate system (EPSG: 4326). In the latitude and longitude coordinate system, a rectangle does not look like a rectangle, and a circle does not look like a circle. Therefore, it is difficult to match the outline of the building on the outdoor map even if the exact floor plan of the building is moved, rotated, or enlarged/reduced.
더구나 우리가 일상에서 사용하는 실외 지도상에서 위치는 보통 2m까지 차이가 날 수 있다고 한다. 즉, 실외 지도를 기반으로 건물을 짓다가는 남의 땅에 건물을 세우기 십상이다. 한편, 건축법에서는 위치의 허용 오차로 2~3cm를 규정하고 있으며, 이는 토목/건축 공사에서 사용되는 고정밀 GPS 수신기의 통상적인 위치 오차와 동일하다.Moreover, it is said that the location on the outdoor map we use in everyday life can usually differ by up to 2m. In other words, it is easy to build a building on someone else's land while building a building based on an outdoor map. On the other hand, the Building Act stipulates 2 to 3 cm as the tolerance for positioning, which is the same as the normal positioning error of high-precision GPS receivers used in civil/construction works.
요약하면, 실외 지도상의 건물의 외곽선은 형상이나 위치가 부정확하며, 건물의 정확한 평면도를 이동, 회전, 확대/축소하는 방식으로 실외 지도상의 건물의 외곽선에 일치시키는 것은 매우 어렵다. 따라서 건물의 평면도를 실내 지도로 변환할 수 있는 좀 더 정확한 방법이 필요하다.In summary, the shape or location of the outline of a building on an outdoor map is inaccurate, and it is very difficult to match the outline of a building on an outdoor map with a method of moving, rotating, or enlarging/reducing an accurate floor plan of a building. Therefore, a more accurate method is needed to convert the floor plan of a building into an indoor map.
도 24는 OK벤처타운 건물의 1층에서 건물 외벽을 따라서 측정한 건물 외곽선(building outline)을 포함하는 CAD 도면(drawing)을 보여준다. 이 외곽선은 평면도의 단순화된 상태라고 생각할 수 있으며, 건물 외곽선이 아니라 실측 평면도를 가지고 하더라도 방법은 동일하다. 그런데 본 발명의 실시예에서의 평면도는 최소한 건물 외벽을 따라서 측정한 건물 외곽선을 포함하는 것이 바람직하다. 건물 외곽선은 다각형인 것이 바람직하지만, 실시예 1에서는 연결된 선분(connected line segements)으로 주어져도 무방하다.24 shows a CAD drawing including a building outline measured along the outer wall of the OK Venture Town building on the first floor. This outline can be considered as a simplified state of the floor plan, and the method is the same even if it has a measured floor plan rather than a building outline. However, in the embodiment of the present invention, the floor plan preferably includes at least the building outline measured along the outer wall of the building. The building outline is preferably a polygon, but in the first embodiment, it may be given as connected line segments.
도 24에서 이 외곽선의 가로 방향의 길이는 26,960mm로, 도 19에 표시된 26,700mm보다 260mm가 더 길다. 그 이유는 도 19에서는 벽체(壁體, wall)의 중심선을 표시하였는데, 도 24에서는 건물 벽체의 외곽선을 표시하였기 때문이다.In FIG. 24 , the length of the outline in the horizontal direction is 26,960 mm, which is 260 mm longer than 26,700 mm shown in FIG. 19 . The reason is that the center line of the wall is displayed in FIG. 19, but the outline of the building wall is displayed in FIG. 24.
국지좌표계의 원점(coordinate origin)은 CAD 도면에서 좌측 하단의 출입문 쪽 벽체의 모서리(corner)에 있다. 또, 가로축과 세로축은 원점에서 만나는 두 벽면을 따라서 설정되었으므로, 동서남북 중 어느 방향과도 일치하지 않는다. 그리고 건물의 좌측과 우측에 각각 제1 모서리점(1st corner point) C1과 제2 모서리점 C2를 설정하였으며, 제1 모서리 점(C1)에서 벽면으로부터 수직 방향으로 4m 떨어진 점을 기준점(reference point) P로 설정하였다. 또, 건물의 제2 모서리점(C2)에서 벽면으로부터 수직 방향으로 4.7m 떨어진 점을 끝점(end point) E로 설정하고, 기준점과 끝점을 잇는 선분을 기준선(reference line)으로 부르기로 한다. 기준점과 기준선은 건물의 위치와 방향을 결정하기 위하여 설정된 것이다.The coordinate origin of the local coordinate system is at the corner of the wall on the door side in the lower left corner of the CAD drawing. In addition, since the horizontal axis and the vertical axis are set along the two walls that meet at the origin, they do not coincide with any of the north, south, east, and west directions. In addition, the first corner point C 1 and the second corner point C 2 were set on the left and right sides of the building, respectively, and the point 4m away from the wall in the vertical direction from the first corner point (C 1 ) was the reference point. (reference point) was set to P. In addition, a point 4.7 m away from the wall in the vertical direction from the second corner point (C 2 ) of the building is set as an end point E, and a line segment connecting the reference point and the end point is called a reference line. Datum points and datum lines are established to determine the location and orientation of buildings.
제1 모서리점과 제2 모서리점 대신에 외벽의 임의의 두 점을 선택할 수 있다. 그런데 벽면의 중간에서 두 점을 선택하면, 실제 건물에서나 CAD 도면에서 두 점을 식별하기 어려울 것이다. 따라서 건물의 외벽에서 두 점을 선택하고, 두 점에서 건물로부터 일정한 거리만큼 이격된 기준점과 끝점을 선정할 수 있지만, 현실적으로는 식별이 용이한 건물의 모서리를 선택하는 것이 바람직할 것이다. 또, 모서리를 선택하면 건물로부터 일정한 거리가 떨어진 기준점이나 끝점을 선정할 때, 그 거리가 벽면에서 수직으로 측정한 거리가 되도록 하기가 용이하다는 장점도 있다.Instead of the first corner point and the second corner point, two arbitrary points of the outer wall may be selected. However, if you select two points in the middle of the wall, it will be difficult to identify the two points in the actual building or in the CAD drawing. Therefore, it is possible to select two points on the outer wall of the building, and select a reference point and an endpoint spaced apart from the building by a certain distance from the two points, but in reality, it would be desirable to select the corner of the building that is easy to identify. In addition, selecting a corner has the advantage that when selecting a reference point or end point that is a certain distance away from a building, it is easy to make the distance the distance measured vertically from the wall surface.
도 25는 기준점에 고정밀 GPS 수신기를 설치하여 위치 정보, 즉, GPS 좌표를 측정하는 사진이다. 제1 모서리점(C1)에서 벽면에 수직한 방향으로 줄을 늘어뜨린 후, 줄자(tape measure)로 간격이 4m가 되는 지점을 찾았다. 이와 같이 건물 벽에서 떨어진 곳에 기준점을 설치하는 이유는, 제1 모서리점(C1)에 GPS 수신기의 측정 포인트를 정확히 위치시킬 수가 없기도 하지만, 건물 벽에 붙어 있으면 하늘의 절반은 보이지 않게 되므로 측정 포인트에서 보이는 GPS 위성의 숫자가 줄어들기 때문이다. 측정 포인트에서 보이는 GPS 위성의 숫자가 많으면 많을수록 GPS 좌표가 신속하고 정확하게 얻어진다.25 is a photograph of measuring location information, that is, GPS coordinates, by installing a high-precision GPS receiver at a reference point. After the line was stretched in the direction perpendicular to the wall at the first corner point (C 1 ), a point where the distance was 4 m was found with a tape measure. The reason for installing the reference point away from the wall of the building in this way is that the measurement point of the GPS receiver cannot be accurately located at the first corner point (C 1 ), but if it is attached to the wall of the building, half of the sky is invisible, so the measurement point This is because the number of visible GPS satellites is reduced. The greater the number of GPS satellites visible from the measurement point, the faster and more accurately the GPS coordinates are obtained.
본 시험에 사용된 GPS 수신기는 최상의 조건에서 측정했을 때 밀리미터의 정확도로 GPS 좌표를 얻을 수 있으며, 위치 정보는 경도와 위도로 얻을 수도 있지만, 평면직각좌표계(平面直角座標系, plane rectangular coordinate system)에서의 동향거리(Easting) E와 북향거리(Northing) N으로 얻을 수도 있다.The GPS receiver used in this test can obtain GPS coordinates with millimeter accuracy when measured under the best conditions. It can also be obtained by Easting E and Northing N from .
평면직각좌표계는 전 지구적으로 사용되는 좌표계가 아니라, 대한민국, 또는 대한민국의 동부, 중부, 서부 등 구간을 나누어 국지적으로 사용되는 좌표계이다. 예를 들어 UTM 좌표계에서는 지구를 60개의 띠로 나눈다. 평면직각좌표계는 대개 횡축 메르카토르 투사법(Transverse Mercator projection method)을 사용하며, 평면직각좌표계를 사용하면 거리나 방향이 정확하게 주어진다는 장점이 있다. 대전시(大田市, Daejeon City) 내에서 사용할 수 있는 평면직각좌표계는 EPSG:5181이나 EPSG:5186이 있고, UTM(Universal Transverse Mercator) 좌표계나 한국형 UTM 좌표계인 K-UTM을 사용할 수도 있다.The plane rectangular coordinate system is not a coordinate system used globally, but is a coordinate system used locally by dividing sections such as Korea or the eastern part, central part, and western part of the Republic of Korea. For example, the UTM coordinate system divides the earth into 60 zones. The planar Cartesian coordinate system usually uses the Transverse Mercator projection method, and the advantage of using the Planar Cartesian coordinate system is that the distance or direction is accurately given. EPSG:5181 or EPSG:5186 can be used as a planar Cartesian coordinate system within Daejeon City, and the UTM (Universal Transverse Mercator) coordinate system or the Korean UTM coordinate system, K-UTM, can also be used.
본 발명의 실시예 1에서는 도 25와 같이 기준점에 GPS 수신기를 설치한 이후에, 대한민국 중부좌표계(EPSG:5186)를 사용하여 GPS 좌표를 동향거리와 북향거리로 획득하였다. 기준점에서의 절대 좌표는 (E: 238324.651m, N: 414741.660m)이며, 끝점에서의 절대 좌표는 (E: 238305.609m, N: 414708.643m)이다. 계기상 측정 오차는 1cm 이하로 나타났다.In Example 1 of the present invention, after installing the GPS receiver at the reference point as shown in FIG. 25, the GPS coordinates were obtained as eastward distances and northward distances using the Korean Central Coordinate System (EPSG: 5186). Absolute coordinates at the reference point are (E: 238324.651m, N: 414741.660m), and absolute coordinates at the end point are (E: 238305.609m, N: 414708.643m). The measurement error on the instrument was found to be less than 1 cm.
기준점과 끝점과 기준선은 두 벌의 좌표를 가진다. 하나는 국지좌표계의 원점을 기준으로 측정한 상대 좌표, 또는 국지 좌표이며, 또 하나는 GPS 수신기를 사용하여 얻은 평면직각좌표계에서의 절대 좌표이다. 국지 좌표를 가지는 기준점과 끝점과 기준선을 상대적인 기준점과 끝점과 기준선이라고 지칭하고, 절대 좌표를 가지는 기준점과 끝점과 기준선을 절대적인 기준점과 끝점과 기준선이라고 지칭하기로 한다. 따라서 도 24에서 기준점(P)과 끝점(E)과 기준선(L)은 정확하게는 상대적인 기준점과 끝점과 기준선이다.The reference point, end point, and reference line have two sets of coordinates. One is relative coordinates or local coordinates measured based on the origin of the local coordinate system, and the other is absolute coordinates in a planar Cartesian coordinate system obtained using a GPS receiver. Reference points, end points, and reference lines having local coordinates are referred to as relative reference points, end points, and reference lines, and reference points, end points, and reference lines having absolute coordinates are referred to as absolute reference points, end points, and reference lines. Therefore, in FIG. 24, the reference point P, end point E, and reference line L are precisely the relative reference point, end point, and reference line.
또한, 도 24에 보이는 CAD 도면은 평면도, 또는 간략화된 평면도인 건물 외곽선 도면과, 나머지 작도 요소(作圖要素, drawn elements)로 구성된다. 예를 들어 원점, 제1 모서리점(C1), 제2 모서리점(C2), 기준점(P), 끝점(E), 기준선(L)이 모두 평면도에 속하지 않는 나머지 작도 요소이다.In addition, the CAD drawing shown in FIG. 24 is composed of a building outline drawing, which is a floor plan or a simplified floor plan, and other drawn elements. For example, the origin, first corner point (C 1 ), second corner point (C 2 ), reference point (P), end point (E), and reference line (L) are all elements that do not belong to the plan view.
이와 같이 얻어진 기준점과 끝점의 상대 좌표 및 절대 좌표를 기반으로 건물의 평면도를 실내 지도로 변환하는 방법은 다음과 같다. 먼저 도 24에 보이는 CAD 도면의 좌표계의 단위(unit)를 밀리미터(mm)에서 미터(m)로 변환한다. 이를 위해서 도 24에 보이는 CAD 도면을 1/1000로 축소(scaling)한다. 그리고 CAD 도면에 GPS 수신기로 측정한 절대적인 좌표값을 갖는 기준점과 끝점, 즉 절대적인 기준점(P')과 끝점(E')을 추가하고, 두 점을 잇는 절대적인 기준선(L')도 추가한다.The method of converting the floor plan of a building into an indoor map based on the relative coordinates and absolute coordinates of the reference point and end point thus obtained is as follows. First, the unit of the coordinate system of the CAD drawing shown in FIG. 24 is converted from millimeter (mm) to meter (m). To this end, the CAD drawing shown in FIG. 24 is scaled down to 1/1000. In addition, a reference point and an end point, that is, an absolute reference point (P') and an end point (E') having absolute coordinate values measured by a GPS receiver are added to the CAD drawing, and an absolute reference line (L') connecting the two points is also added.
다음으로, CAD 도면상에서 상대적인 기준점(P)이 절대적인 기준점(P')과 일치하도록 평면도 또는 건물의 외곽선과 상대적인 기준점과 끝점과 기준선을 함께 이동(move)한다. 도 26은 이러한 과정을 통하여 얻어진 CAD 도면을 보여준다. 따라서 두 기준점, 즉 상대적인 기준점과 절대적인 기준점의 좌표값은 [x(동향거리): 238324.651m, y(북향거리): 414741.660m]로 주어진다.Next, the reference point relative to the outline of the building or the floor plan, the end point, and the reference line are moved together so that the relative reference point (P) coincides with the absolute reference point (P') on the CAD drawing. 26 shows a CAD drawing obtained through this process. Therefore, the coordinate values of the two reference points, that is, the relative reference point and the absolute reference point, are given as [x (eastward distance): 238324.651m, y (northward distance): 414741.660m].
이와 같은 작업에 의하여 기준점과 끝점과 기준선은 2벌로 존재한다. 한 벌은 건물의 외곽선(즉, 간략화된 평면도)에 상대적으로 고정된 기준점과 끝점과 기준선이다. 이들은 건물의 평면도와 같이 이동(move, translate)되었다. 이들은 상대적인 기준점(relative reference point) P와 상대적인 끝점(relative end point) E와 상대적인 기준선(relative reference line) L이다.As a result of this work, the reference point, the end point, and the reference line exist in duplicate. A set is a set of datum points, endpoints, and datum lines that are fixed relative to the outline of the building (i.e., the simplified floor plan). They were moved (translated) like the floor plan of the building. These are the relative reference point P, the relative end point E, and the relative reference line L.
한편, GPS 수신기로부터 얻어진 절대적인 좌표값으로 직접 도면에 추가한 기준점과 끝점은 각각 절대적인 기준점(absolute reference point) P'과 절대적인 끝점(absolute end point) E'이고, 절대적인 기준점(P')과 절대적인 끝점(E')을 잇는 선분은 절대적인 기준선(absolute reference line) L'이다.On the other hand, the reference point and end point directly added to the drawing with the absolute coordinate values obtained from the GPS receiver are the absolute reference point P' and the absolute end point E', respectively, and the absolute reference point P' and the absolute end point The line segment connecting (E') is the absolute reference line L'.
상대적인 기준점의 좌표가 절대적인 기준점의 좌표와 일치하도록 건물의 평면도와 상대적인 기준점과 끝점과 기준선을 함께 CAD 도면상에서 이동하였으므로, 상대적인 기준점(P)과 절대적인 기준점(P')은 일치한다.Since the coordinates of the relative reference point coincide with the coordinates of the absolute reference point, the relative reference point (P) and the absolute reference point (P') coincide because the floor plan of the building, the relative reference point, the end point, and the reference line are moved together on the CAD drawing.
다음으로 기준점을 중심점(pivot point)으로 하여, 상대적인 기준선(L)의 방향이 절대적인 기준선(L')의 방향과 일치하도록 평면도와 상대적인 기준점과 끝점과 기준선을 함께 회전시킨다. 이와 같이 하면 건물의 평면도상의 좌표는 실세계에서의 좌표, 즉 평면직각좌표계에서의 절대 좌표와 일치하게 된다. 도 27은 이와 같이 회전된 상태의 건물의 외곽선을 보여준다. 이 상태에서 상대적인 기준점과 끝점은 절대적인 기준점과 끝점과 일치한다. Next, with the reference point as the pivot point, the plan view, the relative reference point, the end point, and the reference line are rotated together so that the direction of the relative reference line (L) coincides with the direction of the absolute reference line (L'). In this way, the coordinates on the floor plan of the building coincide with the coordinates in the real world, that is, the absolute coordinates in the plane Cartesian coordinate system. 27 shows the outline of the building in this rotated state. In this state, the relative reference point and endpoint coincide with the absolute reference point and endpoint.
그런데 상대적인 기준점과 절대적인 기준점을, 그리고 상대적인 끝점과 절대적인 끝점을 일치시키는 대신에, 상대적인 기준선의 방향이 절대적인 기준선의 방향과 일치하도록 건물의 평면도, 또는 외곽선을 기준점을 중심으로 회전시키는 이유는 다음과 같다. 실제로 건물의 실측 평면도를 작성하거나 기준점과 끝점의 GPS 좌표를 측정할 때 오류가 없을 수 없다. 따라서 상대적인 기준점과 끝점이 절대적인 기준점과 끝점에 정확히 일치하도록 이동, 회전하는 것은 사실상 불가능하다. 반면에 가장 정확하게 위치 측정이 가능한 기준점을 선정하고, 기준점을 중심으로 건물의 평면도를 회전시켜 상대적인 기준선의 방향이 절대적인 기준선의 방향과 일치하도록 하는 것은 언제나 가능하다. 따라서 측정의 오차를 가정했을 때, 이 방법이 가장 일관된 방식으로 건물의 평면도상의 좌표와 평면직각좌표계상의 절대 좌표를 최대한 일치시킬 수 있는 방법이다.However, instead of matching the relative reference point with the absolute reference point, and the relative end point with the absolute end point, the reason why the floor plan or outline of the building is rotated around the reference point so that the direction of the relative reference line coincides with the direction of the absolute reference line is as follows. . In practice, errors cannot be avoided when creating ground floor plans for buildings or measuring GPS coordinates of base and end points. Therefore, it is virtually impossible to move or rotate the relative reference point and end point exactly to the absolute reference point and end point. On the other hand, it is always possible to select a reference point that can be most accurately located and rotate the floor plan of the building around the reference point so that the direction of the relative reference line coincides with the direction of the absolute reference line. Therefore, assuming the error of measurement, this method is the most consistent way to match the coordinates on the floor plan of the building and the absolute coordinates on the plane Cartesian coordinate system as much as possible.
여기까지의 단계가 완료된 이후에 기준점과 끝점과 기준선 등 나머지 작도 요소들을 모두 삭제하면, 평면직각좌표계의 좌표를 갖는 평면도가 완성된다. 오토캐드 파일은 확장자가 dwg인데, 이는 오토데스크(autodesk)사의 자체 형식이다. 그런데 오토캐드 파일을 dxf 형식으로 저장하면, 다른 프로그램과도 호환이 된다.After the steps up to this point are completed, if all other drawing elements such as the base point, end point, and base line are deleted, the plan view with the coordinates of the plane Cartesian coordinate system is completed. AutoCAD files have the extension dwg, which is Autodesk's proprietary format. However, if AutoCAD files are saved in dxf format, they are compatible with other programs.
도 28은 dxf 형식으로 저장된 평면도 파일을 지도 관련 오픈소스 SW인 QGIS에서 열어본 화면이다. QGIS 화면의 우측 하단에 투사 방식이 EPSG:5186으로 표시되고 있다. EPSG:5186에서 OK벤처타운 건물의 외곽선의 형상이 왜곡없이 정확하게 표시되고 있는 것을 볼 수 있다. 이 건물의 우측 상단에 제1 모서리점(1st corner point)이 위치하는데, 식별을 위하여 이 제1 모서리점에 작은 원을 표시하였다. 이 제1 모서리점에 마우스를 올려놓으면 QGIS 화면의 하단에 그 좌표가 '414737.53,238323.92'로 표시되고 있다.28 is a screen showing a floor plan file stored in dxf format opened in QGIS, a map-related open source SW. At the bottom right of the QGIS screen, the projection method is displayed as EPSG:5186. In EPSG:5186, you can see that the shape of the outline of the OK Venture Town building is accurately displayed without distortion. A 1st corner point is located at the top right of this building, and a small circle is marked on this 1st corner point for identification. When the mouse is placed on this first corner point, the coordinates are displayed as '414737.53,238323.92' at the bottom of the QGIS screen.
QGIS에서 이 평면도 파일을 다시 지오제이슨(GeoJSON) 파일로 저장할 수 있으며, 좌표계로 지리 좌표계(EPSG:4326)를 지정할 수 있다. 그 지오제이슨 파일은 텍스트 파일이므로, 메모장(notepad)과 같은 텍스트 편집기(text editor) 프로그램으로 열어볼 수 있다. 그 파일은 다음과 같이 주어진다.In QGIS, you can save this floor plan file back as a GeoJSON file, and you can specify the geographic coordinate system (EPSG:4326) as the coordinate system. Since the GeoJason file is a text file, it can be opened with a text editor program such as notepad. The file is given as
{ "type": "Feature", "properties": { "Layer": "Bld", "PaperSpace": null, "SubClasses": "AcDbEntity:AcDbPolyline", "Linetype": null, "EntityHandle": "5593", "Text": null }, "geometry": { "type": "LineString", "coordinates": [ [ 127.4267398, 36.329933 ], [ 127.4267363, 36.3299179 ], [ 127.426709, 36.329922 ], [ 127.426686, 36.3298219 ], [ 127.4266685, 36.3298245 ], [ 127.4266565, 36.3297722 ], [ 127.4265547, 36.3297875 ], [ 127.4265432, 36.3297374 ], [ 127.4265563, 36.3297354 ], [ 127.4265514, 36.3297141 ], [ 127.4266375, 36.3297012 ], [ 127.4266434, 36.3297269 ], [ 127.4267069, 36.3297174 ], [ 127.4267218, 36.3297824 ], [ 127.4268286, 36.329793 ], [ 127.4268322, 36.3299191 ], [ 127.4267398, 36.329933 ] ] } }{ "type": "Feature", "properties": { "Layer": "Bld", "PaperSpace": null, "SubClasses": "AcDbEntity:AcDbPolyline", "Linetype": null, "EntityHandle": "5593 ", "Text": null }, "geometry": { "type": "LineString", "coordinates": [ [ 127.4267398, 36.329933 ], [ 127.4267363, 36.3299179 ], [ 127.426709, 36.329922 ], [ 127.42 6686, 36.3298219] . 65563, 36.3297354 ], [ 127.4265514, 36.3297141 ], [ 127.4266375, 36.3297012 ], [ 127.4266434, 36.3297269 ], [ 127.4267069, 36.3297174 ], [ 127.4267218, 36.3297824 ], [ 127.4268286, 36.329793 ], [ 127.4268322, 36.3299191 ], [ 127.426739 8, 36.329933 ] } }
즉, 이 평면도 파일은 속성객체(Feature)로 주어졌으며, 각 점들의 좌표는 [경도, 위도]의 형식으로 저장되어 있다.That is, this floor plan file is given as a feature object, and the coordinates of each point are stored in the form of [longitude, latitude].
도 29는 수치 지도에서 추출한 OK벤처타운 건물의 외곽선과 실측으로 얻어진 외곽선을 QGIS에서 열어본 화면이다. 건물의 위치는 거의 동일한데, 수치 지도에서 추출한 건물의 외곽선에 비하여 실측으로 얻어진 건물의 외곽선이 훨씬 정확한 것을 알 수 있다. 여러 가지로 추정해 본 결과 OK벤처타운 건물 외곽선의 위치 오차는 약 8cm로 계산되었다.29 is a screen showing the outline of the OK Venture Town building extracted from the numerical map and the outline obtained by actual measurement opened in QGIS. The location of the buildings is almost the same, but it can be seen that the outline of the building obtained by actual measurement is much more accurate than the outline of the building extracted from the digital map. As a result of various estimations, the position error of the OK Venture Town building outline was calculated to be about 8 cm.
도 30은 QGIS에서 브이월드 맵(VWorld street)을 불러온 후, 실측으로 얻어진 OK벤처타운 건물의 외곽선을 같이 표시한 도면이다. 브이월드 맵은 구글 지도와 같은 구면 메르카토르 투사 방식(EPSG:3857)을 사용한다. 따라서 OK벤처타운 건물의 건물 외곽선 도면은 지리 좌표계(EPSG:4326)에서 구면 메르카토르 투사 방식(EPSG:3857)으로 다시 변환되어 표시된 것이다.30 is a view showing the outline of the OK Venture Town building obtained by actual measurement after loading VWorld street from QGIS. The V-World map uses the same spherical Mercator projection method as Google Maps (EPSG:3857). Therefore, the building outline drawing of the OK Venture Town building is converted back from the geographic coordinate system (EPSG:4326) to the spherical Mercator projection method (EPSG:3857) and displayed.
도 30에서 건물의 위치가 도로의 경계와 잘 일치하는 것을 알 수 있다. 네이버 지도나 카카오 지도와 같은 다른 지도에서 시험해보면 도로에 대한 건물의 위치의 편차가 상당히 심한 것을 알 수 있다. 이는 전술한 바와 같이 실외 지도의 위치 정확도가 상당히 떨어지기 때문일 것이다.30, it can be seen that the location of the building coincides well with the boundary of the road. When tested on other maps such as Naver Map or Kakao Map, it can be seen that the deviation of the location of the building relative to the road is quite large. This may be because the location accuracy of the outdoor map is considerably lowered as described above.
본 발명의 실시예 1에서는 건물의 외곽선만을 가지고 설명을 하였지만, 도 18에 보이는 것과 같은 건물의 어느 한 층의 실제 평면도를 가지고 실내 지도로 변환하는 방법도 동일하다.In the first embodiment of the present invention, only the outline of the building has been described, but the method of converting an actual floor plan of a building as shown in FIG. 18 into an indoor map is the same.
이와 같은 본 발명의 제1 실시예는 GPS(Global Positioning System) 수신기(receiver)와 CAD(Computer Aided Design) 소프트웨어를 이용하여 건물의 어느 한 층(floor)의 실내 지도를 작성하는 방법을 제공한다. 이 방법은 거리(distance)의 단위를 가지는 국지좌표계(local coordinate system)에서 건물의 어느 한 층의 평면도(floorplan)를 포함하는 CAD 도면(drawing)을 준비하는 단계, 건물에 대하여 상대적으로 고정된 기준점(reference point)과 기준선(reference line)을 설정하는 단계, GPS 수신기를 이용하여 평면직각좌표계(plane rectangular coordinate system)에서 기준점의 좌표와 기준선의 방향을 결정하는 단계, 결정된 기준점의 좌표와 기준선의 방향을 이용하여 CAD 도면의 국지좌표계를 평면직각좌표계로 변환하는 단계, 평면도상의 좌표들을 평면직각좌표계의 좌표에서 지리 좌표계(geographic coordinate system)의 좌표로 변환하는 단계를 포함한다.The first embodiment of the present invention provides a method of creating an indoor map of a floor of a building using a GPS (Global Positioning System) receiver and CAD (Computer Aided Design) software. This method is a step of preparing a CAD drawing containing a floorplan of any one floor of a building in a local coordinate system having a unit of distance, a reference point relatively fixed with respect to the building. Setting a reference point and reference line, determining the coordinates of the reference point and the direction of the reference line in a plane rectangular coordinate system using a GPS receiver, the coordinates of the determined reference point and the direction of the reference line A step of converting the local coordinate system of the CAD drawing into a planar Cartesian coordinate system using , and a step of converting the coordinates on the plan view from the coordinates of the Plane Cartesian coordinate system to the coordinates of the geographic coordinate system.
거리의 단위를 가지는 국지적인 좌표계에서 건물의 어느 한 층의 평면도를 포함하는 CAD 도면을 준비하는 단계는 건물에 대하여 상대적으로 고정된 한 점을 미터법(metric system)을 사용하는 좌표계의 원점(origin)으로 선정하는 단계, 평면도를 작성할 건물의 어느 한 층을 선택하는 단계, 해당 층의 건물 외곽선을 연결된 선분(connected line segments)이나 다각형(polygon)으로 포함하는 평면도(floorplan)를 포함하는 CAD 도면을 준비하는 단계를 포함한다.The step of preparing a CAD drawing containing a floor plan of any one floor of a building in a local coordinate system with a unit of distance is to set a fixed point relative to the building as the origin of the coordinate system using the metric system. Step of selecting a floor plan, step of selecting a floor of a building to create a floor plan for, preparing a CAD drawing including a floorplan that includes the building outline of the floor as connected line segments or polygons It includes steps to
건물에 대하여 상대적으로 고정된 기준점과 기준선을 설정하는 단계는 건물 외벽의 두 점을 선택하는 단계, 건물 외벽의 두 점으로부터 건물과 각각 일정한 거리만큼 이격된 기준점과 끝점을 선정하는 단계, 기준점과 끝점을 연결하는 기준선을 설정하는 단계를 포함한다.The step of setting a relatively fixed reference point and reference line for the building is the step of selecting two points on the outer wall of the building, the step of selecting the reference point and end point separated from the two points on the outer wall by a certain distance from the building, respectively, the reference point and the end point and setting a reference line connecting the
GPS 수신기를 이용하여 평면직각좌표계에서 기준점의 좌표와 기준선의 방향을 결정하는 단계는 GPS 수신기를 이용하여 기준점과 끝점의 위치 정보를 평면직각좌표계의 좌표로 획득하는 단계, 평면직각좌표계의 좌표축에 대한 기준선의 방향을 계산하는 단계를 포함한다.The step of determining the coordinates of the reference point and the direction of the reference line in the Cartesian Plane Coordinate System using the GPS receiver is the step of obtaining the location information of the reference point and the end point as the coordinates of the Cartesian Plane Coordinate System using the GPS receiver. and calculating the direction of the baseline.
결정된 기준점의 좌표와 기준선의 방향을 이용하여 CAD 도면의 국지좌표계를 평면직각좌표계로 변환하는 단계는 원점에 대한 국지 좌표를 가지는 상대적인 기준점과 끝점과 기준선을 CAD 도면에 추가하는 단계, GPS 수신기로 획득한 평면직각좌표계에서의 좌표를 가지는 절대적인 기준점과 끝점을 CAD 도면에 추가하는 단계, 절대적인 기준점과 끝점을 연결하는 절대적인 기준선을 추가하는 단계, CAD 도면에서 평면도와 상대적인 기준점과 끝점과 기준선을 함께 이동하여 상대적인 기준점이 절대적인 기준점과 일치하도록 하는 단계, CAD 도면에서 상대적인 기준선의 방향이 절대적인 기준선의 방향과 일치하도록 평면도와 상대적인 기준점과 끝점과 기준선을 상대적인 기준점을 중심으로 함께 회전시키는 단계를 포함한다.The step of converting the local coordinate system of the CAD drawing into a plane Cartesian coordinate system using the coordinates of the determined reference point and the direction of the reference line is the step of adding a relative reference point, end point, and reference line having local coordinates of the origin to the CAD drawing, obtained by a GPS receiver. The step of adding an absolute reference point and end point having coordinates in a plane Cartesian coordinate system to the CAD drawing, the step of adding an absolute reference line connecting the absolute reference point and the end point, and moving the reference point and end point and reference line relative to the plan view in the CAD drawing Making the relative reference point coincide with the absolute reference point, and rotating the plan view, the relative reference point, the end point, and the reference line together around the relative reference point so that the direction of the relative reference line coincides with the direction of the absolute reference line in the CAD drawing.
평면도 상의 좌표들을 평면직각좌표계의 좌표에서 지리 좌표계의 좌표로 변환하는 단계는 CAD 도면에서 평면도를 제외한 나머지 작도 요소(作圖要素, drawn elements)들을 삭제하는 단계, CAD 도면을 지오제이슨(GeoJSON) 파일로 저장하되, 투사 방식은 지리 좌표계(geographic coordinate system)를 따르도록 하는 단계를 포함한다.The step of converting the coordinates on the floor plan from the coordinates of the planar Cartesian coordinate system to the coordinates of the geographic coordinate system is the step of deleting the drawn elements other than the floor plan from the CAD drawing, and converting the CAD drawing into a GeoJSON file. , but the projection method includes the step of following the geographic coordinate system.
[특 3]에 개시된 종래 발명에서는 각각의 건물에 대하여 하나의 건물 외곽선 파일(Bld.geojson)과 층별로 각각의 평면도 파일을 사용하였다. 예시로 든 OK벤처타운은 소위 상자형 건물로서 건물의 각 층의 단면도가 동일하다. 그런데 적지 않은 수의 건물들이 층별로 다른 단면도를 가지고 있다.In the conventional invention disclosed in [Special 3], one building outline file (Bld.geojson) and each floor plan file were used for each building. OK Venture Town as an example is a so-called box-shaped building, and each floor of the building has the same cross-section. However, not a small number of buildings have different cross-sections for each floor.
도 31은 롯데월드타워(Lotte world tower)의 사진인데, 2022년 기준 세계에서 5번째로 높은 건물이다. 이 건물은 붓끝을 형상화하여, 위로 올라갈수록 단면적이 줄어드는 모양을 가지고 있다. 따라서 이 건물의 외곽선은 매 층이 모두 다를 수밖에 없다.31 is a picture of the Lotte world tower, which is the fifth tallest building in the world as of 2022. This building embodies the tip of a brush, and has a shape in which the cross-sectional area decreases as it goes up. Therefore, the outline of this building is inevitably different for each floor.
[특 3]의 종래 발명에서는 사용자의 스마트폰 혹은 마우스의 커서(cursor)가 해당 건물의 실내에 위치하는지를 판정하기 위하여 사용자의 스마트폰의 GPS 수신기로 획득한 GPS 좌표, 또는 마우스 커서의 위치가 건물의 외곽선 안에 위치하는지 아니면 바깥에 위치하는지를 검사하였다. 그런데 종래 발명에서와 같이 건물별로 단 하나의 외곽선, 예를 들어 지면층(ground floor)의 외곽선을 사용한다면, 해당 알고리즘이 오류를 일으킬 수 있다. 왜냐하면, 스마트폰이나 마우스 커서의 위치가 지면층의 외곽선 안에 위치하면서 고층의 외곽선 또는 평면도의 외부에 위치한다면, 실제로는 건물 내에 위치하지 않음에도 불구하고 지도 프로그램은 실내에 있는 것으로 판단하여 층 선택 메뉴를 보여줄 수 있기 때문이다.In the conventional invention of [Special 3], the GPS coordinates obtained by the GPS receiver of the user's smartphone or the location of the mouse cursor are used to determine whether the cursor of the user's smartphone or mouse is located inside the building. It was checked whether it was located inside or outside the outline of . However, if only one outline for each building, for example, the outline of a ground floor, is used as in the prior art, the corresponding algorithm may cause an error. Because, if the location of the smartphone or mouse cursor is located within the outline of the ground floor and is located outside the outline of the high floor or the floor plan, the map program determines that it is indoors even though it is not actually located inside the building, and selects the floor menu because it can show
대부분의 건물은 높이에 따른 단면도가 동일하거나 아니면 점점 작아진다. 그런데 도 32에 보이는 서울대학교 중앙도서관은 산비탈에 지어진 기존의 건물에 더하여 나중에 추가로 건물을 올린 구조이며, 한 건물 위에 또 다른 건물이 있다. 두 번째로 지은 도서관은 상층의 단면적이 하층의 단면적 보다 더 크다. 따라서 이 경우에는 분명히 중심 마커(center marker)가 건물 안에 위치함에도 불구하고, 층선택 메뉴가 나타나지 않는 심각한 오류가 발생할 수 있다.Most buildings have the same cross-section along the height, or they get smaller. However, the Seoul National University Central Library shown in FIG. 32 is a structure with an additional building added later in addition to the existing building built on the hillside, and there is another building on top of one building. In the second library built, the cross-sectional area of the upper floor is larger than the cross-sectional area of the lower floor. Therefore, in this case, a serious error may occur in which the floor selection menu does not appear even though the center marker is clearly located in the building.
이와 같은 오류를 방지하기 위하여 본 발명의 제2 실시예에서는 상자형 건물을 포함하는 모든 건물에 대하여 층별로 각각 평면도와 건물 외곽선 도면을 사용한다. 도 33은 OpenLayers 문법으로 작성된 자바스크립트 코드(JavaScript code)의 일부로서, 지도 객체(map object)의 구성을 보여준다.To prevent such an error, in the second embodiment of the present invention, a floor plan and a building outline drawing are used for each floor of all buildings including box-shaped buildings. 33 shows a configuration of a map object as a part of JavaScript code written in OpenLayers grammar.
본 실시예에서는 지도 화면의 중심이나 회전, 줌 레벨의 초기값을 직접 지정하지 않고, 목표 위치(goal location) goal_xy와 목표 회전(goal rotation) goalRotation과 목표 줌(goal zoom) goalZoom이라는 매개 변수(parameter)를 사용한다. 그리고 지도 객체를 생성하기 이전에 목표 위치와 목표 회전과 목표 줌 매개 변수에 초기값을 부여한다.In this embodiment, the initial values of the center, rotation, and zoom level of the map screen are not directly specified, but parameters such as goal location goal_xy, goal rotation goalRotation, and goal zoom goalZoom ) is used. And, before creating the map object, initial values are given to the target position, target rotation, and target zoom parameters.
지도 객체의 레이어는 baseLayer, buildingLayer, buildingLabelLayer, floorplanLayer, spaceLabelLayer, unitAreaMarkLayer, locationMarkerLayer로 구성된다. 레이어는 먼저 선언하는 레이어가 먼저 그려지므로 baseLayer가 가장 밑에 있고, locationMarkerLayer가 가장 위에 있다. baseLayer는 OpenStreetMap에서 그림 파일들로 지도의 타일(tile)들을 받아서 실외 지도를 그리는 레이어이다. baseLayer는 래스터 레이어(raster layer)이고, 나머지는 모두 벡터 레이어(vector layer)이다.The layer of map object is composed of baseLayer, buildingLayer, buildingLabelLayer, floorplanLayer, spaceLabelLayer, unitAreaMarkLayer, and locationMarkerLayer. Layers that are declared first are drawn first, so baseLayer is at the bottom and locationMarkerLayer is at the top. baseLayer is a layer that receives map tiles from OpenStreetMap as picture files and draws an outdoor map. The baseLayer is a raster layer, and all others are vector layers.
unitAreaMarkLayer는 단위 면적을 표시하기 위한 레이어이고, locationMarkerLayer는 지도상에서 사용자의 위치나 나침반 등을 표시하기 위한 레이어이다. baseLayer와 unitAreaMarkLayer와 locationMarkerLayer를 제외한 나머지 레이어들이 지형지물(地形地物, geographic features, terrain features) 레이어 그룹을 형성한다. 이 중에서 buildingLayer는 건물의 층별 외곽선(building outline per level)을 그리기 위한 레이어이고, floorplanLayer는 건물의 층별 평면도(floorplan per level) 중 어느 한 층의 평면도를 그리기 위한 레이어이다.unitAreaMarkLayer is a layer for displaying a unit area, and locationMarkerLayer is a layer for displaying a user's location or compass on a map. Except for baseLayer, unitAreaMarkLayer, and locationMarkerLayer, the remaining layers form a terrain features (geographic features, terrain features) layer group. Among them, buildingLayer is a layer for drawing a building outline per level, and floorplanLayer is a layer for drawing a plan view of any one floor among floorplans per level of a building.
buildingLabelLayer는 건물의 이름이나 홈페이지 주소 등 건물과 관련된 핵심 정보를 나타내기 위한 레이어이고, spaceLabelLayer는 층별 평면도에 보이는 개별 공간들(spaces)의 상호(商號, business name)나 방 이름 등을 보여주기 위한 레이어이다. 예를 들어 각각의 방(room)이 하나의 공간이 될 수 있다.buildingLabelLayer is a layer for displaying key information related to the building, such as the building name or homepage address, and spaceLabelLayer is a layer for showing the business name or room name of individual spaces shown on the floor plan. am. For example, each room can be a single space.
표 2는 3층 건물인 OK벤처타운을 가정하여 외곽선 파일과 평면도 파일의 이름 및 그 파일들이 저장된 폴더의 이름과 경로를 모두 표시한 것이다.Table 2 shows the names of the outline file and the floor plan file, as well as the name and path of the folder where the files are stored, assuming a three-story building, OK Venture Town.
공통 경로(common path)는 'https://www.buildings.land/datastoreIndoorMap/'으로 주어지고, 그 안에 OK벤처타운의 개별 폴더명(individual folder name)은 건물의 도심(centroid)의 (측지) 위도와 경도로부터 'N14062971E27570403'로 주어진다. 그런데 이 개별 폴더 안에 직접 건물 외곽선 도면 파일(building outline drawing file)과 평면도 파일(floorplan file)이 저장되는 것이 아니라, 외곽선 도면 파일이 저장되는 하위 폴더(Bld)와 평면도가 저장되는 하위 폴더(L0)가 별개로 있다. 4개의 건물 외곽선 도면 파일(Bld.geojson, G.geojson, F1.geojson, F2.geojson)은 모두 Bld 폴더에 저장되고, 3개의 평면도 파일(G.geojson, F1.geojson, F2.geojson)은 모두 L0 폴더에 저장된다.The common path is given as 'https://www.buildings.land/datastoreIndoorMap/', and the individual folder names of OK Venture Town in it are (geodetic) of the building's centroid. It is given as 'N14062971E27570403' from latitude and longitude. However, building outline drawing files and floorplan files are not directly stored in this individual folder, but a subfolder (Bld) in which outline drawing files are stored and a subfolder (L0) in which floor plans are stored is separate. All four building outline drawing files (Bld.geojson, G.geojson, F1.geojson, F2.geojson) are stored in the Bld folder, and all three floor plan files (G.geojson, F1.geojson, F2.geojson) are stored in the Bld folder. It is saved in the L0 folder.
1층, 2층, 3층의 외곽선 도면 파일과 평면도 파일은 같은 이름을 가지고 있다. 그런데 외곽선 도면 파일은 데이터 저장소에서 Bld 폴더에 저장되어 있다가 buildingLayer에 올려지며(upload), 평면도 파일은 데이터 저장소에서 L0 폴더에 저장되어 있다가 floorplanLayer에 올려진다. 따라서 실내 지도 파일을 취급하는데 있어서 아무런 혼란이 없다.The first, second, and third floor outline drawing files and floor plan files have the same name. However, the outline drawing file is saved in the Bld folder in the data storage and uploaded to buildingLayer, and the floor plan file is saved in the L0 folder in the data storage and uploaded to floorplanLayer. So there is no confusion in handling indoor map files.
여기서 층별 건물 외곽선(building outline drawing per level) 외에 대표 건물 외곽선 도면(representative building outline drawing) Bld.geojson이 별도로 존재하는 이유는 다음과 같다. [특 3]에 개시된 종래 발명에서는 어느 건물의 도심이 뷰(view) 안에 위치하고, 지도의 줌 레벨(zoom level)이 건물 외곽선 표시 줌 레벨(zoom level for showing building outline) zoomShowBld보다 큰 동안에는 건물 외곽선 도면이 항상 건물 레이어(buildingLayer)에 표시되며, 줌이 평면도 표시 줌 레벨(zoom level for showing floorplan) zoomShowFloor보다 큰 경우에는 사용자가 선택한 층의 평면도가 추가로 평면도 레이어(floorplanLayer)에 표시된다. 그리고 층 선택(floor selection)은 평면도만을 교체할 뿐, 건물 외곽선 도면은 교체하지 않는다.Here, the reason why Bld.geojson, a representative building outline drawing, exists separately in addition to the building outline drawing per level is as follows. In the conventional invention disclosed in [Special 3], while the city center of a building is located in the view and the zoom level of the map is greater than the zoom level for showing building outline zoomShowBld, the building outline drawing is always displayed on the buildingLayer, and if the zoom is greater than the zoom level for showing floorplan zoomShowFloor, the floor plan of the floor selected by the user is additionally displayed on the floorplanLayer. And floor selection only replaces the floor plan, not the building outline drawing.
반면에 본 발명의 제2 실시예에서는 지면층(G)의 외곽선 도면(G.geojson)은 L0 폴더에 있는 지면층의 평면도(G.geojson)와 동시에 지도 레이어 그룹에 추가되고 동시에 제거되며, 2층(F1)과 3층(F2)도 마찬가지이다. 즉, 층이 바뀌면 건물의 층별 외곽선 도면과 평면도가 동시에 교체된다.On the other hand, in the second embodiment of the present invention, the outline drawing (G.geojson) of the ground layer (G) is added to the map layer group and removed at the same time as the plan view (G.geojson) of the ground layer in the L0 folder, 2 The same applies to the layer (F1) and the third layer (F2). That is, when the floor is changed, the outline drawing and floor plan of each floor of the building are simultaneously replaced.
그런데 대표 외곽선 도면(Bld.geojson)은 지도의 줌 레벨이 건물 표시 줌 레벨(zoomShowBld)보다 크고 평면도 표시 줌 레벨(zoomShowFloor) 보다 작은 경우나, 사용자가 어떤 층의 평면도도 보고 싶지 않을 경우에 무한대(∞) 층을 선택하면 보여지는 건물의 외곽선이다. 층 선택 메뉴(floor selector)가 '층 선택(select floor)'을 표시하고 있을 때, 프로그램 내부적으로 건물의 층(floor)은 무한대로 간주된다.However, the representative outline drawing (Bld.geojson) is infinite ( ∞) This is the outline of the building shown when selecting a floor. When the floor selector displays 'select floor', internally the program considers the number of floors in the building to be infinite.
대표 외곽선 도면은 그 건물에 지면층이 있는 경우에는 지면층의 건물 외곽선 도면의 복사본(copy)이다. 만약, 지하상가와 같이 지면층이 없는 건물의 경우에는 지표면에 가장 가까운 층, 즉 지하 1층의 외곽선 도면이다.The representative outline drawing is a copy of the building outline drawing of the ground floor if the building has a ground floor. In the case of a building without a ground floor, such as an underground shopping mall, it is the outline drawing of the floor closest to the ground surface, that is, the first basement floor.
또, 지하상가의 경우에는 지도 시작시에 지하층의 평면도가 보이지 않고, 단지 대표 외곽선 도면만 표시된다. 그리고 사용자가 지하층을 선택하면 대표 외곽선 도면이 제거되고, 사용자가 선택한 층의 외곽선 도면과 평면도가 표시된다.In addition, in the case of an underground shopping mall, the floor plan of the basement floor is not visible at the start of the map, and only the representative outline drawing is displayed. When the user selects the basement floor, the representative outline drawing is removed, and the outline drawing and floor plan of the floor selected by the user are displayed.
다시 말하면 본 발명의 제2 실시예에서 층 선택 메뉴를 사용하여 층을 1층에서 2층으로 바꾸면 1층의 건물 외곽선 도면 파일(Bld/G.geojson)과 평면도 파일(L0/G.geojson)이 2층의 건물 외곽선 도면 파일(Bld/F1.geojson)과 평면도 파일(L0/F1.geojson)로 교체되며, 중심 마커가 각 층의 외곽선 도면의 안에 존재할 경우에만 층 선택 메뉴가 활성화된다. 그리고 보여줄 평면도가 없을 때는 대표 외곽선 도면이 표시된다.In other words, in the second embodiment of the present invention, when the floor is changed from the first floor to the second floor using the floor selection menu, the building outline drawing file (Bld/G.geojson) and the floor plan file (L0/G.geojson) of the first floor are It is replaced with the 2nd floor building outline drawing file (Bld/F1.geojson) and floor plan file (L0/F1.geojson), and the floor selection menu is activated only when the center marker exists within the outline drawing of each floor. And when there is no floor plan to show, a representative outline drawing is displayed.
도 34는 OK벤처타운의 지면층(1층)의 건물 외곽선 안에 뷰의 중심이 위치한 상태로 층 선택 메뉴(floor selector)에서 층(floor)을 '층 선택(select floor)'으로 변경했을 때 보여지는 지도이다. 즉, 층 선택 메뉴에서 아무런 층이 선택되지 않으면, 단지 '층 선택(select floor)'이라고만 표시된다. 34 is shown when the floor is changed to 'select floor' in the floor selector with the center of the view located within the building outline of the ground floor (1st floor) of OK Venture Town It is a losing map. That is, if no floor is selected in the floor selection menu, only 'select floor' is displayed.
도 34에 보이는 대표 건물 외곽선 도면은 GeoJSON 파일로 작성된 것이다. 도 34에 보이는 중앙의 건물(building at the view center), 즉, OK벤처타운의 대표 건물 외곽선 도면(Bld.geojson)은 다음과 같이 주어진다.The outline drawing of the representative building shown in FIG. 34 is created as a GeoJSON file. The building at the view center shown in FIG. 34, that is, the outline drawing (Bld.geojson) of the representative building of OK Venture Town is given as follows.
{{
"type": "FeatureCollection","type": "FeatureCollection",
"name": "OK벤처타운","name": "OK Venture Town",
"crs": {"crs": {
"type": "name","type": "name",
"properties": {"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84" "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}}
},},
"features": [{"features": [{
"type": "Feature","type": "Feature",
"properties": {"properties": {
"bldID": 1,"bldID": 1,
"bldName": "OK벤처타운","bldName": "OK Venture Town",
"strokeColor": "rgba(255, 0, 0, 1)","strokeColor": "rgba(255, 0, 0, 1)",
"strokeWidth": 2,"strokeWidth": 2,
"strokeLineDash": [4, 10],"strokeLineDash": [4, 10],
"fillColor": "rgba(255, 124, 0, 0.3)""fillColor": "rgba(255, 124, 0, 0.3)"
}, },
"geometry": { "geometry": {
"type": "MultiPolygon","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 ] ] ] ] "coordinates": [ [ [ [ 127.42673979, 36.32993296 ], [ 127.42673634, 36.32991789 ], [ 127.42670896, 36.329922 ], [ 127.42668601, 36.329821 88 ], [ 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 ], [ 12 7.4266434, 36.32972691 ], [ 127.42670691, 36.32971737 ], [ 127.42672181, 36.32978236 ], [ 127.42682863, 36.32979296 ], [ 127.42 683222; 36.32991908 ], [ 127.42673979, 36.32993296 ] ] ] ]
}}
}]}]
}}
여기에서 볼 수 있는 바와 같이 건물 외곽선 도면은 지오제이슨 객체이며, 이를 건물 객체(building object)라고 부르기로 한다. 건물 객체는 속성집단객체(FeatureCollection)로 정의되어 있지만, 실제로 이에 포함된 속성객체(Feature)는 단 하나이다. 이 건물 객체(building object)는 종류(type) 항목과 이름(name) 항목과 crs 항목과 속성객체(features) 항목을 가지고 있다. 따라서 이 건물 객체를 building이라고 하면, 건물 이름은 building.name으로 구할 수 있다. crs 항목은 다시 종류(type) 항목과 속성(properties) 항목을 가지고 있고, 속성 항목은 다시 이름(name) 항목을 가지고 있다.As you can see here, the building outline drawing is a GeoJason object, and we will call it a building object. Although the building object is defined as a feature collection object, there is actually only one feature object included in it. This building object has a type item, a name item, a crs item, and a feature object item. Therefore, if this building object is called building, the building name can be obtained as building.name. The crs item has a type item and a property item again, and the property item has a name item again.
건물 객체의 속성객체(features) 항목은 다시 종류(type) 항목과 속성(properties) 항목과 기하구조(geometry) 항목을 가지고 있다. 속성(properties) 항목은 다시 건물 아이디(bldID) 항목과 건물 이름(bldName) 항목과 선 색깔(strokeColor) 항목과 선 폭(strokeWidth) 항목과 선 종류(strokeLineDash) 항목과 면 색깔(fillColor) 항목을 가지고 있다. 속성객체(features) 항목의 기하 구조(geometry) 항목은 다시 종류(type) 항목과 좌표(coordinates) 항목을 가지고 있으며, 종류(type) 항목의 값은 다중다각형(MultiPolygon)으로 되어 있다.The features item of the building object has a type item, properties item, and geometry item again. The properties item again has a building ID (bldID) item, a building name (bldName) item, a line color (strokeColor) item, a line width (strokeWidth) item, a line type (strokeLineDash) item, and a face color (fillColor) item. there is. The geometry item of the features item has a type item and a coordinates item again, and the value of the type item is MultiPolygon.
이 속성객체(feature) 항목은 feature = building.features[0]으로 구할 수 있고, 이 속성객체 항목의 건물 아이디(bldID) 항목의 값은 bldID = features.properties.bldID로 구할 수 있다.This property object (feature) item can be obtained with feature = building.features[0], and the value of the building ID (bldID) item of this property object item can be obtained with bldID = features.properties.bldID.
이 방법은 순수한 자바스크립트(JavaScript) 문법을 이용하여 건물 객체에 부여된 건물고유식별번호(즉, 건물 아이디)를 확인하는 방법이고, OpenLayers를 이용하면 더 간단히 bldID = building.getProperties().bldID와 같이 구할 수 있다.This method uses pure JavaScript syntax to check the unique building identification number (ie, building ID) given to the building object. Using OpenLayers, bldID = building.getProperties().bldID and can be obtained together.
도 34는 일부러 층 선택 메뉴(floor selector)에서 '층 선택(select floor)'을 선택한 경우이다. 한편, 도 35 내지 도 37은 층(floor)을 각각 1층(G), 2층(F1), 3층(F2)으로 변경한 경우이다. 도 35 내지 도 37에서 건물의 외곽선의 색깔이 모두 다른 것을 알 수 있는데, 이는 평면도와 함께 건물의 외곽선들도 같이 교체되었기 때문이다.34 is a case where 'select floor' is deliberately selected from the floor selector. Meanwhile, FIGS. 35 to 37 show cases in which the floor is changed to a first floor (G), a second floor (F1), and a third floor (F2), respectively. 35 to 37, it can be seen that the colors of the outlines of the buildings are all different, because the outlines of the buildings are also replaced together with the floor plan.
도 34 내지 도 37에서 층 선택을 하는 방법은 다음과 같다. 먼저, 뷰의 범위(view extent)를 구한다. 그리고 이 뷰 범위로부터 뷰의 중심의 좌표 _view_xy를 구한다. 뷰의 중심에 중심 마커(center marker)가 있으므로 _view_xy는 중심 마커의 정 중앙의 좌표이다. 다음으로, 건물 레이어(buildingLayer)에서 이 좌표에 존재하는 건물 객체들을 구한다. OpenLayers의 문법을 사용하면 다음과 같이 구할 수 있다.A method for selecting a layer in FIGS. 34 to 37 is as follows. First, the view extent is obtained. Then, the coordinates of the center of the view, _view_xy, are obtained from this view range. Since the center marker is at the center of the view, _view_xy is the coordinates of the center of the center marker. Next, building objects existing at these coordinates are obtained from the buildingLayer. Using the syntax of OpenLayers, it can be obtained as follows.
buildings = sourceBuildings.getFeaturesAtCoordinate(_view_xy); buildings = sourceBuildings.getFeaturesAtCoordinate(_view_xy);
여기서 sourceBuildings은 buildingLayer에 표시되는 건물 외곽선 도면, 즉 건물 객체(building object)들을 가지고 있는 변수이다. 즉, sourceBuildings에 추가된 건물 외곽선 도면은 buildingLayer에 표시된다.Here, sourceBuildings is a variable that has building outline drawings displayed on buildingLayer, that is, building objects. That is, building outline drawings added to sourceBuildings are displayed in buildingLayer.
buildings의 크기가 0보다 크면, 즉 하나 이상의 건물 객체가 존재하면 building = buildings[0]이라는 명령으로 첫 번째 건물을 선택한다. 다음에는 전술한 bldID = building.getProperties().bldID 명령을 이용하여 그 건물의 아이디(bldID)를 구한다. 이와 같이 건물 아이디를 구할 수 있는 것은 물론 건물 객체의 속성객체(features) 항목의 속성(properties) 항목에 건물 아이디(bldID)가 포함되어 있기 때문이다. 이와 같이 건물 아이디를 구했으면, 건물 데이터베이스를 조회하여 건물 외곽선 도면 파일의 경로나 평면도 표시 줌 레벨 등 필요한 정보를 모두 구할 수 있다.If the size of buildings is greater than 0, that is, if there is more than one building object, the command building = buildings[0] selects the first building. Next, the bldID = building.getProperties().bldID command is used to obtain the ID (bldID) of the building. The building ID can be obtained in this way because, of course, the building ID (bldID) is included in the properties item of the features item of the building object. If the building ID is obtained in this way, all necessary information such as the path of the building outline drawing file or the zoom level of the floor plan can be obtained by querying the building database.
도 6 내지 도 8에 보이는 메디슨 스퀘어 가든의 실내 지도에서 엘리베이터, 화장실, 계단 등은 아이콘으로 표현되었고, 벽은 선으로만 표현되었다. 필요한 정보를 전달할 수는 있지만, 도 18에 보이는 평면도가 미적으로 더 아름답고 알아보기도 쉽다는 사실을 부정할 수 없을 것이다.In the indoor maps of Madison Square Garden shown in FIGS. 6 to 8, elevators, toilets, and stairs are represented by icons, and walls are represented by only lines. While it may convey the necessary information, it cannot be denied that the floor plan shown in Figure 18 is more aesthetically pleasing and easier to recognize.
도 18에 보이는 바와 같이 벽을 실측치와 똑같게 표현하는 것은 위급상황에서 매우 중요할 수 있다. 예를 들어 건물 내에서 화재가 발생했을 때 자욱한 연기로 인하여 시야가 제한될 뿐만 아니라, 유독 가스의 발생으로 인하여 생명에도 위협을 받게 된다. 따라서 최대한 빨리 대피하거나 구조를 하는데 있어서 건물의 실내 구조는 어떤지, 어떤 벽이 내력벽이고 어떤 벽이 비내력벽인지, 또는 문이나 창문의 위치나 크기가 어떤지를 아는 것은 매우 중요하다.As shown in FIG. 18, expressing the wall exactly as the measured value can be very important in an emergency situation. For example, when a fire breaks out in a building, not only visibility is restricted due to thick smoke, but also life is threatened due to the generation of toxic gas. Therefore, in order to evacuate or rescue as quickly as possible, it is very important to know what the interior structure of a building is, which walls are load-bearing walls and which are non-bearing walls, and what the position and size of doors and windows are.
이와 같이 실측치에 기반을 둔 실내 지도를 작성하기 위해서는 다각형(polygon)과 연결된 선분(connected line segments)을 모두 이용하는 것이 편리하다. 그리고 방 번호(room number)나 거실, 침실, 화장실과 같은 방 이름(room name)은 점객체로 지정하는 것보다 데이터베이스에서 직접 관리하는 것이 더 바람직하다.In this way, in order to create an indoor map based on measured values, it is convenient to use both polygons and connected line segments. In addition, it is more preferable to directly manage room numbers or room names such as living room, bedroom, and bathroom in the database rather than specifying them as point objects.
도 38은 본 발명의 제3 실시예에서 OK벤처타운 2층의 실내 지도를 보여주며, 도 39는 출원인의 사무실 부근으로 지도를 확대한 화면이다. 여기에서 볼 수 있는 바와 같이 벽(wall) 두께가 일정하지 않고, 두꺼운 내력벽부터 단지 칸막이에 불과한 비내력벽까지 다양하게 사용되었다. 이 두께들은 실제로 벽 두께를 측정하여 비례에 맞게 표현된 것이며, 문(door)이나 창문의 크기와 형태도 역시 실제와 최대한 동일하게 작성되었다. 예를 들어 도 39를 보면 창문이 이중의 미닫이 창인 것을 알 수 있고, 출입문은 사무실 안쪽으로 열리는 외짝의 여닫이 문이다.38 shows an indoor map of the second floor of OK Venture Town in the third embodiment of the present invention, and FIG. 39 is an enlarged screen of the map near the applicant's office. As you can see, the wall thickness is not constant, and it has been used for a variety of things, from thick load-bearing walls to non-bearing walls that are merely partitions. These thicknesses were expressed proportionally by measuring the actual wall thickness, and the size and shape of the door or window were also drawn as closely as possible to the actual one. For example, looking at Figure 39, it can be seen that the window is a double sliding window, and the entrance door is a single casement door that opens into the office.
벽은 검은색으로 표현되었는데, 벽들은 모두 다각형으로 표현하여 면 색깔을 검은색으로 지정한 것이다. 또 여닫이 문도 모두 다각형으로 표현하여, 문이 열리는 방향을 명확히 알 수 있도록 하였다. 한편, 창문이나 화장실 변기, 계단 등은 모두 연결된 선분으로 표현되었다. 이 OK벤처타운 2층의 평면도 객체는 다음과 같다.The walls are expressed in black, but all the walls are expressed as polygons and the face color is specified as black. In addition, all hinged doors are expressed as polygons, so that the direction in which the door opens can be clearly seen. On the other hand, windows, toilet bowls, and stairs are all expressed as connected line segments. The floor plan objects of the second floor of this OK Venture Town are as follows.
{{
"type": "FeatureCollection","type": "FeatureCollection",
"name": "F1","name": "F1",
"crs": { "crs": {
"type": "name","type": "name",
"properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },"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" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 127.42678864, 36.32992563 ], [ 127.42678811, 36.32992332 ], [ 127.42678285, 36.32992411 ], [ 127.42678338, 36.32992642 ], [ 127.42678864, 36.32992563 ] ] ] ] } },"features": [{ "type": "Feature", "properties": { "Layer": "wall", "bldID": 1, "strokeColor": "rgba(0, 0, 0, 1)", "strokeWidth": 1, "fillColor": "rgba(0, 0, 0, 1)", "floor": "F1" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 127.42678864, 36.32992563 ], [ 127.42678811, 36.32992332 ], [ 127.42678285, 36.32992411 ], [ 127.42678338, 36.32992642 ], [ 127.42678864, 36.32992563 ] ] ] } },
... 중략 ...... omitted ...
{ "type": "Feature", "properties": { "Layer": "door", "bldID": 1, "strokeColor": "rgba(255, 124, 0, 1)", "strokeWidth": 1, "fillColor": "rgba(255, 255, 204, 1)", "floor": "F1" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 127.42662865, 36.32972289 ], [ 127.42662744, 36.32971757 ], [ 127.42662744, 36.32971757 ], [ 127.42662699, 36.32971765 ], [ 127.42662655, 36.32971775 ], [ 127.42662612, 36.32971788 ], [ 127.42662571, 36.32971803 ], [ 127.42662531, 36.32971821 ], [ 127.42662492, 36.3297184 ], [ 127.42662455, 36.32971862 ], [ 127.4266242, 36.32971886 ], [ 127.42662387, 36.32971911 ], [ 127.42662356, 36.32971938 ], [ 127.42662328, 36.32971967 ], [ 127.42662302, 36.32971998 ], [ 127.42662279, 36.3297203 ], [ 127.42662258, 36.32972063 ], [ 127.42662241, 36.32972097 ], [ 127.42662226, 36.32972132 ], [ 127.42662214, 36.32972167 ], [ 127.42662206, 36.32972203 ], [ 127.426622, 36.3297224 ], [ 127.42662197, 36.32972277 ], [ 127.42662198, 36.32972314 ], [ 127.42662202, 36.32972351 ], [ 127.42662208, 36.32972387 ], [ 127.42662865, 36.32972289 ] ] ] ] } }{ "type": "Feature", "properties": { "Layer": "door", "bldID": 1, "strokeColor": "rgba(255, 124, 0, 1)", "strokeWidth": 1 , "fillColor": "rgba(255, 255, 204, 1)", "floor": "F1" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 127.42662865, 36.32972289 ], [ 127.42662744, 36.32971757 ], [ 127.42662744, 36.32971757 ], [ 127.42662699, 36.32971765 ], [ 127.42662655, 3 6.32971775 ], [ 127.42662612, 36.32971788 ], [ 127.42662571, 36.32971803 ], [ 127.42662531, 36.32971821 ], [ 127.42662492, 36.3 297184] . 127.42662328, 36.32971967 ], [ 127.42662302, 36.32971998 ], [ 127.42662279, 36.3297203 ], [ 127.42662258, 36.32972063 ], [ 127.42662241, 36.32972097 ], [ 127.42662226, 36.32972132 ], [ 127.42662214, 36.32972167 ], [ 127.42662206, 36.32972203 ], [ 1 27.426622, 36.3297224 ], [ 127.42662197, 36.32972277 ], [ 127.42662198, 36.32972314 ], [ 127.42662202, 36.32972351 ], [ 127.426 62208; 36.32972387 ], [ 127.42662865, 36.32972289 ] ] ] ] } }
... 중략 ...... omitted ...
{ "type": "Feature", "properties": { "Layer": "structure", "bldID": 1, "strokeColor": "rgba(124, 124, 124, 1)", "strokeWidth": 1, "fillColor": "rgba(255, 0, 0, 1)", "floor": "F1" }, "geometry": { "type": "LineString", "coordinates": [ [ 127.42671949, 36.32990567 ], [ 127.42671386, 36.3298811 ] ] } },{ "type": "Feature", "properties": { "Layer": "structure", "bldID": 1, "strokeColor": "rgba(124, 124, 124, 1)", "strokeWidth": 1 , "fillColor": "rgba(255, 0, 0, 1)", "floor": "F1" }, "geometry": { "type": "LineString", "coordinates": [ [ 127.42671949, 36.32990567 ] , [ 127.42671386, 36.3298811 ] ] } },
... 중략 ...... omitted ...
{ "type": "Feature", "properties": { "Layer": "window", "bldID": 1, "strokeColor": "rgba(0, 255, 255, 1)", "strokeWidth": 2, "fillColor": "rgba(255, 0, 0, 1)", "floor": "F1" }, "geometry": { "type": "LineString", "coordinates": [ [ 127.42655125, 36.32976782 ], [ 127.42654998, 36.32976228 ], [ 127.42654871, 36.32975674 ] ] } }{ "type": "Feature", "properties": { "Layer": "window", "bldID": 1, "strokeColor": "rgba(0, 255, 255, 1)", "strokeWidth": 2 , "fillColor": "rgba(255, 0, 0, 1)", "floor": "F1" }, "geometry": { "type": "LineString", "coordinates": [ [ 127.42655125, 36.32976782 ] , [ 127.42654998, 36.32976228 ], [ 127.42654871, 36.32975674 ] ] } }
]}]}
이상에서 알 수 있는 바와 같이 평면도 객체는 속성집단객체(FeatureCollection)이며, 종류(type) 항목과 이름(name) 항목과 crs 항목과 속성객체(features) 항목을 가지고 있다. 이 속성객체(features) 항목에는 다수의 속성객체(feature)가 포함되어 있는데, 각각의 속성객체는 종류(type) 항목과 속성(properties) 항목과 기하 구조(geometry) 항목을 가지고 있다. 각각의 속성객체(feature)의 속성(properties) 항목은 다시 레이어(Layer) 항목과 건물 아이디(bldID) 항목과 선 색깔(strokeColor) 항목과 선 폭(strokeWidth) 항목과 면 색깔(fillColor) 항목과 층(floor) 항목을 가지고 있다. OK벤처타운 2층의 평면도 객체에 속하는 모든 속성객체(Feature)의 층(floor) 항목의 값은 "F1"으로 주어진다.As can be seen from the above, the floor plan object is a feature collection, and has a type item, a name item, a crs item, and a feature object item. This feature object includes a number of feature objects, and each feature object has a type, properties, and geometry items. The properties of each feature object are Layer, bldID, strokeColor, strokeWidth, fillColor, and layer. (floor). The value of the floor item of all feature objects belonging to the floor plan object of the second floor of OK Venture Town is given as "F1".
레이어 항목의 값은 벽(wall), 문(door), 구조체(structure), 창문(window) 중의 어느 하나이며, 이 레이어 항목의 용도는 평면도 디자인 참고용이다. 또, 기하구조(geometry) 항목의 종류(type) 항목의 값은 다중다각형(MultiPolygon)이나 연결선분(LineString), 다중연결선분(MultiLineString) 중의 어느 하나이다. 즉, 점(Point)이나 다중점(MultiPoint)은 사용되지 않으며, 단 하나의 다각형도 원소의 수가 1인 다중다각형으로 간주한다.The value of the layer item is any one of wall, door, structure, and window, and the purpose of this layer item is for floor plan design reference. In addition, the value of the type item of the geometry item is any one of MultiPolygon, LineString, and MultiLineString. That is, Point or MultiPoint is not used, and even a single polygon is regarded as a multi-polygon with 1 element.
속성객체(feature)의 속성(properties) 항목은 전술한 자바스크립트 문법 또는 OpenLayers 함수를 이용하여 조회(query)할 수 있다. 사실 모든 항목을 조회할 수 있지만, 디지털 지도 프로그램에서 직접 조회해야 하는 속성(property, attribute)은 속성 항목에 포함시켰다. 이 속성 항목에 포함된 항목들을 조회 가능한 속성(queryable property)이라고 지칭하겠다.The properties item of the property object (feature) can be queried using the above-described JavaScript syntax or OpenLayers function. In fact, all items can be queried, but the properties (attributes) that need to be directly queried in the digital map program are included in the attribute items. Items included in this property item will be referred to as queryable properties.
조회 가능한 속성 중 건물 아이디(bldID)는 뷰에 보이는 다수의 평면도를 구성하는 속성객체들이 어느 건물에 속하는지를 판단하기 위하여 필요하다. 층(floor)은 반드시 필요하지는 않지만, 다른 용도로 사용될 수도 있다. 선 색깔(strokeColor), 선 폭(strokeWidth), 선 종류(strokeLineDash), 면 색깔(fillColor) 등의 속성은 평면도를 아름답게 표현(render)하기 위하여 사용된다. 도 38에 보이는 평면도에서 레이어가 같은 기하객체들은 선 색깔, 선 폭, 선 종류, 면 색깔 등의 속성 항목의 값이 동일하다. 연결선분객체나 다중연결선분객체에 부여된 면 색깔 항목은 무시되고, 다중다각형객체에 부여된 면 색깔은 그 다각형의 면 색깔로 지정된다.Among the properties that can be inquired, the building ID (bldID) is necessary to determine to which building the property objects constituting the plurality of floor plans shown in the view belong. The floor is not required, but may be used for other purposes. Attributes such as line color (strokeColor), line width (strokeWidth), line type (strokeLineDash), and face color (fillColor) are used to beautifully render a floor plan. In the plan view shown in FIG. 38, geometric objects with the same layer have the same value of property items such as line color, line width, line type, and surface color. The face color item assigned to a connecting line segment object or multi-connected line segment object is ignored, and the face color assigned to a multi-polygon object is designated as the face color of the polygon.
도 9에서는 다각형, 연결선분, 점들에 대하여 미리 스타일(style)이 정의되어 있으므로 획일적인 방식으로만 도형들을 표현할 수 있었다. 그런데 건물주나 임차인의 취향에 부응하기 위해서는 이와 같이 획일적인 방식으로는 불가능하기 때문에, 평면도 객체의 속성 항목에 선 색깔(strokeColor), 선 폭(strokeWidth), 선 종류(strokeLineDash), 면 색깔(fillColor) 항목을 추가하였다. 이와 같은 평면도 객체에 내장된 속성 항목을 처리하는 방법은 도 40 내지 도 41에 개시되어 있다.In FIG. 9, since styles are defined in advance for polygons, connecting segments, and points, figures can be expressed only in a uniform manner. However, since it is impossible to meet the tastes of the building owner or the tenant in a uniform way, the property items of the floor plan object include line color (strokeColor), stroke width (strokeWidth), line type (strokeLineDash), and face color (fillColor). item was added. A method of processing an attribute item embedded in such a floor plan object is disclosed in FIGS. 40 to 41 .
도 40을 참조하면, 평면도 레이어 상수(const) floorplanLayer는 오픈레이어스에서 벡터 레이어로 새로 생성된다(new ol.layer.Vector()). 이 레이어의 소스(source)는 sourceFloorplan이라는 이름을 가지고 있는데, 이 소스 역시 오픈레이어스에서 평면도 레이어 상수보다 먼저 벡터 레이어로 생성되었다. 그리고 이 평면도 레이어의 스타일(style)은 floorplanStyle로 지정되어 있는데, 이 스타일은 상수가 아니라 함수이다.Referring to FIG. 40, the floorplan layer constant (const) floorplanLayer is newly created as a vector layer in OpenLayers (new ol.layer.Vector()). The source of this layer has the name sourceFloorplan, and this source was also created as a vector layer before the floor plan layer constant in OpenLayers. And the style of this floor plan layer is designated as floorplanStyle, which is not a constant but a function.
도 41은 floorplanStyle 함수의 코드를 보여준다. 이 함수가 호출될 때 속성객체(feature)가 함수에게 입력 변수(input variable)로 전달된다. sourceFloorplan에 평면도 객체가 추가되면, 그 평면도 객체의 feature가 추출되어 이 floorplanStyle 함수의 입력 변수로 전달된다.41 shows the code of the floorplanStyle function. When this function is called, the feature is passed to the function as an input variable. When a floor plan object is added to sourceFloorplan, the features of the floor plan object are extracted and passed to the input variable of this floorplanStyle function.
이 feature에서 선 색깔(strokeColor) 항목에 해당하는 값을 추출하여(feature.get("strokeColor")), strokeColor라는 변수에 저장된다. 만약, 속성객체(feature)에 선 색깔 항목에 해당하는 값이 저장되어 있지 않다면(strokeColor == undefined), strokeColor 변수에 기본값을 부여한다. 기본값은 회색(rgba(124, 124, 124, 1.0))이다.The value corresponding to the strokeColor item is extracted from this feature (feature.get("strokeColor")) and stored in a variable called strokeColor. If the value corresponding to the line color item is not stored in the property object (feature) (strokeColor == undefined), a default value is assigned to the strokeColor variable. The default is gray (rgba(124, 124, 124, 1.0)).
마찬가지로 feature에서 선 종류(strokeLineDash) 항목과 선 폭(strokeWidth) 항목과 면 색깔(fillColor) 항목의 값을 추출하여, 각각 strokeLineDash, strokeWidth, fillColor라는 변수에 저장한다. 만약, fillColor에 저장된 값이 없으면, 기본값인 검은색(rgba(0, 0, 0, 1.0))을 지정한다.Similarly, the values of line type (strokeLineDash), line width (strokeWidth), and face color (fillColor) are extracted from the feature and stored in variables called strokeLineDash, strokeWidth, and fillColor, respectively. If there is no value stored in fillColor, the default value of black (rgba(0, 0, 0, 1.0)) is specified.
이와 같이 strokeColor, strokeLineDash, strokeWidth, fillColor 변수에 값이 저장되었으면, style이라는 변수를 새로 생성하고(new ol.style.Style()), 선(stroke)의 색깔(color), 종류(lineDash), 폭(width)을 각각 strokeColor, strokeLineDash, strokeWidth로 지정한다. 또, 면(fill)의 색깔(color)을 fillColor로 지정한다. 마지막으로 이렇게 생성된 style을 함수의 값으로 반환(return styles)한다.In this way, if the values are stored in the strokeColor, strokeLineDash, strokeWidth, and fillColor variables, a new variable named style is created (new ol.style.Style()), and the color, type (lineDash), and width of the line are created. (width) is set as strokeColor, strokeLineDash, and strokeWidth, respectively. Also, the color of the fill is specified as fillColor. Finally, the style created in this way is returned as the value of the function (return styles).
이와 같은 함수를 이용하면 건물 객체에 포함된 strokeColor 속성값을 읽어서 선분이나 다각형의 선 색깔을 지정할 수 있으며, 건물마다 각각의 건물주나 임차인이 선호하는 색깔을 사용할 수 있다. 마찬가지로 선 폭은 strokeWidth에서, 선 종류는 strokeLineDash에서, 다각형의 면의 색깔은 fillColor에서 얻어오며, 값이 없을 때에는 기본값을 사용한다. 이와 같은 방법을 사용하면 건물마다, 또 층마다 다른 스타일을 적용하여 평면도를 표현할 수 있으므로, 획일적인 스타일을 사용하지 않아도 된다.Using this function, the line color of a line segment or polygon can be specified by reading the strokeColor property value included in the building object, and each building owner or tenant can use the preferred color for each building. Similarly, the line width is obtained from strokeWidth, the line type is obtained from strokeLineDash, and the polygon face color is obtained from fillColor. If there is no value, the default value is used. Using this method, a floor plan can be expressed by applying different styles for each building and each floor, so there is no need to use a uniform style.
제3 실시예와 같은 상세한 평면도는 줌 레벨이 작을 때는 디지털 지도에 표시할 수 없다. 아무것도 알아볼 수 없을 것이기 때문이다. 따라서 제3 실시예와 같은 실측 기반의 평면도는 건물의 평면도 표시 줌 레벨보다 디지털 지도의 줌 레벨이 훨씬 클 경우에 보여주는 것이 바람직하고, 디지털 지도의 줌 레벨이 평면도 표시 줌 레벨보다 크지만, 실측 기반의 상세한 평면도를 보여주기에는 부적당한 경우에는 실시예 2의 평면도와 같은 간략화된 평면도를 보여주는 것이 바람직하다. 도 42 내지 도 49는 이와 같은 단계별 평면도 표시의 예를 보여준다.A detailed floor plan like that of the third embodiment cannot be displayed on a digital map when the zoom level is small. Because you won't find out anything. Therefore, it is preferable to show the floor plan based on actual measurement as in the third embodiment when the zoom level of the digital map is much larger than the zoom level of the floor plan display of the building. When it is inappropriate to show a detailed plan view of , it is preferable to show a simplified plan view such as the plan view of Example 2. 42 to 49 show examples of such step-by-step plan view display.
도 42에서 디지털 지도의 줌이 작을 경우(zoom = 17)에 OK벤처타운과 그 근방의 건물이 보이지 않는다. 아래에 보이는 대전중앙로지하상가의 외곽선이 보이는 이유는 대전중앙로지하상가 건물의 외곽선 표시 줌 레벨이 훨씬 작기 때문이다.In FIG. 42, when the zoom of the digital map is small (zoom = 17), OK Venture Town and its nearby buildings are not visible. The reason why the outline of the Daejeon Jungang-ro Underground Shopping Mall shown below is visible is that the zoom level of the building outline display is much smaller.
도 43에서 디지털 지도의 줌이 더 커지자(zoom = 18), OK벤처타운과 그 주변의 3개의 건물의 외곽선이 보여진다. 도 44에서 줌이 더 커지자(zoom = 19), 건물의 이름이 건물의 도심(centroid)에 보여지고 있다. 도 45에서 줌이 더 커지자(zoom = 20), 실시예 1에서 보여주었던 간략한 평면도들이 보여지고 있다. 또, 도 45에는 OK벤처타운의 지면층(1층)에 방 번호가 보여지고 있다. 도 45에서 방 번호가 하나만 보이는 이유는 지면층에는 방 번호가 부여된 방이 하나만 있기 때문이다.In FIG. 43, as the zoom of the digital map becomes larger (zoom = 18), the outlines of OK Venture Town and three buildings around it are shown. In Fig. 44, as the zoom becomes larger (zoom = 19), the name of the building is shown in the centroid of the building. In Fig. 45, as the zoom becomes larger (zoom = 20), the simplified top views shown in Example 1 are shown. 45 shows room numbers on the ground floor (1st floor) of OK Venture Town. The reason why only one room number is shown in FIG. 45 is that there is only one room to which a room number is assigned on the ground floor.
도 46에서 줌이 더 커지자(zoom = 21), 실시예 3과 같은 상세한 평면도가 보여지고 있다. 도 47에서 줌이 더 커지자(zoom = 22), 방 번호가 아니라 방의 이름이 보여지고 있다. 도 48과 도 49에서 디지털 지도의 줌이 더 커지자(zoom = 24), 실시예 3의 평면도보다 더 상세한 평면도가 보여지고 있다. 즉, 본 발명의 제4 실시예에서는 건물의 대표 외곽선 도면과 층별 외곽선 도면에 더하여 층별로 3 벌(sets)의 단계별 평면도가 사용되고 있다.As the zoom becomes larger in FIG. 46 (zoom = 21), a detailed plan view like Example 3 is shown. In Fig. 47, as the zoom becomes larger (zoom = 22), the name of the room is shown, not the room number. As the zoom of the digital map becomes larger in FIGS. 48 and 49 (zoom = 24), a more detailed plan view than that of Example 3 is shown. That is, in the fourth embodiment of the present invention, in addition to the representative outline drawing of the building and the outline drawing for each floor, three sets of step-by-step floor plans are used for each floor.
표 3은 본 발명의 제4 실시예에서 건물 외곽선 도면과 평면도 파일 및 그 파일들이 보관된 폴더 구조를 보여준다.Table 3 shows the building outline drawing and floor plan files and the folder structure in which the files are stored in the fourth embodiment of the present invention.
본 발명의 제4 실시예에서는 3벌의 평면도 세트가 사용되었지만, 2벌의 세트나 4벌의 세트를 사용하는 방법도 가능하다. 여기서 단계 0의 평면도의 명칭과 단계 1의 평면도의 명칭과 단계 2의 평면도의 명칭이 모두 동일하다. 단계 0의 평면도는 L0 폴더에 있으며, 단계 1의 평면도는 L1 폴더에 있고, 단계 2의 평면도는 L2 폴더에 있다. 단계 1의 평면도는 단계 0의 평면도보다 더 상세하며, 단계 2의 평면도는 단계 1의 평면도보다 더 상세하다.Although three sets of floor plans are used in the fourth embodiment of the present invention, a method of using two sets or four sets is also possible. Here, the name of the plan view of
표 4는 줌 레벨에 따라서 라벨(label)과 실내 지도가 보여지는 방식을 요약한 것이다.Table 4 summarizes the way labels and indoor maps are displayed according to zoom level.
디지털 지도의 줌 레벨이 zoomQueryingBuildingTable 이하일 경우에는 건물을 데이터베이스에서 검색하는 작업을 아예 하지 않는다. 디지털 지도의 줌 레벨이 zoomQueryingBuildingTable의 값인 15 이상이면, 뷰 범위에 있는 건물들을 검색한다. 뷰 범위에 있는 건물들에 대하여 데이터베이스를 조회하여, 건물들에 대하여 zoomShowBld, zoomShowBldLabel 등의 값을 조회하여 지역 변수(local variable)에 저장한다. 디지털 지도의 줌 레벨이 zoomShowBld 이상이면 건물 외곽선 도면을 표시하고, zoomShowFloor 이상이면 건물 외곽선 도면에 더하여 단계 0의 평면도를 표시한다. 줌 레벨이 zoomShowFloorL1 이상이 되면 단계 0의 평면도를 제거하고, 단계 1의 평면도를 표시한다. 줌 레벨이 다시 zoomShowFloorL2 이상이 되면 단계 1의 평면도를 제거하고, 단계 2의 평면도를 표시한다.If the zoom level of the digital map is lower than zoomQueryingBuildingTable, the building search operation in the database is not performed at all. If the zoom level of the digital map is 15 or higher, which is the value of zoomQueryingBuildingTable, buildings within the view range are searched. The database is searched for buildings in the view range, and values such as zoomShowBld and zoomShowBldLabel are searched for buildings and stored in local variables. If the zoom level of the digital map is higher than zoomShowBld, the building outline drawing is displayed, and if it is higher than zoomShowFloor, the floor plan of
이와 별개로 디지털 지도의 줌 레벨이 zoomShowBldLabel보다 클 때 건물의 이름이 표시되지만, 줌 레벨이 zoomShowSpaceNo 이상이 되면, 건물의 이름이 제거되고 방 번호가 표시되며, 줌 레벨이 다시 zoomShowSpaceName 이상이 되면 방 번호가 제거되고, 방 이름이 대신 표시된다.Separately, when the zoom level of the digital map is greater than zoomShowBldLabel, the building name is displayed, but when the zoom level is greater than zoomShowSpaceNo, the building name is removed and the room number is displayed, and when the zoom level is greater than zoomShowSpaceName again, the room number is displayed. is removed, and the room name is displayed instead.
이와 같은 본 발명의 제2 실시예 내지 제4 실시예의 발명을 통합하는 디지털 지도 시스템(digital map system)은 사용자 단말기(user terminal)에 실외 지도와 실내 지도를 통합적으로 표시하는, 매체에 저장된 컴퓨터 프로그램을 포함한다. 사용자 단말기는 스마트폰과 컴퓨터를 포함한다. 이 시스템은 사용자 단말기와, 실외 지도 서버(outdoor map server)와, 건물들의 실내 지도 도면(indoor map drawings)을 건물별로 각각 개별 폴더(individual folder)에 관리하는 데이터 저장소(data store)와, 실외 지도(outdoor map) 상의 올바른 위치에 건물들(buildings)의 실내 지도(indoor map)를 표시하기 위한 지도 설정 데이터(map setting data)를 관리하는 건물 데이터베이스(building database)와, 사용자 단말기에서 디지털 지도가 실행되는데 필요한 컴퓨터 프로그램이 저장된 기록 매체(recording medium)를 포함하는 웹 서버(web server)를 포함한다.A digital map system incorporating the inventions of the second to fourth embodiments of the present invention is a computer program stored in a medium that integrally displays an outdoor map and an indoor map on a user terminal. includes User terminals include smart phones and computers. This system consists of a user terminal, an outdoor map server, a data store that manages indoor map drawings of buildings in individual folders for each building, and an outdoor map. A building database that manages map setting data for displaying an indoor map of buildings at the correct location on the outdoor map, and a digital map is executed in the user terminal It includes a web server including a recording medium on which a computer program required to be used is stored.
각각의 건물의 실내 지도 도면은 층별 건물 외곽선 도면(building outline drawing per level)과, 지면층(ground floor) 또는 지면층에 가장 가까운 층의 건물 외곽선 도면의 복사본(copy)인 대표 외곽선 도면(representative building outline drawing)과, 층별로 n 벌의 평면도(n set of floorplans per level)를 포함한다. 여기서 n은 자연수(natural number)이며, 층별로 2벌 이상인 평면도는 사용자 단말기에 표시되는 디지털 지도의 줌 레벨(zoom level)의 구간(interval)이 다르다.The indoor map drawing of each building is a representative building outline drawing, which is a copy of the building outline drawing per level and the building outline drawing of the ground floor or the floor closest to the ground floor. outline drawing, and n sets of floorplans per level. Here, n is a natural number, and two or more floor plans for each floor have different zoom level intervals of the digital map displayed on the user terminal.
건물들의 각 층(floor)의 외곽선 도면은 지오제이슨 객체(GeoJSON object)로 주어진다. 이 객체를 건물 객체(building object)라 지칭한다. 건물 객체는 하나의 다각형(polygon)을 포함하는 속성객체(Feature) 또는 속성집단객체(FeatureCollection)로 주어지고, 건물 객체의 조회 가능한 속성(queryable properties)은 건물 아이디(building ID)를 포함한다.Outline drawings of each floor of buildings are given as GeoJSON objects. We refer to this object as a building object. A building object is given as a feature or feature collection containing one polygon, and queryable properties of the building object include a building ID.
건물들의 각 층(floor)의 n 벌의 평면도도 지오제이슨 객체(GeoJSON object)로 주어지는데, 이를 평면도 객체(floorplan object)라 지칭한다. 평면도 객체는 하나 이상의 다각형이나 연결된 선분을 포함하는 속성객체(Feature) 또는 속성집단객체(FeatureCollection)로 주어지며, 평면도 객체의 조회 가능한 속성(queryable properties)은 건물 아이디(building ID)와 층(floor)과, 선 색깔(stroke color)과 선 폭(stroke width)과 선 종류(strokeLineDash)와 면 색깔(fill color)을 포함한다. 디지털 지도 시스템을 구동하는 컴퓨터 프로그램은 평면도 객체의 속성을 조회하여 그 속성으로 평면도를 표현(render)한다.n sets of floor plans of each floor of the building are also given as a GeoJSON object, which is referred to as a floorplan object. A floor plan object is given as a Feature or FeatureCollection containing one or more polygons or connected line segments, and the queryable properties of the floor plan object are building ID and floor. and, stroke color, stroke width, line type (strokeLineDash), and fill color. A computer program that drives the digital map system queries the properties of a floor plan object and renders a floor plan with those properties.
디지털 지도 시스템은 실외 지도와 실내 지도를 통합적으로 표시하기 위하여 일련의 단계들(series of stages)을 실행한다. 일련의 단계들은 디지털 지도를 초기 설정 값(initial map setting)으로 시작하여 디지털 지도의 뷰(view)에 실외 지도를 보여주는 단계, 사용자에 의한 줌(zoom), 팬(pan), 회전(rotate) 작용에 맞게 뷰에 보여지는 실외 지도를 갱신하는 단계, 디지털 지도의 줌 레벨(zoom level)이 사전에 설정한 값(preset threshold zoom value) 이상이면 건물 데이터베이스를 검색하여 뷰 범위 건물 목록(view extent building list)을 작성하는 단계를 포함한다.The digital map system executes a series of stages to display the outdoor map and the indoor map integrally. The series of steps starts with the initial map settings, displays the outdoor map in the view of the digital map, and zooms, pans, and rotates by the user. Updating the outdoor map shown in the view according to the view, if the zoom level of the digital map is higher than a preset threshold zoom value, the building database is searched and the view extent building list ), including the step of writing.
뷰 범위 건물 목록에 있는 건물들의 숫자가 0보다 크면 그 중에서 디지털 지도의 줌 레벨이 건물의 외곽선 표시 줌 레벨(zoom level for showing building outline)보다 큰 건물들의 대표 외곽선 도면을 건물 데이터 저장소에서 가져와서 실외 지도상의 올바른 위치에 표시하고, 대표 외곽선 도면이 표시된 건물들 중 디지털 지도의 줌 레벨이 건물의 평면도 표시 줌 레벨(zoom level for showing floorplan)보다 크고 지면층이 있는 건물들의 목록을 작성한다. 이 목록을 평면도 표시 대상 건물 목록(floorplan to show building list) floorplanIDsToShow이라고 지칭한다.If the number of buildings in the view range building list is greater than 0, the representative outline drawings of the buildings whose zoom level of the digital map is greater than the zoom level for showing building outline are imported from the building data storage and displayed outdoors. Mark the right location on the map, and among the buildings on which the representative outline drawing is displayed, the zoom level of the digital map is greater than the zoom level for showing floorplan of the building and a list of buildings with a ground floor is created. This list is referred to as floorplan to show building list floorplanIDsToShow.
다음으로, 평면도 표시 대상 건물 목록에 있는 건물의 대표 외곽선 도면을 제거하고, 지면층의 건물 외곽선 도면과 디지털 지도의 줌 레벨에 부합하는 지면층의 평면도를 건물 데이터 저장소에서 가져와서 실외 지도상의 올바른 위치에 표시한다.Next, remove the representative outline drawing of the building in the list of buildings to be displayed on the floor plan, and import the building outline drawing of the ground floor and the floor plan of the ground floor that corresponds to the zoom level of the digital map from the building data storage to determine the correct location on the outdoor map. display on
사용자에 의한 줌 작용으로 디지털 지도의 줌 레벨이 변경되면, 디지털 지도의 줌 레벨과 지면층의 평면도의 줌 레벨 구간을 비교하고, 디지털 지도의 줌 레벨과 지면층의 평면도의 줌 레벨 구간이 부합하지 않으면 지면층의 평면도를 제거하고 디지털 지도의 줌 레벨에 부합하는 지면층의 평면도를 건물 데이터 저장소에서 가져와서 지면층의 건물 외곽선에 부합하게 표시한다.When the zoom level of the digital map is changed by the user's zoom action, the zoom level of the digital map and the zoom level range of the ground floor plan are compared, and the zoom level of the digital map and the zoom level range of the ground floor plan do not match. If not, the floor plan of the ground floor is removed, and the floor plan of the ground floor corresponding to the zoom level of the digital map is fetched from the building data storage and displayed according to the building outline of the ground floor.
일련의 단계들은 층 선택 서브루틴(floor selection subroutine)을 실행하는 단계를 더 포함한다. 층 선택 서브루틴은 중앙의 건물이 있는지 확인하는 단계, 중앙의 건물이 있으면 지하층이 있거나 다층 건물인지 확인하는 단계, 중앙의 건물이 지하층이 있거나 다층 건물이면 층을 선택할 수 있는 메뉴를 표시하는 단계, 사용자가 현재층(current floor)과 다른 층을 선택하면 현재 표시된 중앙의 건물의 외곽선 도면을 제거하는 단계, 중앙의 건물의 현재층의 평면도가 뷰에 표시되어 있으면 제거하는 단계, 중앙의 건물의 선택한 층의 건물 외곽선 도면을 데이터 저장소에서 가져와서 실외 지도상의 올바른 위치에 표시하는 단계, 중앙의 건물의 선택한 층의 평면도 중 디지털 지도의 줌 레벨에 부합하는 평면도를 데이터 저장소에서 가져와서 선택한 층의 건물 외곽선 도면에 부합하게 표시하는 단계를 포함한다.The series of steps further includes executing a floor selection subroutine. The floor selection subroutine checks whether there is a central building, if so, checks whether the central building has a basement or a multi-story building, displays a menu for selecting a floor if the central building has a basement or a multi-story building, If the user selects a floor different from the current floor, removing the outline drawing of the currently displayed central building, removing if the current floor plan of the central building is displayed in the view, removing the selected central building The step of importing the building outline drawing of the floor from the data store and displaying it at the correct location on the outdoor map, among the floor plans of the selected floor of the central building, the floor plan that corresponds to the zoom level of the digital map is imported from the data storage and the building outline of the selected floor It includes the step of marking in accordance with the drawing.
실측 기반의 평면도를 실외 지도 위에 중첩하여 표시함으로써 사람들이 관련 정보를 쉽게 파악할 수 있으므로 백화점이나 상가 건물이나 공항, 지하철에서의 길 안내, 아파트의 분양 광고, 호텔이나 모텔의 방(room) 안내, 화재 등 재난 시 구조 및 탈출을 위한 지도 등으로 사용될 수 있다.By superimposing a floor plan based on actual measurements on an outdoor map, people can easily grasp related information, so it can be used for directions in department stores, shopping malls, airports, subways, sales advertisements for apartments, room information in hotels and motels, fire It can be used as a map for rescue and escape in case of disaster.
N: 북향거리
E: 동향거리
I: 북향거리 대응 정수
J: 동향거리 대응 정수
F: 지상상층(floors above ground floor)
G: 지면층
B: 지하층N: northbound street
E: eastward distance
I: Integer corresponding to northbound distance
J: Integer corresponding to eastward distance
F: floors above ground floor
G: ground layer
B: Basement
Claims (13)
거리(distance)의 단위를 가지는 국지좌표계(local coordinate system)에서 건물의 어느 한 층의 평면도(floorplan)를 포함하는 CAD 도면(drawing)을 준비하는 단계,
건물에 대하여 상대적으로 고정된 기준점(reference point)과 기준선(reference line)을 설정하는 단계,
GPS 수신기를 이용하여 평면직각좌표계(plane rectangular coordinate system)에서 기준점의 좌표와 기준선의 방향을 결정하는 단계,
결정된 기준점의 좌표와 기준선의 방향을 이용하여 CAD 도면의 국지좌표계를 평면직각좌표계로 변환하는 단계,
평면도상의 좌표들을 평면직각좌표계의 좌표에서 지리 좌표계(geographic coordinate system)의 좌표로 변환하는 단계를 포함하는 것을 특징으로 하는,
건물의 어느 한 층의 실내 지도를 작성하는 방법.
In the method of creating an indoor map of a floor of a building using a GPS (Global Positioning System) receiver and CAD (Computer Aided Design) software,
Preparing a CAD drawing including a floorplan of any one floor of a building in a local coordinate system having a unit of distance;
Setting a relatively fixed reference point and reference line with respect to the building;
Determining the coordinates of the reference point and the direction of the reference line in a plane rectangular coordinate system using a GPS receiver;
converting the local coordinate system of the CAD drawing into a plane Cartesian coordinate system using the coordinates of the determined reference point and the direction of the reference line;
Characterized in that it comprises the step of converting the coordinates on the plan view from the coordinates of the plane rectangular coordinate system to the coordinates of the geographic coordinate system,
How to create an indoor map of any one floor of a building.
거리의 단위를 가지는 국지좌표계에서 건물의 어느 한 층의 평면도를 포함하는 CAD 도면을 준비하는 단계는;
건물에 대하여 상대적으로 고정된 한 점을 미터법(metric system)을 사용하는 좌표계의 원점(origin)으로 선정하는 단계,
평면도를 작성할 건물의 어느 한 층을 선택하는 단계,
해당 층의 건물 외곽선을 연결된 선분(connected line segments)이나 다각형(polygon)으로 포함하는 평면도(floorplan)를 포함하는 CAD 도면을 준비하는 단계를 포함하는 것을 특징으로 하는,
건물의 어느 한 층의 실내 지도를 작성하는 방법.
According to claim 1,
Preparing a CAD drawing including a plan view of any one floor of a building in a local coordinate system having a unit of distance;
Selecting a relatively fixed point with respect to the building as the origin of a coordinate system using a metric system;
Selecting a floor of a building to create a floor plan;
Characterized in that it comprises the step of preparing a CAD drawing including a floorplan including the building outline of the floor as connected line segments or polygons,
How to create an indoor map of any one floor of a building.
건물에 대하여 상대적으로 고정된 기준점과 기준선을 설정하는 단계는;
건물 외벽의 두 점을 선택하는 단계,
건물 외벽의 두 점으로부터 건물과 각각 일정한 거리만큼 이격된 기준점과 끝점을 선정하는 단계,
기준점과 끝점을 연결하는 기준선을 설정하는 단계를 포함하는 것을 특징으로 하는,
건물의 어느 한 층의 실내 지도를 작성하는 방법.
According to claim 1,
Setting relatively fixed reference points and reference lines with respect to the building;
Selecting two points on the outer wall of the building;
Selecting a reference point and an endpoint spaced apart from the building by a certain distance from two points on the outer wall of the building,
Characterized in that it comprises the step of setting a reference line connecting the reference point and the end point,
How to create an indoor map of any one floor of a building.
GPS 수신기를 이용하여 평면직각좌표계에서 기준점의 좌표와 기준선의 방향을 결정하는 단계는;
GPS 수신기를 이용하여 기준점과 끝점의 위치 정보를 평면직각좌표계의 좌표로 획득하는 단계,
평면직각좌표계의 좌표축에 대한 기준선의 방향을 계산하는 단계를 포함하는 것을 특징으로 하는,
건물의 어느 한 층의 실내 지도를 작성하는 방법.
According to claim 3,
The step of determining the coordinates of the reference point and the direction of the reference line in the plane Cartesian coordinate system using the GPS receiver;
Acquiring location information of a reference point and an end point as coordinates of a plane Cartesian coordinate system using a GPS receiver;
Comprising the step of calculating the direction of the reference line with respect to the coordinate axis of the plane Cartesian coordinate system,
How to create an indoor map of any one floor of a building.
결정된 기준점의 좌표와 기준선의 방향을 이용하여 CAD 도면의 국지좌표계를 평면직각좌표계로 변환하는 단계는;
원점에 대한 국지 좌표를 가지는 기준점 - 이하, 상대적인 기준점이라 지칭함 - 과 끝점 - 이하, 상대적인 끝점이라 지칭함 - 과 기준선 - 이하, 상대적인 기준선이라 지칭함 - 을 CAD 도면에 추가하는 단계,
GPS 수신기로 획득한 평면직각좌표계에서의 좌표를 가지는 기준점 - 이하, 절대적인 기준점이라 지칭함 - 과 끝점 - 이하, 절대적인 기준점이라 지칭함 - 을 CAD 도면에 추가하는 단계,
절대적인 기준점과 끝점을 연결하는 절대적인 기준선을 추가하는 단계,
CAD 도면에서 평면도와 상대적인 기준점과 끝점과 기준선을 함께 이동하여 상대적인 기준점이 절대적인 기준점과 일치하도록 하는 단계,
CAD 도면에서 상대적인 기준선의 방향이 절대적인 기준선의 방향과 일치하도록 평면도와 상대적인 기준점과 끝점과 기준선을 상대적인 기준점을 중심으로 함께 회전시키는 단계를 포함하는 것을 특징으로 하는,
건물의 어느 한 층의 실내 지도를 작성하는 방법.
According to claim 3,
The step of converting the local coordinate system of the CAD drawing into a planar Cartesian coordinate system using the coordinates of the determined reference point and the direction of the reference line;
Adding a reference point - hereinafter referred to as a relative reference point - and an end point - hereinafter referred to as a relative endpoint - and a reference line - hereinafter referred to as a relative reference line - having local coordinates with respect to the origin to the CAD drawing;
Adding a reference point - hereinafter referred to as an absolute reference point - and an end point - hereinafter referred to as an absolute reference point - having coordinates in the plane Cartesian coordinate system obtained by the GPS receiver to the CAD drawing;
Adding absolute reference lines connecting absolute reference points and endpoints;
In the CAD drawing, moving the relative reference point, end point, and reference line together with the plan view so that the relative reference point coincides with the absolute reference point;
Rotating the plan view, the relative reference point, the end point, and the reference line together around the relative reference point so that the direction of the relative reference line in the CAD drawing coincides with the direction of the absolute reference line.
How to create an indoor map of any one floor of a building.
평면도상의 좌표들을 평면직각좌표계의 좌표에서 지리 좌표계의 좌표로 변환하는 단계는;
CAD 도면에서 평면도를 제외한 나머지 작도 요소(作圖要素, drawn elements)들을 삭제하는 단계,
CAD 도면을 지오제이슨(GeoJSON) 파일로 저장하되, 투사 방식은 지리 좌표계(geographic coordinate system)를 따르도록 하는 단계를 포함하는 것을 특징으로 하는,
건물의 어느 한 층의 실내 지도를 작성하는 방법.
According to claim 3,
The step of converting the coordinates on the plan view from the coordinates of the planar Cartesian coordinate system to the coordinates of the geographic coordinate system;
The step of deleting the remaining drawing elements (作圖要素, drawn elements) from the CAD drawing,
Saving the CAD drawing as a GeoJSON file, characterized in that it includes the step of making the projection method follow the geographic coordinate system,
How to create an indoor map of any one floor of a building.
실외 지도 서버(outdoor map server)와,
건물들의 실내 지도 도면(indoor map drawings)을 건물별로 각각 개별 폴더(individual folder)에 관리하는 데이터 저장소(data store)와,
실외 지도(outdoor map)상의 올바른 위치에 건물들(buildings)의 실내 지도(indoor map)를 표시하기 위한 지도 설정 데이터(map setting data)를 관리하는 건물 데이터베이스(building database)와,
사용자 단말기에서 디지털 지도가 실행되는데 필요한 컴퓨터 프로그램이 저장된 기록 매체(recording medium)를 포함하는 웹 서버(web server)를 포함하되,
각각의 건물의 실내 지도 도면은;
층별 건물 외곽선 도면(building outline drawing per level)과,
지면층(ground floor) 또는 지면층에 가장 가까운 층의 건물 외곽선 도면의 복사본(copy)인 대표 외곽선 도면(representative building outline drawing)과,
층별로 n 벌의 평면도(n set of floorplans per level)를 포함하되,
여기서 n은 자연수(natural number)이며,
층별로 2벌 이상인 평면도는 사용자 단말기에 표시되는 디지털 지도의 줌 레벨(zoom level)의 구간(interval)이 다르고,
건물들의 각 층(floor)의 외곽선 도면은 지오제이슨 객체(GeoJSON object) - 이하, 건물 객체(building object)라 지칭함 - 로 주어지되,
건물 객체는 하나의 다각형(polygon)을 포함하는 속성객체(Feature) 또는 속성집단객체(FeatureCollection)로 주어지고,
건물 객체의 조회 가능한 속성(queryable properties)은 건물 아이디(building ID)를 포함하는 것을 특징으로 하는,
사용자 단말기에 실외 지도와 실내 지도를 통합적으로 표시하는, 매체에 저장된 컴퓨터 프로그램을 포함하는 디지털 지도 시스템(digital map system).
a user terminal; and
an outdoor map server;
A data store that manages indoor map drawings of buildings in individual folders for each building;
A building database that manages map setting data for displaying an indoor map of buildings at the correct location on the outdoor map;
A web server including a recording medium in which a computer program necessary for executing a digital map in a user terminal is stored,
The indoor map drawing of each building is;
A building outline drawing per level;
A representative building outline drawing, which is a copy of the building outline drawing of the ground floor or the floor closest to the ground floor;
Including n sets of floorplans per level,
where n is a natural number,
For floor plans with two or more sets per floor, the interval of the zoom level of the digital map displayed on the user terminal is different,
The outline drawing of each floor of the buildings is given as a GeoJSON object - hereinafter referred to as a building object -
A building object is given as a feature or feature collection containing a single polygon,
Characterized in that the queryable properties of the building object include a building ID,
A digital map system including a computer program stored in a medium that integrally displays an outdoor map and an indoor map on a user terminal.
개별 폴더에 이르는 전체 경로(full path)는 공통 경로(common path)와 개별 폴더명(individual folder name)을 포함하고,
개별 폴더명은 건물의 대표 위치의 측지 위도와 경도에 대응하는 하나의 문자열 P로 다음과 같은 형식으로 주어지되,
여기서 N, E, , 는 각각 북향거리(northing), 동향거리(easting), 북향거리 대응 정수(northing corresponding integer) 및 동향거리 대응 정수(easting corresponding integer)를 나타내는 식별 문자이고,
중괄호(curly brackets) {}는 중괄호를 그 안의 식별 문자에 대응하는 실제 값으로 대체하라는 기호이며,
북향거리 N은 다음과 같이 주어지되,
여기서 R은 지구의 평균 반경이며,
각도의 단위는 라디안(radian)이고,
동향거리 E는 다음과 같이 주어지며,
북향거리 대응 정수 과 동향거리 대응 정수 는 각각 북향거리 N과 동향거리 E를 반올림하여 얻어지는 자연수(natural number)인 것을 특징으로 하는,
사용자 단말기에 실외 지도와 실내 지도를 통합적으로 표시하는, 매체에 저장된 컴퓨터 프로그램을 포함하는 디지털 지도 시스템.
According to claim 7,
A full path to an individual folder includes a common path and an individual folder name,
The individual folder name is given in the following format with one character string P corresponding to the geodetic latitude and longitude of the representative location of the building,
where N, E, , are identification characters representing northing, easting, northing corresponding integer and easting corresponding integer, respectively;
The curly brackets {} are symbols to replace the curly brackets with the actual value corresponding to the identifying character within them,
The northbound distance N is given by
where R is the average radius of the Earth,
The unit of angle is radian,
The eastward distance E is given by
Northbound Distance Corresponding Integer and equidistant distance corresponding integer Is a natural number obtained by rounding off the northward distance N and the eastward distance E, respectively.
A digital map system including a computer program stored in a medium that integrally displays an outdoor map and an indoor map on a user terminal.
건물들의 각 층(floor)의 n 벌의 평면도는 지오제이슨 객체(GeoJSON object) - 이하, 평면도 객체(floorplan object)라 지칭함 - 로 주어지되,
평면도 객체는 하나 이상의 다각형이나 연결된 선분을 포함하는 속성객체(Feature) 또는 속성집단객체(FeatureCollection)로 주어지며,
평면도 객체의 조회 가능한 속성(queryable properties)은 건물 아이디(building ID)를 포함하는 것을 특징으로 하는,
사용자 단말기에 실외 지도와 실내 지도를 통합적으로 표시하는, 매체에 저장된 컴퓨터 프로그램을 포함하는 디지털 지도 시스템.
According to claim 7,
n sets of floor plans of each floor of buildings are given as a GeoJSON object - hereinafter referred to as a floorplan object -
A floor plan object is given as a feature object (Feature) or a feature collection object (FeatureCollection) containing one or more polygons or connected line segments,
Characterized in that the queryable properties of the floor plan object include a building ID,
A digital map system including a computer program stored in a medium that integrally displays an outdoor map and an indoor map on a user terminal.
평면도 객체의 조회 가능한 속성은 선 색깔(stroke color)과 선 폭(stroke width)과 선 종류(strokeLineDash)와 면 색깔(fill color)을 포함하고,
컴퓨터 프로그램은 평면도 객체의 속성을 조회하여 그 속성으로 평면도를 표현(render)하는 단계를 포함하는 것을 특징으로 하는,
사용자 단말기에 실외 지도와 실내 지도를 통합적으로 표시하는, 매체에 저장된 컴퓨터 프로그램을 포함하는 디지털 지도 시스템.
According to claim 7,
Queryable properties of a floor plan object include stroke color, stroke width, line type (strokeLineDash), and fill color.
Characterized in that the computer program includes the step of querying the properties of the floor plan object and rendering the floor plan with the properties,
A digital map system including a computer program stored in a medium that integrally displays an outdoor map and an indoor map on a user terminal.
디지털 지도 시스템은 실외 지도와 실내 지도를 통합적으로 표시하기 위하여 일련의 단계들(series of stages)을 실행하되,
일련의 단계들은;
디지털 지도를 초기 설정 값(initial map settings)으로 시작하여 디지털 지도의 뷰(view)에 실외 지도를 보여주는 단계,
사용자에 의한 줌(zoom), 팬(pan), 회전(rotate) 작용에 맞게 뷰에 보여지는 실외 지도를 갱신하는 단계,
디지털 지도의 줌 레벨(zoom level)이 사전에 설정한 값(preset threshold zoom value) - 이하, 데이터베이스 검색 줌 레벨이라 지칭함 - 이상이면 건물 데이터베이스를 검색하여 지리적 위치(geographic location)가 뷰 범위(view extent)에 포함되는 건물들의 목록 - 이하, 뷰 범위 건물 목록(view extent building list)이라 지칭함 - 을 작성하는 단계,
뷰 범위 건물 목록에 있는 건물들의 숫자가 0보다 크면 그 중에서 디지털 지도의 줌 레벨이 건물의 외곽선 표시 줌 레벨(zoom level for showing building outline)보다 큰 건물들의 대표 외곽선 도면을 건물 데이터 저장소에서 가져와서 실외 지도 상의 올바른 위치에 표시하는 단계,
대표 외곽선 도면이 표시된 건물들 중 디지털 지도의 줌 레벨이 건물의 평면도 표시 줌 레벨(zoom level for showing floorplan)보다 크고 지면층이 있는 건물들의 목록 - 이하, 평면도 표시 대상 건물 목록(floorplan to show building list) - 을 작성하는 단계,
평면도 표시 대상 건물 목록에 있는 건물의 대표 외곽선 도면을 제거하고, 지면층의 건물 외곽선 도면과 디지털 지도의 줌 레벨에 부합하는 지면층의 평면도를 건물 데이터 저장소에서 가져와서 실외 지도상의 올바른 위치에 표시하는 단계,
사용자에 의한 줌 작용으로 디지털 지도의 줌 레벨이 변경되면, 디지털 지도의 줌 레벨과 지면층의 평면도의 줌 레벨 구간을 비교하는 단계,
디지털 지도의 줌 레벨과 지면층의 평면도의 줌 레벨 구간이 부합하지 않으면 지면층의 평면도를 제거하고 디지털 지도의 줌 레벨에 부합하는 지면층의 평면도를 건물 데이터 저장소에서 가져와서 지면층의 건물 외곽선에 부합하게 표시하는 단계를 포함하는 것을 특징으로 하는,
사용자 단말기에 실외 지도와 실내 지도를 통합적으로 표시하는, 매체에 저장된 컴퓨터 프로그램을 포함하는 디지털 지도 시스템.
According to claim 7,
The digital map system executes a series of stages to display the outdoor map and the indoor map integrally,
The series of steps are;
Starting the digital map with initial map settings and showing the outdoor map in the view of the digital map;
Updating the outdoor map displayed in the view according to the zoom, pan, and rotate actions by the user;
If the zoom level of the digital map is greater than or equal to the preset threshold zoom value (hereafter referred to as the database search zoom level), the building database is searched and the geographic location is set to the view extent (view extent). ) Creating a list of buildings included in - hereinafter referred to as a view extent building list -;
If the number of buildings in the view range building list is greater than 0, the representative outline drawings of the buildings whose zoom level of the digital map is greater than the zoom level for showing building outline are imported from the building data storage and displayed outdoors. Steps to mark the correct location on the map,
Among the buildings on which the representative outline drawing is displayed, the zoom level of the digital map is greater than the zoom level for showing floorplan of the building and the list of buildings with a ground floor - hereinafter, a list of buildings subject to display of a floor plan (floorplan to show building list) ) - the step of writing,
Remove the representative outline drawing of the building in the list of buildings to be displayed on the floor plan, and import the building outline drawing of the ground floor and the floor plan of the ground floor that corresponds to the zoom level of the digital map from the building data storage and display them in the correct location on the outdoor map. step,
When the zoom level of the digital map is changed due to a zooming action by the user, comparing the zoom level of the digital map with the zoom level section of the floor plan;
If the zoom level of the digital map and the zoom level of the ground floor plan do not match, the ground floor plan is removed, and the ground floor plan that matches the zoom level of the digital map is imported from the building data storage and added to the building outline of the ground floor. Characterized in that it includes the step of displaying accordingly,
A digital map system including a computer program stored in a medium that integrally displays an outdoor map and an indoor map on a user terminal.
일련의 단계들은 층 선택 서브루틴(floor selection subroutine)을 실행하는 단계를 더 포함하되,
층 선택 서브루틴은;
뷰의 중심이 건물의 대표 외곽선 또는 층별 외곽선 내에 위치하는 건물 - 이하, 중앙의 건물이라 지칭함 - 이 있는지 확인하는 단계,
중앙의 건물이 있으면 지하층이 있거나 다층 건물인지 확인하는 단계,
중앙의 건물이 지하층이 있거나 다층 건물이면 층을 선택할 수 있는 메뉴를 표시하는 단계,
사용자가 현재층(current floor)과 다른 층을 선택하면 현재 표시된 중앙의 건물의 외곽선 도면을 제거하는 단계,
중앙의 건물의 현재층의 평면도가 뷰에 표시되어 있으면 제거하는 단계,
중앙의 건물의 선택한 층의 건물 외곽선 도면을 데이터 저장소에서 가져와서 실외 지도상의 올바른 위치에 표시하는 단계,
중앙의 건물의 선택한 층의 평면도 중 디지털 지도의 줌 레벨에 부합하는 평면도를 데이터 저장소에서 가져와서 선택한 층의 건물 외곽선 도면에 부합하게 표시하는 단계를 포함하는 것을 특징으로 하는,
사용자 단말기에 실외 지도와 실내 지도를 통합적으로 표시하는, 매체에 저장된 컴퓨터 프로그램을 포함하는 디지털 지도 시스템.
According to claim 12,
The series of steps further includes executing a floor selection subroutine,
The layer selection subroutine;
Checking whether there is a building where the center of the view is located within the representative outline of the building or the outline of each floor - hereinafter referred to as a central building;
If there is a central building, check whether it has a basement or a multi-story building;
If the central building has a basement or a multi-story building, displaying a menu for selecting a floor;
If the user selects a floor different from the current floor, removing the outline drawing of the currently displayed central building;
If the floor plan of the current floor of the central building is displayed in the view, removing it;
Retrieving the building outline drawing of the selected floor of the central building from the data store and displaying it at the correct location on the outdoor map;
Characterized in that, among the floor plans of the selected floor of the central building, a floor plan corresponding to the zoom level of the digital map is retrieved from the data store and displayed in accordance with the building outline drawing of the selected floor.
A digital map system including a computer program stored in a medium that integrally displays an outdoor map and an indoor map on a user terminal.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2023/002366 WO2023167454A1 (en) | 2022-03-02 | 2023-02-20 | Indoor map using actual-measurement-based floor plan, and generation method therefor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220026490 | 2022-03-02 | ||
KR20220026490 | 2022-03-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102553567B1 true KR102553567B1 (en) | 2023-07-10 |
Family
ID=87155924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230018638A KR102553567B1 (en) | 2022-03-02 | 2023-02-13 | Indoor maps using floor plans based on actual measurements and methods for creating them |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102553567B1 (en) |
WO (1) | WO2023167454A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117495666A (en) * | 2023-12-29 | 2024-02-02 | 山东街景智能制造科技股份有限公司 | Processing method for generating 2D data based on 3D drawing |
CN117828728A (en) * | 2023-12-29 | 2024-04-05 | 中煤科工集团信息技术有限公司 | Mining multi-coordinate system GIS layer management and thematic map publishing method and device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR200430083Y1 (en) | 2006-08-24 | 2006-11-03 | 김삼근 | Onestop Road Guidance Information System |
JP4526804B2 (en) * | 2003-07-17 | 2010-08-18 | 東京電力株式会社 | Object position guidance system |
KR20120072124A (en) | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | Method for generating indoor digital map |
KR20130112492A (en) | 2012-04-04 | 2013-10-14 | 현대엠엔소프트 주식회사 | Indoor map authoring device and method thereof |
KR101803598B1 (en) | 2014-09-02 | 2017-12-01 | 네이버비즈니스플랫폼 주식회사 | Apparatus and method system and mtehod for building indoor map using cloud point |
KR20180101074A (en) | 2017-03-03 | 2018-09-12 | 한국전자통신연구원 | Method for providing 3D map information and apparatus for the same |
KR102308960B1 (en) * | 2019-10-09 | 2021-10-06 | 주식회사 에스360브이알 | Methods of specifying global locations including indoor locations and database using the same |
KR102344087B1 (en) * | 2020-02-20 | 2021-12-29 | 주식회사 에스360브이알 | Digital map based online platform |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9417777B2 (en) * | 2013-07-09 | 2016-08-16 | Google Inc. | Enabling quick display transitions between indoor and outdoor map data |
-
2023
- 2023-02-13 KR KR1020230018638A patent/KR102553567B1/en active IP Right Grant
- 2023-02-20 WO PCT/KR2023/002366 patent/WO2023167454A1/en unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4526804B2 (en) * | 2003-07-17 | 2010-08-18 | 東京電力株式会社 | Object position guidance system |
KR200430083Y1 (en) | 2006-08-24 | 2006-11-03 | 김삼근 | Onestop Road Guidance Information System |
KR20120072124A (en) | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | Method for generating indoor digital map |
KR20130112492A (en) | 2012-04-04 | 2013-10-14 | 현대엠엔소프트 주식회사 | Indoor map authoring device and method thereof |
KR101803598B1 (en) | 2014-09-02 | 2017-12-01 | 네이버비즈니스플랫폼 주식회사 | Apparatus and method system and mtehod for building indoor map using cloud point |
KR20180101074A (en) | 2017-03-03 | 2018-09-12 | 한국전자통신연구원 | Method for providing 3D map information and apparatus for the same |
KR102308960B1 (en) * | 2019-10-09 | 2021-10-06 | 주식회사 에스360브이알 | Methods of specifying global locations including indoor locations and database using the same |
KR102344087B1 (en) * | 2020-02-20 | 2021-12-29 | 주식회사 에스360브이알 | Digital map based online platform |
Non-Patent Citations (20)
Title |
---|
[비특 1] Wikipedia(https://en.wikipedia.org/wiki/Google_Maps), "Google Maps". |
[비특 2] 위키백과(https://ko.wikipedia.org/wiki/GeoJSON), "GeoJSON". |
[비특 3] IETF(https://www.rfc-editor.org/rfc/rfc7946), "The GeoJSON Specification: RFC 7946". |
[비특 4] Wikipedia(https://en.wikipedia.org/wiki/World_Geodetic_System), "World Geodetic System". |
[비특 5] 이성곤, "물리탐사 실무자를 위한 측지 좌표계와 지도 투영의 이해", 지구물리와 물리탐사(Geophysics and Geophysical Exploration), vol. 19, no. 4 (2016), pp. 236 ~ 248. |
[비특 6] National Geospatial-intelligence Agency (NGA), "Web Mercator map projection", NGA_SIG_0011_1.0.0_WEBMERC (2014). |
[비특 7] Wikipedia, "Web Mercator projection". |
[특 1] 권경일, "지리상의 위치를 특정하는 방법과 이를 이용하는 데이터베이스 및 데이터베이스의 데이터베이스", 대한민국 등록특허 제10-2234723호, 등록일 2021년 3월 26일. |
[특 11] Seth Jacob Pensack-Rinehart, Gavin Reaney, Yatin Chawathe, Nicholas Lee, Sascha Benjamin Brawer, Paul Messmer, "Providing indoor map data to a client computing device", 미국 공개특허 제2015/0019625호, 공개일 2015년 1월 15일. |
[특 12] Seth Jacob Pensack-Rinehart, Gavin Reaney, Yatin Chawathe, Nicholas Lee, Sascha Benjamin Brawer, Paul Messmer, "Enabling quick display transitions between indoor and outdoor map data", 미국 등록특허 제9,417,777호, 등록일 2016년 8월 16일. |
[특 14] Pornchai Direkwut, "Method and system of generating an indoor floor plan", 미국 등록특허 제10,048,077호, 등록일 2018년 8월 14일. |
[특 16] 임대현, 이진권, "실내지도 작성 방법 및 그 장치", 대한민국 등록특허 제10-1985699호, 등록일 2019년 5월 29일. |
[특 17] 임대현, 이진권, "실내지도 작성 방법 및 그 장치", 대한민국 등록특허 제10-2131999호, 등록일 2020년 7월 2일. |
[특 18] David Kornmann, Julian Charles Mercay, "System and method for geographic data layer management in a geographic information system", 미국 등록특허 제11,132,102호, 등록일 2021년 9월 28일. |
[특 2] 권경일, "실내를 포함하는 지구상의 위치를 특정하는 방법과 이를 이용하는 데이터베이스", 대한민국 등록특허 제10-2308960호, 등록일 2021년 9월 29일. |
[특 3] 권경일, "디지털 지도 기반의 온라인 플랫폼", 대한민국 등록특허 제10-2344087호, 등록일 2021년 12월 23일. |
[특 6] Zhou Bailiang, Jonah Jones, "Floor selection on an interactive digital map", 미국 등록특허 제8,464,181호, 등록일 2013년 6월 11일. |
[특 7] Zhou Bailiang, Jonah Jones, "Floor selection on an interactive digital map", 미국 등록특허 제9,323,420호, 등록일 2016년 4월 26일. |
[특 8] Guanfeng Li, Faen Zhang, Feng Wang, "Generating an indoor map model", 국제 공개특허 WO 2013/104127호, 공개일 2013년 7월 18일. |
[특 9] 김동환, 권연희, 최정아, 김형찬, "실내지도 데이터베이스, 지도 서비스 제공장치 및 방법, 개방형 API를 이용한 실내지도 제공장치, 그리고 실내지도 제작장치 및 방법", 대한민국 등록특허 제10-1312294호, 등록일 2013년 9월 23일. |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117495666A (en) * | 2023-12-29 | 2024-02-02 | 山东街景智能制造科技股份有限公司 | Processing method for generating 2D data based on 3D drawing |
CN117495666B (en) * | 2023-12-29 | 2024-03-19 | 山东街景智能制造科技股份有限公司 | Processing method for generating 2D data based on 3D drawing |
CN117828728A (en) * | 2023-12-29 | 2024-04-05 | 中煤科工集团信息技术有限公司 | Mining multi-coordinate system GIS layer management and thematic map publishing method and device |
Also Published As
Publication number | Publication date |
---|---|
WO2023167454A1 (en) | 2023-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795958B2 (en) | Intelligent distributed geographic information system | |
KR102344087B1 (en) | Digital map based online platform | |
US7353114B1 (en) | Markup language for an interactive geographic information system | |
US7643673B2 (en) | Markup language for interactive geographic information system | |
Simon et al. | A mobile application framework for the geospatial web | |
KR102308960B1 (en) | Methods of specifying global locations including indoor locations and database using the same | |
US11486711B2 (en) | Methods of specifying global locations including indoor locations and database using the same | |
US10008046B2 (en) | Method, apparatus and computer program product for adaptive venue zooming in a digital map interface | |
KR102497681B1 (en) | Digital map based virtual reality and metaverse online platform | |
KR102553567B1 (en) | Indoor maps using floor plans based on actual measurements and methods for creating them | |
Zhou et al. | Customizing visualization in three-dimensional urban GIS via web-based interaction | |
Trisyanti et al. | Low cost web-application for management of 3d digital building and complex based on BIM and GIS | |
EP4042291A1 (en) | Geographically referencing an item | |
CN116842122A (en) | Geographic information system for digital twin city platform | |
Spreafico et al. | 3D WebGIS Applications for Digital Humanities Studies: The Turin 1911 Project | |
Spreafico et al. | 3D WebGIS for Ephemeral Architecture Documentation and Studies in the Humanities | |
US20240378811A1 (en) | Structure anchor elevation query service | |
KR20240097705A (en) | A method of identifying indoor location using qr code | |
Yücel et al. | 3D City Modeling through CityGML | |
Ugyen et al. | Development of 3D Cadastre Strata Building Information Model-An interactive Web-based Prototype | |
Carswell et al. | A Case Study for eCampus Spatial: Business Data Exploration | |
Truong-Hong et al. | Preparing Detailed 3D Building Models for Google Earth Integration | |
Ballatore et al. | Design and development of personal geoservices for universities | |
Carswell et al. | Design and Development of Personal GeoServices for Universities | |
Guide | cadcorp |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |