我的github

Author: Hyung-Gyu Ryoo(Pusan National University)

论文:https://scholarworks.umass.edu/cgi/viewcontent.cgi?article=1004&context=foss4g

视频:av.tib.eu/media/40966

摘要:Recently, several open source software tools such as CesiumJS and iTowns have been developed for dealing with 3-dimensional spatial data. These tools mainly focus on visualization of 3D spatial data based on WebGL. An open-sourced server capable of storing, sharing and querying 3D spatial data has not yet been developed. 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 paper, we discuss extension modules of GeoServer that we have implemented to handle 3D spatial data. First, instead of JTS, our modules adopted a geometry model based on the ISO 19107 standard and support 3D spatial operations from the Simple Feature CGAL library. Based on this geometry model, we have implemented new internal data structures that represent spatial information from the Feature interface in GeoServer. Second, we also extended the DataStore module to handle and store 3D spatial information for several data sources such as GeoJSON, GML and PostGIS. Finally, we extended the WFS module to share 3D spatial data via GeoServer

最近,好几个开源的软件工具,例如CesiumJS和iTowns已经开发出来用于处理三维的空间数据。这些工具主要聚焦在WebGL三维空间数据的可视化。一个可以存储、分享和查询3D空间数据的开源服务器还未开发出来。GeoServer,作为一款具有代表性的开源空间数据服务器之一,提供了许多强大的功能。特别是,它支持从各种数据源连接和发布空间数据。GeoServer还支持Web要素服务(WFS),这是Open Geospatial Consortium为请求地理空间要素数据而建立的标准协议。然而,GeoServer仅提供二维几何图形的功能,因此它很少提供处理三维空间数据的功能。因为JTS拓扑套件是GeoServer的重要组件,不支持3D空间操作,它也不支持实体几何图形。在本文中,我们讨论了GeoServer的扩展模块,这些模块是我们为处理三维空间数据而实现的。首先,我们的模块不是JTS,而是采用了基于ISO 19107标准的几何模型,并支持来自Simple Feature CGAL库的3D空间操作。基于此几何模型,我们实现了新的内部数据结构,表示来自GeoServer中Feature接口的空间信息。其次,我们还扩展了DataStore模块,以处理和存储GeoJSON、GML和PostGIS等多个数据源的3D空间信息。最后,我们扩展了WFS模块,通过GeoServer共享三维空间数据。

1. Introduction

最近,一些处理3D空间数据的开源软件工具,如CesiumJS(AGI 2017)和iTown(Oslandia 2016)都得到了积极开发。其中大多数主要关注于在客户端环境中可视化3D空间数据。然而,用于向这种可视化工具提供三维空间数据的通用空间数据服务器尚未开发,因此客户很难为三维空间信息提供服务。为了向用户提供地理空间web服务,有必要开发一个能够共享和查询三维空间数据的空间数据服务器。

GeoServer(GeoServer 2001)是一个典型的开源空间数据服务器,它提供了多种符合开放标准的空间数据源。它支持处理空间数据的文件格式,例如GeoJSON(Butler等人,2008)和shapefile(ESRI 1998),以及地理空间数据库管理系统(DBMS),例如PostGIS(PostGIS 2001)和Oracle spatial and Graph(Oracle 2016)。GeoServer允许用户以插件的形式添加新的数据存储。基于这些不同的空间数据源,GeoServer是地理空间web服务中的一个重要组件,它通过实现开放地理空间联盟(OGC)建立的开放地理空间web服务,例如web地图服务(Service 2006)、web要素服务(WFS/FES 2005)和web处理服务(Service 2015),提供共享和查询空间数据的功能。

尽管GeoServer作为通用空间数据服务器功能强大,但在处理3D空间数据方面存在局限性。例如,无法将由闭合曲面包围的实体的空间信息存储到数据存储中,也无法从数据源加载这些信息。GeoServer可以使用三维坐标处理和存储点、曲线和曲面。然而,GeoServer几乎不支持三维空间查询,因为它只执行忽略z坐标的空间查询处理。

这些限制源于GeoServer中表示空间信息的数据结构。JTS拓扑套件(Java Topology Suite)是用Java(Tech 2000)编写的基本库,是GeoServer用于几何图形的核心组件。在JTS的顶部,GeoServer为各种2D几何图形提供了许多空间操作和实用功能。在大多数实现中,假设特征的几何属性表示为JTS库的几何。换句话说,GeoServer与JTS紧密耦合。因此,有必要替换GeoServer的JTS,以在3D中提供全功能特征。

 Figure 1: Overview of our extension of GeoServer to support 3D spatial data

 在本文中,我们介绍了我们对GeoServer的扩展,以支持图1所示的3D空间数据(STEMLab 2015,STEMLab 2016)。我们对GeoServer和开源社区的贡献总结如下:

• We have taken the initiative to implement a fully functional open-sourced data server for 3D spatial data.

• We carefully examined GeoServer from bottom to top to determine how to add a 3D extension.

• We identified requirements and issues for a 3D spatial data server based on GeoServer.

• We built a feasible full stack composed of open source software

本文的结构如下。我们在第2节中调查了相关工作并提出了3D空间数据服务器的需求。在第3节中,我们介绍了使用基于ISO 19107空间模式(ISO/TC211 2003)的几何模型在GeoServer中存储3D几何体的数据结构实现。第4节描述了可以基于第3节实现的数据结构存储和查询3D几何图形的数据存储。在第5节中,我们描述了对Web Feature Service协议的支持,以共享3D空间信息。在第6节中,我们总结了本文,并讨论了当前的局限性和未来的工作。

2. Related Work

有几个DBMS可以存储三维空间数据并对空间信息执行查询处理。Oracle Spatial and Graph是一个具有代表性的商业数据库,支持大多数空间操作和3D空间数据类型,包括实心几何图形。PostGIS是一种广泛使用的开源空间数据库,部分支持3D空间数据类型和操作。尽管空间数据库管理系统是操作空间数据的基础,但为了满足各种地理空间应用程序的需要,需要通用的接口和工具。例如,用户可能需要覆盖和操作来自不同数据源的多个层,而不必担心每个数据存储上的不同实现。

 

源代码:https://github.com/STEMLab/geoserver-3d-extension/commits?author=hgryoo

Commits on Jul 23, 2018 Merge pull request #1 from STEMLab/geoserver3d-web-ui

Commits on Sep 15, 2017  added kvp

Commits on May 23, 2017  added transaction handlers && testing wfs 1.1

Commits on May 21, 2017 added FeatureColllectionTypeBinding for ISO &&  added gs-main-iso in wfs

Commits on May 17, 2017  testing WFS 1.1 GetFeature

Commits on May 16, 2017   set as community module and added Retyping && added wfs ui

Commits on May 10, 2017 added LayerPage for 3D and Resource configuration page

Commits on May 9, 2017  init web-iso

Commits on Jan 7, 2017   tested intersects gml2 iso

Commits on Dec 29, 2016 getfeature ok, bbox => duplicatingfilter should be fixed.

Commits on Dec 28, 2016 testing GetFeature BBOX Filter...

Commits on Dec 27, 2016 added WFSConfiguration

Commits on Dec 26, 2016  make new service WFS(1.1.1) && added urlmapping

Commits on Dec 24, 2016 tested new WFS Module for 3D operations

Commits on Sep 28, 2016  Initial commit

Geotools-3D-Extension:https://github.com/STEMLab/geotools-3d-extension

Prerequisites:CMAKE、Boost、CGAL、SFCGAL
posted on 2022-10-12 13:49  XiaoNiuFeiTian  阅读(161)  评论(0编辑  收藏  举报