3차원 공간 질의 오픈소스 라이브러리 개발을 위한 몸부림
2
3
3D GIS 오픈소스 소프트웨어 스택
4
GeoTools 3D
GeoServer WFS 3D
GeoTools / GeoServer
5
FeatureSource
DataStore
Data
Type
Query
Feature
FeatureType
Filter
Function
Expression
WFS
6
DBMS/File
GeoTools
GeoServer
Services/Applications
OS
Cesium/NASA World Wind/QGIS
Ubuntu/CentOS
Oracle/PostGIS
FeatureStore
(Well defined)
GML/ShapeFile...
I/O Plugins
[GeoJSON, ShapeFIle…]
DataStores
[JDBCDataStore/FileDataStore]
Query/Filter
(JTS Only)
WPS Process
(JTS Only)
SQLDialect
Data Management
[Vector, DB]
Services
[WFS, WCS, WPS, WMS]
Web Administration UI
Oracle
PostGIS
SFCGAL Extension
New DataStores
(uses ISO Geometry)
New SQLDialect, I/O Plugin
(type mapping to ISO Geometry)
New FilterFactory,
(uses SFCGAL query evaluation)
WPS Process
(new proc using ISO geometry)
GeoServer 3D Extension
XML Binidng
(JTS Only)
XML Binding
(uses ISO geometry)
WFS 1.1 Service
(uses ISO geometry)
7
2D
3D
SFCGAL (Simple Feature CGAL)?
8
공간정보표준(ISO 19017, OGC Simple Feature) 기반으로
3차원 기하연산을 지원하는 C++ 라이브러리
(http://www.sfcgal.org/)
SFCGAL
SFCGAL (Simple Feature CGAL)?
9
SFCGAL4J [Java wrapper for Simple Feature CGAL(SFCGAL)]
10
C++ Native
SFCGAL4J
Geometry, Algorithm Wrapper
Shared library (*.so)
JNI
libSFCGAL.so
libCGAL.so
Other shared libraries
JavaCPP
(https://github.com/bytedeco/javacpp)
설치
생성
SFCGAL4J 설치 (Ubuntu 16.04)
11
GeoTools에 연결해볼까?
12
SFCGAL4J
13
JTS - GeoTools/GeoServer에서 2차원 연산만을 지원하는 이유
OGC::Simple Feature Access
based on
<Java Class>
JTS::Geometry
14
ISO 19107 spatial schema 기반 인터페이스
<Java Interface>
ISO 19107 Spatial Schema
<Java Class>
ISO 19107 Geometries
Implementation
gt-geometry
15
GeoTools 3D 기하 모듈
GeoTools 3D�ISO Geometry
Geometry
DirectPosition
Point
Curve
...
SFCGAL Converter
SFCGAL
for Java
Geometry
Algorithm
Native
shared libraries
16
17
18
Andrea Aime - 갓 오브 GeoTools 가라사대
19
C++ Native
SFCGAL4J
Java classes
Shared library (*.so)
JNI
libSFCGAL.so
libCGAL.so
Other shared libraries
JavaCPP
.jar
GeoTools의 지원 포맷들
20
21
그래서 실제로 3차원 공간 데이터는 어디에?
22
23
속성
(Attributes)
기하
(Geometry)
식별자
(Identifier)
GeoTools/GeoServer에서 표현하는
Feature
(Simple Feature)
3차원 공간 데이터에서 필요한 표현
(Complex Feature)
24
25
3D
Web Feature Service
GetFeature!
26
developer
developer-user
deployer
end-user
Life cycle of
Open source software
27
28
SFCGAL4J : https://github.com/hgryoo/SFCGAL4J
GeoTools 3D Extension : https://github.com/STEMLab/geotools-3d-extension
GeoServer 3D Extension : https://github.com/STEMLab/geoserver-3d-extension