geotools简介

geotools简介

官网

https://docs.geotools.org/latest/userguide/index.html

架构图

geotools简介_第1张图片

特性

1. 主要特性

  1. Geotools主要提供各种GIS算法,实现各种数据格式的读写和显示。
  2. 在显示方面要差一些,只是用Swing实现了地图的简单查看和操作。
  3. 用户可以根据Geotools提供的算法自己实现地图的可视化。OpenJump和udig就是基于Geotools的。
  4. 目前的大部分开源软件,如udig,geoserver等,对空间数据的处理都是由geotools来做支撑。
  5. web服务,命令行工具和桌面程序都可以由geotools来实现。
  6. 是构建在OGC标准之上的,是OGC思想的一种实现。而OGC是国际标准,所以geotools将来必定会成为开源空间数据处理的主要工具,
  7. Geotools用到的两个较重要的开源GIS工具包是JTS和GeoAPI。前者主要是实现各种GIS拓扑算法[只是图形与图形的九交模型并不是图层或图层间的拓扑算法],也是基于GeoAPI的。
  8. Geotools现在还只是基于2D图形的,缺乏对 3D空间数据算法和显示的支持。

2. Geotools支持的数据格式

  1. arcsde, arcgrid, geotiff, grassraster, gtopo30, image(JPEG, TIFF, GIF, PNG), imageio-ext-gdal, imagemoasaic, imagepyramid, JP2K,matlab
  2. 支持的数据库“jdbc-ng”:db2, h2, mysql, oracle, postgis, spatialite, sqlserver
  3. 支持的矢量格式和数据访问:app-schema, arcsde, csv, dxf, edigeo, excel, geojson,org, property, shapefile, wfs
  4. XML绑定。基于xml的Java数据结构和绑定提供了如下格式xsd-core (xml simple types), fes,filter, gml2, gml3, kml, ows, sld, wcs, wfs, wms, wps, vpf。对于额外的geometrysldfilter的编码和解析可以通过domsax程序。

3. 支持大部分的OGC标准

  1. OGC中的sld/SE和渲染引擎;
  2. OGC一般要素模型包括简单要素支持;
  3. OGC中栅格信息的网格影像表达;
  4. OGC中WFS,WMS和额外的WPS;
  5. ISO 19107 geometry规范;

4. Geotools依赖的开源项目

  1. JTS:JTS是加拿大的 Vivid Solutions 做的一套开放源码的 Java API。它提供了一套空间数据操作的核心算法,为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词API。
  2. GeoAPI:GeoAPI为OpenGIS规范提供一组Java接口。

5. GeoTools类库

GeoTools发布的包和其依赖的一些第三方类库总共约有168个,了解GeoTools依赖哪些包和依赖的这些包做什么的,对了解GeoTools这个大家伙一定是有帮助的,具体大家可以下载代码查看,上网搜索一般都能找到一些有用的资料。以下是核心类库的79个jar包:

6. 学习地址

  1. GeoTools官方网站地址

https://docs.geotools.org/latest/userguide/geotools.html

  1. GeoTools GitHub地址

https://github.com/geotools/geotools

7. GeoTools的方向

GeoTools GitHub地址

https://github.com/geotools/geotools

常用功能列表

Module Purpose
gt-render Implements of Java2D rendering engine to draw a map 实现了Java2D的渲染引擎画地图
gt-jdbc Implements for accessing spatial database 实现了访问空间数据库的
gt-main Implements for accessing spatial data 实现对空间数据的访问
gt-xml Implements of common spatial XML formats 实现对共同的xml数据格式的支持
gt-cql Implements of Common Query Language for filters 实现简单语句的查询
gt-main Interfaces for working with spatial information. Implements filter, feature, etc…
jts Definition and implementation of Geometry 定义了处理空间信息的接口
gt-coverage Implementation for accessing raster information 实现了Raster数据格式的访问
gt-referencing Implementation of co-ordinate location and transformation 实现了坐标的定义、转换
gt-metadata Implementation of identification and description 元数据的描述和识别
gt-opengis Definition of interfaces for common spatial concepts 定义了空间概念的接口

插件

Module JAR Plugin
gt-render
gt-jdbc gt-jdbc-db2 Geometry in DB2
gt-jdbc-h2 Pure Java “H2” database
gt-jdbc-mysql Geometry in MySQL
gt-jdbc-oracle Oracle SDO Geometry
gt-jdbc-postgis PostgreSQL extension PostGIS
gt-jdbc-sqlserver SQL Server
gt-jdbc-hana SAP HANA
gt-jdbc-terasdata Teradata
gt-main gt-shape Shapefile read/write support
gt-wfs WFS read/write support
gt-xml
gt-cql
gt-main
jts
gt-coverage gt-geotiff GeoTIFF raster format
gt-arcgrid arcgrid format
gt-mif MIF format
gt-image JPG, PNG, TIFF formats
gt-referencing epsg-access . Official EPSG database in Access
epsg-hsql Pure Java port of EPSG database
epsg-wkt Lightweight copy of EPSG codes
epsg-postgresql PostgreSQL port of EPSG database
gt-metadata
gt-opengis

扩展

除此之外,GeoTools团队在GeoTools的基础上实现了一些扩展,当然了,这些扩展是为了提供一些额外的功能。这些扩展是相互独立的,我们可以直接在项目中使用。

JAR Extension
gt-graph Work with graph and network traversals
gt-validation Quality assurance for spatial data
gt-wms Web Map Server client
gt-xsd Parsing/Encoding for common OGC schemas
gt-brewer Generation of styles using color brewer

GeoTools团队为了支持GeoTools中的XML模块,将几个XML模式打包成JAR形式,方便开发者进行调用。

JAR Schema
net.opengis.ows open web services schema
net.opengis.wfs web feature service
net.opengis.wps web processing service schema
net.opengis.wcs web coverage service schema
net.opengis.wfs web feature service schema
org.w3.xlink XLink schema

XSD解析器通过一系列XSD插件使用这些工具。这些插件指示如何使用Eclipse XSD库解析和编码额外的内容来解析XML模式文档,并提供“绑定”,显示如何解析和编码Java类,如String、Date、URL和Geometry。

JAR Bindings
gt-xsd-core Basic types defined by XML schema
gt-xsd-fes filter 2.0
gt-xsd-filter filter (used by OGC CAT and WFS)
gt-xsd-kml keyhole markup language
gt-xsd-wfs web feature service
gt-xsd-wps web processing service
gt-xsd-gml3 geographic markup language 3
gt-xsd-gml2 geographic markup language 2
gt-xsd-ows open web services
gt-xsd-wcs web coverage service
gt-xsd-wms web map service
gt-xsd-sld style layer descriptor

以下是GeoTools不支持的扩展,你也可以使用Maven下载它们来使用。

Unsupported Purpose
gt-swt Standard widget toolkit interactive map
gt-swing Swing interactive map
gt-oracle retired oracle support
gt-postgis retired PostGIS support
gt-db2 retired db2 support
gt-wps Web Processing Service client
gt-process Job system for spatial data

geotools引用

maven项目中引用值得注意的地方

1 在pom中配置仓库


<repositories>
    <repository>
      <id>osgeo</id>
      <name>OSGeo Release Repository</name>
      <url>https://repo.osgeo.org/repository/release/</url>
      <snapshots><enabled>false</enabled></snapshots>
      <releases><enabled>true</enabled></releases>
    </repository>
    <repository>
      <id>osgeo-snapshot</id>
      <name>OSGeo Snapshot Repository</name>
      <url>https://repo.osgeo.org/repository/snapshot/</url>
      <snapshots><enabled>true</enabled></snapshots>
      <releases><enabled>false</enabled></releases>
    </repository>
    <!--GeoServer-->
     <repository>
       <id>GeoSolutions</id>
       <url>http://maven.geo-solutions.it/</url>
     </repository>
</repositories>

2 如果setting中使用了阿里云镜像设置不起作用

<mirror> 

    <id>nexus-aliyunid>
    
     <mirrorOf>*,!osgeo,!GeoSolutions,!osgeo-snapshot,!alfrescomirrorOf>

    
    <name>Nexus aliyunname>
    
    <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>

pshot,!alfresco


Nexus aliyun

http://maven.aliyun.com/nexus/content/groups/public
```

你可能感兴趣的:(geotools,gis,java)