GeoTools 架构
GeoTools 主要模块如图所⽰
从左到右依次为接⼝层、实现层和插件层,模块的依赖关系为从上到 下,即上⾯的模块依赖下⾯的模块。

接⼝层封装了空间数据的核⼼规范。接⼝层主要包括三⼤类规 范,分别是: GeoAPI ,这是 GeoTools 提供的⼀套稳定的空间数据操作 接⼝; Java 拓扑库( Java Topology Suite , JTS ),这是使⽤ Java 代码实 现的⼀套⼏何类库; OpenGIS 接⼝,这是对 OpenGIS 各类规范的 Java 接 ⼝的定义
实现层是 GeoTools 的核⼼,是各类空间数据规范的具体代码实 现。从底向上包括:元数据模块 Metadata ,负责处理各类空间数据格 式的元数据信息;空间坐标系模块 Referencing ,负责各类地理坐标系 和投影坐标系的定义与转换;栅格数据模块 Coverage ,负责栅格数据 的读写; Main 模块,负责各类常⽤⼯具、数据结构和框架的定义;⽮ 量数据模块 Data ,负责所有⽮量数据的读写;关系数据库操作模块 JDBC ,负责读写各类关系数据库和对应的空间数据扩展;空间查询语 ⾔模块 CQL ,定义了⼀套逻辑完备的空间查询语⾔,⽤于实现各类空 间数据查询;空间数据渲染模块 Render ,负责⽮量数据和栅格数据的 渲染; XML 模块,⽤来操作各类使⽤ XML 格式描述的空间数据和元数 据信息。
插件层是 GeoTools 扩展能⼒的体现。插件层基于接⼝层和实现 层,是对具体应⽤的对应实现,具体包括欧洲⽯油调查组织 ( European Petroleum Survey Group , EPSG )的空间坐标系定义扩展模 块 epsg-hsql ,该模块记录了欧洲⽯油调查组织的 6000 多个地理坐标系 定义; Shapefile 为空间数据⽂件格式扩展模块,该模块负责对 Shapefile 这类⼗分常⽤的⽮量数据格式提供读写和索引的⽀持;空间 数据库模块 PostGIS 负责对当前业界⼗分常⽤的 PostGIS 空间数据库提 供读写和索引的实现; XSD WMS 负责对基于 XML 的⼀些 OGC 的数据 格式和服务规范提供实现。
GeoTools 特性
定义了空间数据概念和数据结构。
使⽤ JTS 作为基础的⼏何类库。依据 OGC 规范,实现空间过滤器 和属性过滤器。
定义了⼀套⼲净的数据访问接⼝,并⽀持访问者模式、事务 和多线程。
⽀持访问多种地理空间⽂件格式和空间数据库。 ⽀持坐标参考系统的转换。 ⽀持常⻅的地图投影。 能够根据空间和⾮空间属性过滤和分析数据。
提供了⼀个⽆状态、低内存消耗的地图数据渲染器,尤其适 ⽤于服务器端的地图渲染。
⽀持复杂的地图样式。 ⽀持⽂本标签和⽂本颜⾊混合。
⽀持 OGC 定义的地理标记语⾔( Geographic Markup Language , GML )规范、样式图层描述器( Styled Layer Descriptor , SLD )规范等 XML 格式规范。
提供了⼀套被称为 GeoTools Plugins 的开放式插件系统,允 许接⼊任意空间数据格式。
提供了⼀套地理信息处理⼯具和扩展接⼝。
提供了基础的空间数据处理⽅法,⽀持图和⽹络分析、空间数据 校验、 Web 地图服务器的客户端、 XML 解析和编码、地图样式⽣成器 等。
提供开源社区扩展。
GeoTools 拥有⼀个活跃的开源社区,许多具有实验性的功能和最 新的功能均是由社区开发者来维护的。这些功能主要包括⽀持桌⾯图 形化⽅案、本地和 Web 流程⽀持、附加符号系统、附加数据格式、⽹ 格⽣成等。
GeoTools ⽣态
经过多年的发展, GeoTools 已经形成了庞⼤的⽣态。这个⽣态包 含 3 个⽅⾯:在标准⽅⾯, GeoTools 遵守并实现了地理信息系统⾏业的 通⽤标准 OGC 规范;在其内部,它对不同数据类型、不同数据格式等 进⾏兼容;在其外部,很多组件也实现了和它的对接。
Comments