Foss4 g 2017-kansai-ryoo-kim

Post on 23-Jan-2018

354 views 2 download

transcript

Development of GeoTools/Geoserver extension for handling 3-dimensional

geospatial informationHyung-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 KoreaFOSS4G Kyoto.Kansai 2017

1

3D GIS

NASA World Wind 3.0 2

Common Open Source 2D GIS Architecture

Spatial Databases

File Sources

Geospatial Server

Desktop Client

Web Client

PostGIS

OpenLayers

QGIS

GeoServer

ESRI Shapefile

Data Source Client

3

Bad Architecture

My Super Server

My Super Server2

My Super Server3

My Super Server4

Data Source

PostGIS

ESRI Shapefile

Client

OpenLayers

QGIS

4

Solution?

?

General 3D Spatial Server!Data Source Client

OpenLayers

QGISSpatial Databases

File

GeoServer (3D)

5

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 solidsSpatial query processing is performed without z coordinates

GeoServer ignore z coordinates

Front ViewView from Above

7

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

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

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

New ISO 19107 Geometry Module

● Support 3D Geometry including Solid

● Support 3D operations○ distance, area, volume, convexHull...○ intersects, contains, within...○ intersection, difference, union...

12

Codes are coupled with JTS!

13

Simple Strategy

1. Use a well-defined interfaces in GeoServer/GeoTools2. Copy and rewrite classes to support ISO 19107 geometries 3. Leave codes that are not coupled with JTS as much as possible4. For copied codes, perform unit tests

New Open Source 3D GIS Stack

DBMS/File

GeoTools

GeoServer

Services/Applications

OS

Cesium/NASA World Wind/QGIS

Ubuntu/CentOSOracle/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 PostGISSFCGAL 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

Demo

GeoServer 3D

Draw

WFSRequest

3D DataStore

WFS Client Highlighting

WFSResponse

RegisterStore

15

Demonstration Video

16

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

“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

Thank you

19

hgryoo@pnu.edu | @hg_ryoo (twitter)soojin.kim@pnu.edu | @soojin_kim_gis (twitter)https://github.com/STEMLab/geotools-3d-extensionhttps://github.com/STEMLab/geoserver-3d-extension