提纲

1、GeoTools的作用

2、GeoTools的组成结构及各个部分的功能

1、GeoTools的作用

===============

Geotools是一个符合OGC标准(也称为OpenGIS标准)的Java类库,它提供了很多的标准类来处理空间数据。OpenGIS标准是一个空间数据处理的国际标准。目前的大部分基于Java的开源GIS软件,如udig,geoserver等,都是调用GeoTools库来进行空间数据的处理。

GeoTools是一个处理空间数据的工具包,其中包含构建一个完整的地理信息系统所需要的的全部工具类,常见的问题比如投影的转换、基准面的设定、空间数据对象的渲染和样式、各种数据源的支持、各种GIS文件格式支持、空间数据过滤与搜索等,都有对应的解决方案,这些解决方案被封装成一个一个的类,可供用户调用。

GeoTools项目的开发目标是提供一个符合OpenGIS标准的Gis工具包。为了达成这个目标,GeoTools项目中除了GeoTools自己实现一些工具类之外,还有包含了两个其他的工具包,一个是GeoAPI,另一个是JTS(Java Topology Suite),这两个工具包和GeoTools自己的工具类一起组成了GeoTools。从这个角度来讲,可以说GeoTools是在GeoAPI和JTS的基础上构建的一个GIS工具包。

JTS是用来做空间图形的拓扑关系判断的一个Java类库。它在GeoTools出现之前就已经存在了,所以GeoTools项目在解决空间对象拓扑判定问题的时候,就没有自己重新开发,而是直接采用了JTS,将JTS作为自己的一部分,纳入自己的体系中了。JTS解决了对象与对象之间拓扑关系的判定和计算,所以,它提供了很多算法来解决对象之间包含关系、相交关系等的拓扑关系判定问题。因此,JTS就相当于GeoTools中的一个子模块,但是因为这个模块本身不是GeoTools工程的,所以在GeoTools的JavaDoc中找不到JTS的JavaDoc说明,如果需要JTS的JavaDoc说明,需要到JTS官网上面去下载。

GeoAPI是根据OpenGIS规范而开发一组Java接口,这组接口代表了OpenGIS规范,GeoTools实现了GeoAPI中的接口,从而也就是实现了OpenGIS标准。GeoAPI制定了地理信息系统中所有的数据类型应该是什么,投影转换的方式有哪几种诸如此类的规范,所以,兼容GeoAPI接口的GeoTools是一个符合规范的地理信息系统工具包。

GeoTools项目除了现有的类,它还有插件机制和扩展机制,用户可以为GeoTools做插件和扩展。

GeoTools插件,如果希望GeoTools支持更多的数据格式和其他的坐标系统,就可以为GeoTools开发相应的插件。ImageIO-ext项目的插件允许GeoTools从gdal中读取额外的栅格格式。

GeoTools扩展,通过使用核心类库的类可以构建更多的类加入类库,比如swing,brewer和graph。扩展模块提供了图像和网络支持、校验、Web地图服务端解析,解析编码xml和color brewer(地图绘图)。扩展和GeoTools核心类库的关系如下:

2、GeoTools的组成结构(架构)及各个部分的功能

=======================================

GeoTools库的组成部分、每一部分的作用和各部分之间的配合关系,就是GeoTools的架构。搞清楚GeoTools的架构,有利于用户在开发应用的时候,只选择自己所需要的的GeoTools的jar。

GeoTools库是一个软件堆栈(software stack),上层的模块是基于下层模块开发的。

GeoTools堆栈的每一层都是它下面的各层去实现的,比如:

要使用Referencing模块,就必须要包含 gt-opengis, gt-referencing 和 gt-metadata三个jar。

要使用Data模块,就必须要包含 gt-main, jts, gt-opengis, gt-referencing, gt-opengis, gt-metadata

The maven tool can calculate the jars you need, please see the Eclipse or Netbeans quickstart for an example use.

Module

Purpose

gt-cql

Implements of Common Query Language for filters

gt-render

Implements of Java2D rendering engine to draw a map

gt-xml

Implements of common spatial XML formats

gt-main

Interfaces for working with spatial information. Implements filter, feature, etc…

gt-jdbc

Implements for accessing spatial database

gt-data

Implements for accessing spatial data

gt-coverage

Implementation for accessing raster information

gt-metadata

Implementation of identification and description

gt-referencing

Implementation of co-ordinate location and transformation

api

GeoAPI part,定义了处理空间信息的接口

jts

Definition and implementation of Geometry

gt-opengis

Definition of interfaces for common spatial concepts


参考文献

1、http://www.kaiyuanba.cn/html/1/131/138/8018.htm(GeoTool是什么,以及与JTS和GeoAPI之间的关系如何)

2、http://docs.geotools.org/latest/userguide/geotools.html#core-features(Architecture)

3、https://blog.csdn.net/anglestar2012/article/details/42555819(GeoTools学习篇——GeoTools体系),对geotools架构中各个组成部分进行说明,比官方文档说的好

4、https://www.giserdqy.com/gis/opengisnews/2250/(GeoTools应用简要指南),对geoTools下的jar包进行了清理

GeoTools概述相关推荐

  1. GeoTools深入解析:GeoTools概述

    提纲 1.GeoTools的作用 2.GeoTools的组成结构及各个部分的功能 1.GeoTools的作用 =============== Geotools是一个符合OGC标准(也称为OpenGIS ...

  2. geotools学习(五)影像

    影像应用 前面的示例中,我们研究了读取和显示shapefile.对于ImageLab.java,我们将通过显示一个三波段的全球卫星图像,并将其与shapefile中的国家边界叠加,从而将栅格数据添加到 ...

  3. geotools学习(七)地图样式

    样式 请确保您的pom.xml包含以下内容: <dependencies><dependency><groupId>org.geotools</groupId ...

  4. geotools学习(一)IntelliJ快速入门

    title: 'geotools学习(一)IntelliJ快速入门' date: 2021-04-29 14:08:52 tags: [] published: true hideInList: fa ...

  5. Geotools之“Hello World”——打开本地shp文件并显示

    概述:从本节开始,博文中会陆陆续续更新一些有关geotools相关的文章.本节讲述的是geotools的开胃菜,打开本地shp文件,并在窗口中显示. 引言:geotools简介. Geotools是J ...

  6. geotools中等值面的生成与OL3中的展示

    概述: 本文讲述如何在geotools中IDW插值生成等值面,并根据给定shp进行裁剪,并生成geojson数据,以及Openlayers3中展示. 效果: 插值数据 裁剪结果 裁剪区域数据 实现代码 ...

  7. OSM地图本地发布(一)-----概述

    目录 一.前言 二.开源GIS介绍 1.前端GIS框架 2.后端技术 3.空间数据库 4.地图服务器 4.GIS软件 三.技术选型 四.文章目录 1.OSM本地发布(一)-----概述 2.OSM本地 ...

  8. Geotools中蜂巢的实现

    概述 本文讲述如何在geotools中实现蜂巢效果. 效果 实现 1.扩展类IntersectionBuilder import com.vividsolutions.jts.geom.Coordin ...

  9. GeoTools源码解读 - XML处理

    XML处理在GeoTools中的重要性是如此之高,以至于其在文档中专门开辟了一个专门的章节来系统性地解释相关的架构思路和问题. 文章目录 1. 前言 2. 概述 3. 前置知识 4. 用例准备 5. ...

最新文章

  1. 【综述专栏】自动驾驶中可解释AI的综述和未来研究方向
  2. 关于ionic的一些坑(3)
  3. 云效产品体验征文——说出你和云效的故事
  4. 网页缩放与窗口缩放_功能缩放—不同的Scikit-Learn缩放器的效果:深入研究
  5. vega56刷64_Vega56刷入BIOS跑分直逼旗舰Vega64
  6. linux usermod修改用户所在组方法
  7. 开源项目UIL(UNIVERSAL-IMAGE-LOADER)
  8. lede虚拟服务器,在虚拟机中安装 LEDE 软路由
  9. 单片机拟真电路图软件_电路仿真软件有哪些?6款常用的电路仿真软件推荐
  10. Unity 查找重复图片资源以及引用 工具
  11. Hi3519A调试记录
  12. python牛顿法算立方根_牛顿迭代法求解立方根
  13. 【IntelliJ IDEA插件】Alibaba Cloud AI Coding Assistant
  14. 实施 ORM 的两项要旨:泛型和反射
  15. MySQL数据库之管理工具(上)
  16. centos查看内存插槽及已插内存分布及大小命令
  17. 华为过程可信cib是指_华为流程规范考.doc
  18. JZ2440学习笔记一
  19. Matlab:实现Fra矩形孔衍射仿真
  20. 干货|Pytorch弹性训练极简实现( 附源码)

热门文章

  1. 运用startswith函数
  2. Ubuntu20.04下编译Aseprite
  3. 假如突然有了50块,你会做什么?
  4. ArcGIS 生成切片方案中英文菜单对比
  5. Unity中打包后 如何适应全面屏手机 适配问题
  6. 技术领导力 程序员如何才能带团队 文摘 (四)
  7. liquibase介绍
  8. 微信小程序实现window经典的扫雷游戏
  9. thinkPHP+layui邮箱找回密码完整附代码参考
  10. matlab 图像拼接算法,MATLAB图像拼接算法及实现