GeoTools相关介绍

Geotools是Java语言编写的开源GIS工具包。该项目已有十多年历史,生命力旺盛,代码非常丰富,包含多个开源GIS项目,并且基于标准的GIS接口。Geotools主要提供各种GIS算法,各种数据格式的读写和显示。在显示方面要差一些,只是用Swing实现了地图的简单查看和操作。但是用户可以根据Geotools提供的算法自己实现地图的可视化。OpenJump和udig就是基于Geotools的。

核心特点

  1. 为空间概念和数据结构定义了很多的接口
    • 通过JTS类库集成了对几何拓扑的支持
    • 通过使用OGC过滤编码规范可以对属性和空间要素过滤
  2. 对于数据访问API,支持要素访问、事务支持和线程间锁定
    • 可以访问多种格式的数据和空间数据库
    • 支持多种坐标参考系统和及其转换
    • 可以和扩展的地图投影一同工作
    • 可以按照空间和非空间属性来过滤和分析数据
  3. 一种无状态的,耗低内存的渲染机制,尤其在服务端环境下
    • 通过复杂的样式SLD来组成和展现地图
  4. 对于有xml schema绑定的GML文档,提供了强大的号称第四代xml解析技术gtxml。这种解析/编码技术可以应用到OGC标准中的SLDGMLFilterKMLSE,个人认为这是geotools的核心,也是Geotools处理大空间数据的手段。
  5. Geotools插件:开放的插件系统允许你为类库添加额外的格式。ImageIO-ext项目的插件允许Geotoolsgdal中读取额外的栅格格式。
  6. Geotools扩展。通过使用核心类库的这些空间工具可以提供额外的构建能力,比如swingbrewergraph。扩展模块提供了图像和网络支持、校验、web地图服务端解析,解析编码xmlcolor brewer(地图绘图)。
  7. Geotools尚不支持的。Geotools作为广泛社区的一部分可以用来孵化一些新的项目,重点是swing支持,本地和web处理支持,添加额外符号symbology,添加额外格式,生成网格等和ISO geometry的实现。

继续阅读