geotools简介

news2024/11/19 0:28:22

geotools简介

官网

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

架构图

在这里插入图片描述

特性

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

常用功能列表

ModulePurpose
gt-renderImplements of Java2D rendering engine to draw a map 实现了Java2D的渲染引擎画地图
gt-jdbcImplements for accessing spatial database 实现了访问空间数据库的
gt-mainImplements for accessing spatial data 实现对空间数据的访问
gt-xmlImplements of common spatial XML formats 实现对共同的xml数据格式的支持
gt-cqlImplements of Common Query Language for filters 实现简单语句的查询
gt-mainInterfaces for working with spatial information. Implements filter, feature, etc…
jtsDefinition and implementation of Geometry 定义了处理空间信息的接口
gt-coverageImplementation for accessing raster information 实现了Raster数据格式的访问
gt-referencingImplementation of co-ordinate location and transformation 实现了坐标的定义、转换
gt-metadataImplementation of identification and description 元数据的描述和识别
gt-opengisDefinition of interfaces for common spatial concepts 定义了空间概念的接口

插件

ModuleJARPlugin
gt-render
gt-jdbcgt-jdbc-db2Geometry in DB2
gt-jdbc-h2Pure Java “H2” database
gt-jdbc-mysqlGeometry in MySQL
gt-jdbc-oracleOracle SDO Geometry
gt-jdbc-postgisPostgreSQL extension PostGIS
gt-jdbc-sqlserverSQL Server
gt-jdbc-hanaSAP HANA
gt-jdbc-terasdataTeradata
gt-maingt-shapeShapefile read/write support
gt-wfsWFS read/write support
gt-xml
gt-cql
gt-main
jts
gt-coveragegt-geotiffGeoTIFF raster format
gt-arcgridarcgrid format
gt-mifMIF format
gt-imageJPG, PNG, TIFF formats
gt-referencingepsg-access .Official EPSG database in Access
epsg-hsqlPure Java port of EPSG database
epsg-wktLightweight copy of EPSG codes
epsg-postgresqlPostgreSQL port of EPSG database
gt-metadata
gt-opengis

扩展

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

JARExtension
gt-graphWork with graph and network traversals
gt-validationQuality assurance for spatial data
gt-wmsWeb Map Server client
gt-xsdParsing/Encoding for common OGC schemas
gt-brewerGeneration of styles using color brewer

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

JARSchema
net.opengis.owsopen web services schema
net.opengis.wfsweb feature service
net.opengis.wpsweb processing service schema
net.opengis.wcsweb coverage service schema
net.opengis.wfsweb feature service schema
org.w3.xlinkXLink schema

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

JARBindings
gt-xsd-coreBasic types defined by XML schema
gt-xsd-fesfilter 2.0
gt-xsd-filterfilter (used by OGC CAT and WFS)
gt-xsd-kmlkeyhole markup language
gt-xsd-wfsweb feature service
gt-xsd-wpsweb processing service
gt-xsd-gml3geographic markup language 3
gt-xsd-gml2geographic markup language 2
gt-xsd-owsopen web services
gt-xsd-wcsweb coverage service
gt-xsd-wmsweb map service
gt-xsd-sldstyle layer descriptor

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

UnsupportedPurpose
gt-swtStandard widget toolkit interactive map
gt-swingSwing interactive map
gt-oracleretired oracle support
gt-postgisretired PostGIS support
gt-db2retired db2 support
gt-wpsWeb Processing Service client
gt-processJob 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用来区分不同的mirror元素。 -->
    <id>nexus-aliyun</id>
    <!--*指的是访问任何仓库都使用我们的私服-->
     <mirrorOf>*,!osgeo,!GeoSolutions,!osgeo-snapshot,!alfresco</mirrorOf>

    <!--镜像名称-->
    <name>Nexus aliyun</name>
    <!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL-->
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

pshot,!alfresco

<!--镜像名称-->
<name>Nexus aliyun</name>
<!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL-->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/569428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运营-17.留存

如何定义留存 某段时间内的新增用户&#xff0c;经过一段时间后&#xff0c;又继续使用应用的被认作是留存 用户&#xff0c;这部分用户占当时新增用户的比例即是留存率&#xff0c;即用户没有流失&#xff1b; 例如&#xff1a; 5月份新增用户200&#xff0c;这200人在6月份启…

Abaqus——悬臂梁问题之工字梁实例

参考 有限元基础-第7课&#xff08;悬臂梁问题&#xff09;-2022年_哔哩哔哩_bilibili 实例 软件 Abaqus 2022 方法 通过线形式建模 具体操作 建模 1.打开部件的模块&#xff0c;创建一个零件。Name&#xff1a;自定义命名&#xff1b;Modeling Space&#xff1a;梁的空…

认识Vue中组件利器-插槽Slot-案例介绍

一. 插槽的使用 1.1. 认识插槽slot 在开发中&#xff0c;我们会经常封装一个个可复用的组件&#xff1a; 前面我们会通过props传递给组件一些数据&#xff0c;让组件来进行展示&#xff1b; 但是为了让这个组件具备更强的通用性&#xff0c;我们不能将组件中的内容限制为固定…

项目总结:YOLOv8 人体姿态估计 跌倒检测

细节贴&#xff1a; YOLOv8 人体姿态估计 跌倒检测_爱钓鱼的歪猴的博客-CSDN博客 yolov8-pose的输出中有17个人体关键点 在胸膛处计算出一个中心点&#xff0c;腰部计算出一个中心点&#xff0c;连线&#xff0c;做一个直角三角形&#xff0c;求角的大小。 当角大于60度&…

基础篇009.1 STM32驱动RC522 RFID模块之一:基础知识

目录 1. RFID概述 1.1 RFID工作原理 1.2 RFID分类 1.3 RFID模块 1.4 RFID卡片 1.5 IC卡和ID卡介绍 1.6 IC卡和ID的区分 2. Mifare卡结构原理 2.1 Mifare卡概述 2.2 Mifare非接触式 IC 卡性能简介&#xff08;M1&#xff09; 2.2.1 Mifare S50与Mifare S70 2.2.2 S5…

蓝牙spp协议

一.定义 Serial Port Profile,串口通讯协议&#xff0c;是完成蓝牙设备之间创建串口进行数据传输的一种协议。 串口通讯协议(SPP)定义了使用蓝牙进行RS232&#xff08;或类似&#xff09;串行电缆仿真的设备应使用的协议和过程。 此协议涵盖的方案通过虚拟串行端口抽象&#…

自己编写小程序背日语50音图

自己编写小程序来背日语50音图 这是个啥直接上代码测试效果图 这是个啥 简而言之呢就是最近心血来潮打算自学日语&#xff0c;学日语自然就要先从50音图开始&#xff0c;就是下面这个&#xff1a; 可以看出来50音图横向是按照a i u e o这5个元音顺序&#xff0c;纵向按照a ka…

企业门户网站有用吗?如何解决搭建难题?

随着智能化时代的逐渐成熟&#xff0c;信息产业如火朝天&#xff0c;越来越多的人对门户网站开始感兴趣&#xff0c;不少企业家也开始对门户网站的开发与建设跃跃欲试。门户网站&#xff0c;也就是一个应用框架&#xff0c;把各类应用系统、互联网资源、数据资源集合到一个信息…

80.确定和规划项目(步骤1和2)

你的第一个现实世界的项目 ● 你的第一份“工作”&#xff01;、 ● 你受雇为一家名为Omnifood的虚构公司设计并建立一个网站。 ● Omnifood是一家使用人工智能来创建和提供定制健康膳食计划的初创公司。 ● 他们为我们提供了网站的所有内容&#xff08;content.md&#xff09…

Redis 的 Rdb 或 Aof 持久化详解

文章结构 Redis 的持久化方案Rdb&#xff08;Redis Database) 方式设置持久化快照的条件持久化文件的存储目录Rdb 的优点Rdb 的缺点 Aof&#xff08;Append Only File&#xff09; 方式aop 的优点aop 的缺点 Redis 的持久化方案 Rdb&#xff08;Redis Database) 方式 Redis 默…

循环队列(C++)

循环队列是一种特殊的队列实现&#xff0c;在顺序队列的基础上进行了优化。通常&#xff0c;循环队列使用固定长度的数组来表示队列元素&#xff0c;头和尾指针挂钩形成循环的维度感知队列长度&#xff0c;并提高队列操作效率&#xff0c;因为这种结构需要的内存量比链表数据结…

论文翻译:DeepFilterNet

目录 摘要1. 引言2. DeepfilterNet2.1. 信号模型2.2. Deep Filtering2.3. 框架概述2.4. DNN模型2.5. 数据处理2.6. 损失函数 3. 实验3.1. 训练步骤3.2. 结果 4. 结论5. 参考文献 论文题目&#xff1a;DeepFilterNet: A Low Complexity Speech Enhancement Framework for Full-B…

MQTT与传统的HTTP协议对比,优势在哪里呢?

HTTP是应用最为广泛和流行的协议。但是MQTT在过去的几年里迅速取得了进展。在讨论物联网开发的时候&#xff0c;开发者必须在这两者之间作出选择。 MQTT集中于数据&#xff0c;而HTTP集中于文档。HTTP是一个用于客户端-服务器计算的请求-响应协议&#xff0c;它并非总是为移动设…

位图和布隆过滤器

目录 位图 布隆过滤器 位图 假设有1000 万个范围在1~ 1亿的整数。如何快速查找某个整数是否出现在这1000万个整数中? 当然&#xff0c;这个问题仍然可以使用哈希表来解决。不过&#xff0c;针对这个“特殊”问题&#xff0c;我们可以使用一种比较“特殊”的哈希表&#xff…

阿里云手动创建Nginx-Ingress

阿里云相关文档 1、在ACK管理控制台点击如下 应用市场–>筛选(以ack-ingress-nginx-v1为例)–>点击安装–>一键部署–>自己定义集群、命名空间以及ingress名称 1.20以下集群选中ack-ingress-nginx。 1.20及以上集群选中ack-ingress-nginx-v1。 应用市场 筛选…

Linux学习笔记 --- Linux基础命令Part2

2.9 查找命令(which、find&#xff09; 目标&#xff1a;1. 掌握使用which命令查找命令的程序文件 2. 掌握使用find命令查找指定文件 which命令 我们在前面学习的Linux命令&#xff0c;其实它们的本体就是一个个的二进制可执行程序。 和Windows系统中的.exe文件&#x…

六级备考24天|CET-6|翻译技巧3|翻译2020年6月真题红楼梦|逻辑问题|理解背诵|20:50~22:30

目录 一、逻辑重建 例句1 例句2 例句3 二、定语和状语 定语的翻译原则 什么是状语&#xff1f; 状语位置 状语的基本形式 三、主动和被动 四、无主句 五、并列和连动 连动 六、作题步骤 七、红楼梦 PRACTICE ANSWER​ 时态问题 一、逻辑重建 试比较&#xff1a; 1. 下雨了…

c++中文路径中文文件读写

踩了坑&#xff0c;两个地方需要注意&#xff0c;否则就会乱码或无法找到文件 &#xff08;1&#xff09;采用utf-8格式&#xff0c;对cpp文件进行编码&#xff0c;用utf-8的方式对内容尽心高度写&#xff0c;方法是std::setlocale(LC_ALL, ".UTF-8"); &#xff08…

dvwa靶场通关(二)

第二关&#xff1a;Command Injection&#xff08;命令注入&#xff09; 什么是命令注入&#xff1a; 命令注入就是在需要输入数据的地方输入了恶意代码&#xff0c;而且系统并没有对其进行过滤或者其他处理导致恶意代码也被执行&#xff0c;最终导致数据泄露或者正常数据被破…

软件测试基础知识整理(八)- 软件缺陷

目录 一、软件缺陷 1.1 缺陷定义 1.2 缺陷判定标准 1.3 软件缺陷产生的原因 1.4 软件缺陷产生的根源 1.5 软件缺陷信息 1.5.1 缺陷状态 1.5.2 缺陷严重程度 1.5.3 缺陷优先级 1.6 缺陷报告模板 1.7 缺陷报告注意事项 1.8 缺陷跟踪流程 1.9 缺陷数据分析关注的问题 …