代表的なオープンソース空間データサーバの1つであるGeoServerは、多くの強力な機能を提供します。 特に、さまざまなデータソースからの空間データへの接続とパブリッシングをサポートします。 GeoServerはOpen Geospatial Consortiumによって地理空間フィーチャデータを要求するために設定された標準プロトコルであるWeb Feature Service(WFS)もサポートしています。 しかしながら、GeoServerは2次元ジオメトリのための関数しか提供しないため、3D空間データを処理する関数はほとんどありません。 GeoServerの重要なコンポーネントであるJTS Topology Suiteは3D空間操作をサポートしていないため、ソリッドジオメトリもサポートしていません。 この講演では、3D空間データを扱うために私たちが実装したGeoServerの拡張モジュールを紹介します。
GeoServer, one of the representative open source spatial data servers, provides many powerful features. In particular, it supports connecting to and publishing spatial data from a variety of data sources. GeoServer also supports Web Feature Service (WFS), which is a standard protocol established by the Open Geospatial Consortium to request geospatial feature data. However, GeoServer provides functions only for two-dimensional geometry, so it provides few functions for handling 3D spatial data. Because JTS Topology Suite, which is an important component of GeoServer, does not support 3D spatial operations, it also does not support solid geometries. In this talk, I will introduce extension modules of GeoServer that we have implemented to handle 3D spatial data.
How to Troubleshoot Apps for the Modern Connected Worker
Foss4 g 2017-kansai-ryoo-kim
1. Development of GeoTools/Geoserver
extension for handling 3-dimensional
geospatial information
Hyung-Gyu Ryoo (hgryoo@pnu.edu)
Soojin Kim (soojin.kim@pnu.edu)
Joonseok Kim (joonseok@pnu.edu)
Ki-Joune Li (lik@pnu.edu)
Pusan National University, South Korea
FOSS4G Kyoto.Kansai 2017
1
6. 66
GeoServer has limitations in handling 3D!
GeoServer can handle and store points, curves and surfaces with z
coordinates
But!
It is impossible to store spatial information with solids
Spatial query processing is performed without z coordinates
8. JTS - limitation for supporting 3D in GeoServer
● JTS geometries can carry a Z coordinate
● What about solid geometries?
● What about 3D spatial operations?
OGC::Simple Feature Access
based on
<Java Class>
JTS::Geometry
8
9. ISO 19107 spatial schema-based interface
<Java Interface>
ISO 19107 Spatial Schema
<Java Class>
ISO 19107 Geometries
Implementation
gt-geometry
● Implementations of ISO Geometry supported as an
unsupported module
● 3D spatial operations are not implemented
9
10. How to support 3D spatial operations
● Existing open source library for 3D spatial operations
○ CGAL (GNU LGPL 3+, GNU GPL 3+)
■ C++, A variety of robust computational geometry algorithms in 3D spaces as well as
2D
■ Different from those in GIS domains
○ Simple Feature CGAL (GNU LGPL 2+) by Oslandia
■ C++, Based on CGAL and Boost
■ Supporting OGC Simple Features Access 1.2 and ISO 19107:2013 for 3D
operations.
10
11. 11
New ISO 19107 Geometry Module
● Support 3D Geometry including Solid
● Support 3D operations
○ distance, area, volume, convexHull...
○ intersects, contains, within...
○ intersection, difference, union...
13. 13
Simple Strategy
1. Use a well-defined interfaces in GeoServer/GeoTools
2. Copy and rewrite classes to support ISO 19107 geometries
3. Leave codes that are not coupled with JTS as much as possible
4. For copied codes, perform unit tests
14. New Open Source 3D GIS Stack
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)
14
17. Next Steps
● Documentation!
● Administration GUI for 3D
● Making a switch between JTS and ISO Geometry
● Supporting WFS 2.0 version to support rich set of advanced
functions
● Test and improve again and again to be stable
17
18. 18
“People think that computer science is the art of geniuses
but the actual reality is the opposite,
just many people doing things that build on each other,
like a wall of mini stones.”
– Donald E. Knuth