Geotools是Java语言编写的开源GIS工具包。该项目已有十多年历史,生命力旺盛,代码非常丰富,包含多个开源GIS项目,并且基于标准的GIS接口。Geotools主要提供各种GIS算法,各种数据格式的读写和显示。在显示方面要差一些,只是用Swing实现了地图的简单查看和操作。但是用户可以根据Geotools提供的算法自己实现地图的可视化。OpenJump和udig就是基于Geotools的。
核心特点
- 为空间概念和数据结构定义了很多的接口
- 通过JTS类库集成了对几何拓扑的支持
- 通过使用OGC过滤编码规范可以对属性和空间要素过滤
- 对于数据访问API,支持要素访问、事务支持和线程间锁定
- 可以访问多种格式的数据和空间数据库
- 支持多种坐标参考系统和及其转换
- 可以和扩展的地图投影一同工作
- 可以按照空间和非空间属性来过滤和分析数据
- 一种无状态的,耗低内存的渲染机制,尤其在服务端环境下
- 通过复杂的样式
SLD
来组成和展现地图
- 通过复杂的样式
- 对于有
xml schema
绑定的GML
文档,提供了强大的号称第四代xml
解析技术gtxml
。这种解析/编码技术可以应用到OGC
标准中的SLD
,GML
,Filter
,KML
和SE
,个人认为这是geotools
的核心,也是Geotools
处理大空间数据的手段。 Geotools
插件:开放的插件系统允许你为类库添加额外的格式。ImageIO-ext
项目的插件允许Geotools
从gdal
中读取额外的栅格格式。Geotools
扩展。通过使用核心类库的这些空间工具可以提供额外的构建能力,比如swing
,brewer
和graph
。扩展模块提供了图像和网络支持、校验、web地图服务端解析,解析编码xml
和color brewer
(地图绘图)。Geotools
尚不支持的。Geotools
作为广泛社区的一部分可以用来孵化一些新的项目,重点是swing支持,本地和web处理支持,添加额外符号symbology
,添加额外格式,生成网格等和ISO geometry的实现。