GeoTool常见问题

此页面汇集了每个模块的各个常见问题解答页面。即使您不确定究竟是哪个模块负责,这也允许您搜索答案。

请将有关此页面的任何意见或建议发送至GeoTools 用户列表。

地理工具常见问题

问:什么是地理工具/span>

GeoTools 是一个免费的开源 Java 地理空间工具包,用于处理矢量和栅格数据。它由大量模块组成,允许您:

  • 访问多种文件格式和空间数据库的 GIS 数据

  • 使用广泛的地图投影

  • 根据空间和非空间属性过滤和分析数据

  • 用复杂的样式组合和显示地图

  • 创建和分析图形和网络

GeoTools 实现了开放地理空间联盟的规范,包括:

  • 简单的功能

  • 网格覆盖

  • 样式层描述符

  • 过滤编码

GeoTools 可以通过添加新模块轻松扩展,用于自定义应用程序或作为库的贡献。

问:如何搜索 GeoTools 邮件列表的档案/span>

转到此页面。

问:GeoTools 库有哪些功能/span>

这是一个很难回答的问题,因为 GeoTools 是一个通用的地理空间库。

以下是当今库中一些重要功能的示例:

  • 支持 OGC Grid Coverage 实施

  • 坐标参考系统和转换支持

  • 使用 OGC 样式层描述符 (SLD) 规范的符号系统

  • 使用 OGC 过滤器编码规范的属性和空间过滤器

  • 支持图形和网络

  • Java 拓扑套件 (JTS) – 支持 OGC 简单特征规范 – 用作矢量特征的几何模型。

  • 无状态、低内存渲染器,在服务器端环境中特别有用

  • 强大的“模式辅助”解析技术,使用 XML 模式绑定到 GML 内容

  • 通过 Web Map Server 和 Web Feature Server 支持与 OGC Web 服务交互

  • 开放式插件系统允许您教授图书馆其他格式

  • ImageIO-EXT 项目的插件允许 GeoTools 从 GDAL 读取额外的光栅格式

问:好的,GeoTools 支持哪些数据格式/span>

GeoTools 通过使用插件支持其他格式。您可以通过仅包含您需要的插件来控制您的应用程序支持的格式。

  • 光栅格式

    •  – 使用常见图像格式(例如 JPEG、TIFF、GIF 和 PNG)的 world plus 图像文件

    •  (由于 ImageIO 项目,允许访问其他 GDAL 格式)

  • 数据库“支持

  •  – 通常用于测试的简单文本文件格式

也许不受支持的模块或插件之一可能满足您的需求。这些模块由社区提供,尚未达到图书馆预期的质量:

还有一些流行或正在开发的“不受支持”的格式:

目前权威的插件列表当然是源码:

  • https://github.com/geotools/geotools/tree/main/modules/plugin

  • https://github.com/geotools/geotools/tree/main/modules/unsupported

地理工具版本

问:GeoTools 版本是如何组织的/span>

像许多开源项目一样,GeoTools 有一个开发版本和一个或多个在任何给定时间处于活动状态的稳定版本。活跃是指项目开发人员正在开发新功能、改进和错误修复。

开发版本是 GitHub 存储库 ( https://github.com/geotools/geotools ) 中的主要分支。这是正在处理最新功能的“前沿”代码。最终这段代码将成为下一个稳定的分支。

稳定版本是 GitHub 存储库中的一个分支。例如,可以在GitHub – geotools/geotools at 14.x找到 14.x 稳定分支 。稳定版本不会获得新功能,但会修复错误,有时还会获得其他小改进。

正式发布是 GitHub 存储库中的一个标签。例如,可以在https://github.com/geotools/geotools/releases/tag/14.0找到 GeoTools 14.0 。同样,可以在https://github.com/geotools/geotools/releases/tag/13.1找到 13.1 版本 。

从 GeoTools 版本 8 开始,major.minor.patch 编号系统适用。

重大的

主要标识符的增加(例如从 8.xy 版本到 9.0.0)表示可能破坏与以前版本的二进制兼容性的实质性更改。

次要的

次要标识符的增量(例如从 8.0.y 版到 8.1.y 版)表示不会破坏与先前版本的二进制兼容性的新功能和/或改进。

修补

补丁标识符的增量(例如从版本 8.0.0 到 8.0.1)表示自上一版本以来的修复和小调整。

问:什么是 SNAPSHOT 版本,我该如何使用它/span>

快照是开发人员正在积极处理的 GeoTools 代码。

通常会有三个活动快照:

  • 一个与稳定分支相关的(例如 GeoTools 23-SNAPSHOT);

  • 与维护分支相关的第二个(例如 22-SNAPSHOT);

  • 第三个用于主分支(例如 24-SNAPSHOT)。

有时也会有应用了错误修复的早期分支的快照版本(例如 GeoTools 19-SNAPSHOT)。

每晚构建新的快照 jar 并将其部署到与用于正式发布的存储库分开的存储库中。如果您使用 Maven 作为构建工具,则可以通过将以下内容添加到您的:

您现在可以通过将项目设置为您的版本属性来针对快照版本构建您的项目,如下所示:

在您的应用程序中主动测试修复时,这是一种很好的方法。

常见的许可证问题

问:GeoTools 使用什么许可证/span>

所有 GeoTools 模块均在 GNU 宽松通用公共许可证 (LGPL) 下发布。GeoTools 可用于商业应用,对 GeoTools 所做的任何更改都需要提供给您的客户。

一个简单的方法是将更改贡献回 GeoTools 项目(但这不是必需的)。

问:我可以在我的商业项目中使用 GeoTools 吗/span>

是的。这是我们选择 LGPL 许可证的原因之一。您可以构建一个使用 GeoTools 作为库的商业应用程序,并在您选择的任何许可下重新分发您的应用程序。您的用户将根据您的许可条款获得您的应用程序的许可,并根据 LGPL 的条款获得 GeoTools 库的许可。您只需要为您的用户提供某种方式来获取 GeoTools 库的源代码,最简单的方法是将您的用户指向 GeoTools 项目的服务器。

但是,如果您选择修改 GeoTools 库本身,那么您必须将这些更改的源代码发布给您的应用程序用户。

最简单的方法是将这些更改提交回 GeoTools 项目,以便将更改合并到核心源代码中。

问:我可以在我的 GPL 项目中使用 GeoTools 吗/span>

是的。这是我们选择 LGPL 许可证的原因之一。您可以构建一个使用 GeoTools 作为库的免费软件应用程序,并在 GPL 许可下重新分发您的应用程序。您的用户将根据 GPL 的条款获得您的应用程序的许可,并根据 LGPL 的条款获得 GeoTools 库的许可。您只需要为您的用户提供某种方式来获取 GeoTools 库的源代码,或者通过将您的用户指向 GeoTools 项目的服务器,或者通过向他们提供 GeoTools 代码的方式向他们提供您的 GPL 代码应用。

但是,如果您选择修改 GeoTools 库本身,那么您必须将这些更改的源代码发布给您的用户。

最简单的方法是将这些更改提交回 GeoTools 项目,以便将更改合并到核心源代码中。

笔记

您还可以将 GeoTools 代码直接合并到您的 GPL 应用程序中。从法律上讲,后者相当于根据 GPL 重新许可GeoTools,这是 LGPL 明确允许的。这种重新许可是单向的,需要特定的操作 – 请参阅 LGPL。

问:我使用 GeoTools 有哪些限制/span>

没有任何。您可以使用 GeoTools 代码阅读、运行、复制或执行任何您想做的事情。这是我们根据 LGPL 授予您的自由软件的四项核心自由之一:为您选择的任何目的使用软件的自由。

LGPL 的唯一限制是当您重新分发 GeoTools 时,即当您将它单独或作为更大产品的一部分传递给其他人时,例如当您共享或出售它时。

问:我重新分发 GeoTools 有哪些限制/span>

从技术上讲,您必须向从您那里收到 GeoTools 副本的每个人提供某种方式来获取库的源代码。实际上,将这些用户指向 GeoTools 项目本身被认为是一个合适的解决方案。

但是,如果您要重新分发 GeoTools 的修改版本,则需要向用户提供对修改后代码的访问权限。这意味着您必须为您的用户提供某种方式来获取修改后的代码,例如自己发布代码。为您的用户提供修改的另一种方法是与我们合作,将您的更改集成到 GeoTools 库中——然后您可以直接使用新库。最好的方法是在我们的问题跟踪器上打开一个更改请求,并向该请求添加一个包含您的更改的代码补丁。

问:如果我仍然不确定我可以做什么,我该怎么办/span>

您可以通过将问题发送到用户邮件列表来澄清您的任何问题:

  • geotools-gt2-users @ lists 。源锻造。网

问:为什么我在 GeoTools 发行版或 javadocs 中找不到模块 X/span>

如果您正在使用最新的 GeoTools 版本,那么您正在寻找的模块很可能是 不受支持的模块。这些模块不是标准 GeoTools 发行版的一部分,但可从GIT 存储库的modules/unsupported文件夹中获得。如果你使用 Maven 作为你的构建工具,你可以像任何其他 GeoTools 模块一样包含一个不受支持的模块的依赖项。

问:什么是不受支持的模块/span>

不受支持的模块是在GIT 存储库中每个 GeoTools 版本的modules/unsupported文件夹中找到的模块。它们不是标准 GeoTools 发行版的一部分,但仍可通过 Subversion、Maven 和手动下载使用。

由于以下一个或多个原因,模块可能不受支持:

  • 它正在开发中,尚未满足通用 GeoTools 发行版中包含的可用性、测试覆盖率、文档等的所有标准。

  • 它缺少模块维护者。

  • 它已被另一个模块取代并从一般发行版中删除,但仍有足够的有用位或活跃用户使其值得保留(至少一段时间)。

不受支持的模块好坏参半:有些是可靠且经常使用的,而有些则处于各种发展或衰退状态。找出任何特定模块状态的最佳方法是查看用户列表档案,然后,如果您想进一步检查,请将问题发布到列表中。

OpenGIS 常见问题

问:与“GeoAPI”的关系/span>

  • GeoAPI 始于 2002 年 James McGill(他还创立了 GeoTools)。当时的目标是为 GeoTools、deegree 和 OpenJump 等独立项目提供通用 API,允许轻松交换代码。

  • 后来,开放地理空间联盟以类似的目标启动了“GO-1”项目。“地理空间对象”项目由当时位于美国的 Polexis 领导。

  • 鉴于 GO-1 和 GeoAPI 目标之间的相似性,我们相互联系并设法合并了两个项目。

  • Polexis 基于 GeoAPI 2.0 制定了以下官方 OGC 规范:http : //www.opengeospatial.org/standards/go(现已停用)。

  • 后来 Polxis 被 Sys Technology 收购,新的所有者和优先事项停止了他们对 GeoAPI / GO-1 的投资。

  • OGC 的 GO-1 / GeoAPI 工作组因缺乏活动而解散。

  • GeoTools 贡献者逐渐接管了 GeoAPI 项目,并在 GeoTools 2.7 中将这些接口折叠回 GeoTools OpenGIS 模块。

问:为什么我会看到与 org.opengis 命名空间相关的 Java 异常/span>

您可能在同一个应用程序中同时拥有 GeoAPI 和 GeoTools,并且类加载器首先查找 GeoAPI 实现。检查您的类路径,包括可能包含 GeoAPI 类的任何带阴影的 jar。

JTS 常见问题

问:JTS 和 GeoTools 是什么关系/span>

我们使用 Java Topology Suite 来表示“简单”几何,并使用 OpenGIS 接口来表示其他所有内容。在某些情况下,我们被迫定义自己的 API 模块,例如数据访问,其中“标准”不可用。

您将经常使用 JTS,因为它实际上就是 GeoTools 的“形状”。它使用像  和

  • 请记住,JTS 是纯拓扑结构,而 Geometry 对象是没有意义的纯形状。对于含义,将该形状放置在地球上,您需要咨询.

  • JTS 拓扑操作在二维笛卡尔平面中工作。考虑到这一点,可以表示三维形状,但不能用它来计算。

  • JTS 专注于线性拓扑,您需要将曲线表示为 具有许多小段的曲线。

有了这些笔记,JTS 听起来可能是有限的;相反,它专注于手头的任务——地理信息系统。虽然 3D 和曲线在 CAD 系统中可能很常见,但我们需要大量资金和原始科学才能使其适用于 GIS。其中一些工作是在带有 ISO 几何的 GeoTools 中进行的。

问:什么几何规格/span>

JTS 是 OGC Simple Features for SQL Specification(即 SFSQL)的实现。它涵盖了 2D 结构,如点、线和多边形。JTS 愿意携带第三点,但不将其用于计算 – 使其成为笛卡尔空间的 2.5D 解决方案。

规格

支持

执行

SQL 的简单功能

2.5D,线性

Java 拓扑套件

ISO几何

3D,曲线

OpenGIS ISO 几何接口

GeoTools 强调使用这两种实现,但坦率地说,ISO Geometry 实现还没有准备好。

元数据常见问题

问:实用程序类/span>

GeoTools 还包括用于支持 GeoTools 实现的实用程序类。

在大多数情况下,这些类被视为内部类,作为消除 Java 版本之间差异的示例。

问:元数据的接口在哪里/span>

接口位于gt-opengis模块中。

如果您无权访问 ISO 文档(谁访问,仅阅读 javadoc 是一个很好的起点。

问:你为什么要在 Java 6 中实现这个类/span>

如果您正在运行 Java 6,请随意使用 Java 6 工具。

来源:sencerity

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月18日
下一篇 2021年11月18日

相关推荐