概述
GeoTools 是一个开源 Java 库,提供地理空间数据处理、分析和可视化的工具。本文档介绍 GeoTools 库,总结了其目的、结构和功能,作为一个综合地理空间工具包。
目的和范围
GeoTools 旨在使开发者能够构建处理地理空间数据的应用程序。它提供了符合 Open Geospatial Consortium (OGC) 规范的标准实现,同时注重性能和易用性。该库作为众多地理信息系统和 Web 地图应用程序的基础。
有关架构和模块系统的具体实现细节,请参阅 核心架构。
主要功能
GeoTools 提供了一套全面的地理空间功能,包括:
- 遵循 OGC/ISO 规范的基于标准的数据模型
- 坐标参考系统定义和转换
- 对多种格式的矢量数据和栅格数据访问
- 用于地图生成的渲染系统
- 用于数据选择的过滤器和查询语言 (CQL)
- 用于制图表现的样式工具
有关特定功能的详细信息,请参阅 栅格数据处理、矢量数据处理 和 渲染系统 中的相应章节。
库组织结构
GeoTools 使用模块化架构将功能组织成逻辑单元,同时管理依赖关系。下图说明了高层组织和组件之间的关系。
模块结构
数据处理流水线
支持的格式
GeoTools 通过其插件系统支持多种地理空间数据格式:
| 类别 | 格式 |
|---|---|
| 矢量 | Shapefile、GeoPackage、PostGIS、Oracle Spatial、WFS |
| 栅格 | GeoTIFF、ArcGrid、ImageMosaic、NetCDF、JPEG2000、WCS |
| 数据库 | PostgreSQL/PostGIS、Oracle、MySQL、SQL Server、H2 |
| 服务 | WMS、WFS、WCS、CSW |
有关特定格式实现的详细信息,请参阅 格式支持。
项目信息
GeoTools 是一个拥有活跃贡献者社区的开源项目。该库在 GNU Lesser General Public License (LGPL) 下分发。
许可证
Lesser General Public License (LGPL)
http://www.gnu.org/copyleft/lesser.txt社区
GeoTools 社区包括来自不同组织的开发者,他们为库的维护和增强做出贡献。该项目使用模块维护者系统,特定的开发者负责不同的组件。
有关从源代码构建库或为项目做贡献的信息,请参阅 开发指南。
技术参考
GeoTools 遵循多项行业标准,包括:
- OGC Simple Features 规范
- ISO 19107 地理信息 - 空间模式
- ISO 19111 地理信息 - 基于坐标的空间参考
- OGC Filter 编码规范
- OGC Styled Layer Descriptor (SLD)
这些标准指导了库的设计和实现,确保与其他地理空间系统的互操作性。