提纲

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深入解析:GeoTools概述相关推荐

  1. java的开发环境日蚀日_将依赖项添加到后未解析geotools的导入pom.xml文件在日蚀中...

    我尝试将地理工具添加到我的pom.xml文件使用以下指南: https://www.baeldung.com/geo-tools http://docs.geotools.org/latest/use ...

  2. 【文件上传漏洞-07】中间件文件解析漏洞概述及实例——Apache、IIS和Nginx

    目录 1 Apache解析漏洞 1.1 概述 1.2 Apache解析漏洞实例 1.2.1 实验目的 1.2.2 实验环境 1.2.3 实验一:验证解析顺序漏洞 1.3 总结 2 IIS 解析漏洞 2 ...

  3. Android Binder 全解析(1) -- 概述

    摘要 如果各位玩过<炉石传说>,那么可能对法师的职业卡「不稳定的传送门」很有印象,特别是没有欧洲玩家,经常能够拿到其他职业的强力单卡.Android 也提供了传送门,让我们可以像使用本地方 ...

  4. XML DOM 解析器概述

    大多数浏览器都内建了供读取和操作 XML 的 XML 解析器.解析器把 XML 转换为 JavaScript 可存取的对象(XML DOM). XML 解析器 XML DOM 包含了遍历 XML 树, ...

  5. DNS 系统解析过程概述

    DNS(Domain Name Servive,域名服务)是Internet/Intranet中最基础也是非常重要的一项服务,提供了网络访问中域名到IP地址的自动转换.我们知道,Internet上的主 ...

  6. 语义解析(一) —— 概述(数据和模型简介)

    一. 简介 语义解析是近几年发展起来的一个NLP的分支,主要目的是将自然语言的文本描述,自动转成机器语言(SQL)语句.也称Text-to-SQL, nl2SQL等.随着知识图谱的发展,也逐渐孵化出很 ...

  7. ISO26262解析(一)——概述

    写在前面:本文旨在对汽车电子功能安全标准ISO26262进行解析,提炼出对设计有强指导意义的关键点.文中包括ISO26262原文的翻译及结合自己工作经验的理解. 0. ISO26262应用对象: IS ...

  8. 干货!使用Geotools解析shap数据实例

    本文将重点介绍基于Java和Geotools来解析shap文件,并打印解析内容的过程. 环境:jdk 1.8 maven 3.3 第一步.pom.xml 设置 <project xmlns=&q ...

  9. GeoJson的生成与解析,JSON解析,Java读写geojson,geotools读取shp文件,Geotools中Geometry对象与GeoJson的相互转换

    GeoJson的生成与解析 一.wkt格式的geometry转成json格式 二.json格式转wkt格式 三.json格式的数据进行解析 四.Java读写geojson 五.geotools读取sh ...

最新文章

  1. SQL分割字符串,SQL按照指定字符分割字符串,SQL处理字符串...
  2. Java-Java I/O流解读之Object Serialization and Object Streams
  3. esp32树莓派_用 ESP32 制造炫彩 LED 球
  4. Kylin工作原理、体系架构
  5. 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析
  6. 高性能的MySQL(5)索引策略一聚簇索引
  7. Oracle11g手动创建数据库方法
  8. File(File f, String child) File(String parent, String child)
  9. 后端分布式系列:分布式存储-MySQL 数据库事务与复制
  10. 用支付宝和微信都可以扫的聚合支付码其原理是什么?云收呗的原理也很简单,API搭建比较方便,云收呗是最大的黑天鹅
  11. 个人电子邮箱怎么注册?
  12. NC14548-B-逃脱(bfs)
  13. Java毕设答辩会问些什么?
  14. python中wheel什么意思_Python Wheels是什么?为什么要关心它?
  15. python使用KNeighborsClassifier出现FutureWarning: Unlike other reduction functions (e.g. `skew`, `kurtosi
  16. 企业会计准则应用事务【2】
  17. 刘一男词汇课(从aboard到establish):“宝剑锋从磨砺出,梅花香自苦寒来。“
  18. 鸿蒙os2.0发布直播,2021华为鸿蒙操作系统发布会及华为全场景新品发布会时间 发布会直播入口...
  19. esxi5.5 集成AR8162/8166/8168网卡驱动
  20. Xanadu宣布与格芯合作加速研发容错光量子计算机

热门文章

  1. RGB、YUY2、YUYV、YVYU、UYVY与AYUV
  2. mybatis中大于小于的写法
  3. 没有什么比破除束缚更自由的事情了
  4. Java面试基础知识,迈向java面试突击课百度云
  5. Linux防火墙白名单限制
  6. 内边距 - padding
  7. 不用甘特图,你做什么项目管理
  8. 扎克伯格:元宇宙,就是下一张互联网
  9. ucl数学与计算机科学系,UCL专业排名
  10. Basler相机硬触发的接线方法