likes
comments
collection
share

JAVA中常用开源GIS库,你用过几个?

作者站长头像
站长
· 阅读数 8

作者:取个名字叫狗哥

在Java开发领域,开源GIS(地理信息系统)库扮演着至关重要的角色,为开发者提供了丰富的工具和框架来处理地理空间数据、构建地图应用以及进行复杂的地理分析。这些库不仅遵循行业标准,如OGC(开放地理空间联盟)制定的一系列规范,还具备高度的可定制性和扩展性,降低了地理信息系统开发的门槛。

Java开源GIS库以其卓越的技术贡献和活跃的社区支持,在地理信息科学和技术行业中具有广泛的影响力和应用价值。开发者可以根据项目需求灵活选择和集成这些库,以构建出强大而高效的应用系统。在此我们分享4个常见的开源GIS 平台及软件,看看你用过几个?

一、JTS

JTS Topology Suite (JTS)是一个开源的Java软件库,它提供了平面几何的对象模型和基本的几何函数,符合OGC发布的“Simple Features for SQL”(SFSQL)规范。JTS被设计用作基于矢量地理信息软件的核心组件,还可以用作计算几何的通用算法库。

JAVA中常用开源GIS库,你用过几个?

JTS依赖 图源@取个名字叫狗哥

几何关系判断

功能描述
相等(Equals)几何形状拓扑上相等
不相交(Disjoint)几何形状没有共有的点
相交(Intersects)几何形状至少有一个共有点
接触(Touches)几何形状有至少一个公共的边界点,但是没有内部点
交叉(Crosses)几何形状共享一些但不是所有的内部点
内含(Within)几何形状A的线都在几何形状B内部
包含(Contains)几何形状B的线都在几何形状A内部
重叠(Overlaps)几何形状共享一部分但不是所有的公共点,而且相交处有他们自己相同的区域

几何关系分析

功能描述
缓冲区分析(Buffer)包含所有的点在一个指定距离内的多边形和多多边形
凸壳分析(ConvexHull)包含几何形体的所有点的最小凸壳多边形
交叉分析(Intersection)A∩B 交叉操作就是多边形AB中所有共同点的集合
联合分析(Union)AUB AB的联合操作就是AB所有点的集合
差异分析(Difference)(A-A∩B) AB形状的差异分析就是A有B没有的所有点的集合

二、GeoTools

Geotools是一个开源的Java库(官网 www.geotools.org ), 用于处理和分析地理空间数据,并提供了一组工具和API,以便在Java应用程序中使用地理空间数据。它是一个成熟的GIS库,具有广泛的功能和支持,可用于多种应用场景,包括地图制作、数据分析、空间查询和可视化等。 Geotools功能丰富其特点有:

  • 支持多种开放标准,如OGC、ISO和OpenGIS等,使其可以与其他GIS和地理信息系统进行交互。
  • 可以处理多种数据格式,包括Shapefile、GeoJSON、KML、GML等。
  • 支持多种数据源,包括文件、数据库、Web服务等。
  • 提供了多种空间分析工具,如缓冲区分析、空间查询、地理编码、空间统计分析等。
  • 支持多种投影和坐标系统,并提供了一些常见的投影和坐标系统的定义。
  • 提供了多种可视化工具,如渲染器、符号化工具、标注等,可以帮助用户创建动态和交互式地图。

maven仓库配置

JAVA中常用开源GIS库,你用过几个?

maven配置 图源@取个名字叫狗哥

GeoTools POM依赖

JAVA中常用开源GIS库,你用过几个?

geotools依赖 图源@取个名字叫狗哥

  • gt-shapefile:用于读取和写入Shapefile文件的库。
  • gt-swing:用于创建Swing应用程序的库,包括创建地图框架和显示地图。
  • gt-epsg-hsql:用于提供EPSG投影和坐标系统定义的库。
  • gt-geojson:用于读取和写入GeoJSON文件的库。
  • gt-referencing:用于处理坐标参考系统和投影的库。
  • gt-coverage:用于处理栅格覆盖数据的库。

三、GeoServer

GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。

GeoServer 支持 OGC 标准规范的系列服务,支持 PostgreSQL、MySQL 等数据库,以及ArcSDE、ShapeFile 等中间件和文件资源,能够将网络地图输出为 JPEG、PNG、KML 等多种图片和数据格,支持多种客户端框架,如Openlayers、mapbox等。

JAVA中常用开源GIS库,你用过几个?

GeoServer界面 图源@取个名字叫狗哥

GeoServer 常用插件 GeoWebCache 是一个开源的瓦片缓存服务器,可以和 GeoServer 配合使用,提高地图的性能和可扩展性。GeoWebCache 支持多种数据源和投影方式,可以缓存各种类型的地图数据。

JAVA中常用开源GIS库,你用过几个?

图解缓存服务 图源@取个名字叫狗哥

WPS Plugin 是一个开源的 GeoServer 插件,用于支持 WPS(Web Processing Service)标准。它可以将 GeoServer 的数据和功能暴露为 WPS 服务,允许用户通过 Web 接口来执行地理处理任务。

Image Mosaic JDBC Plugin 是一个开源的 GeoServer 插件,用于支持基于 JDBC 数据源的图像镶嵌。它可以从数据库中动态加载图像数据,支持各种类型的数据源和图像格式。

CSS Styling Plugin 是一个开源的 GeoServer 插件,用于支持基于 CSS 样式表的地图渲染。它可以通过简单的 CSS 语法来控制地图的样式和布局,支持各种类型的数据源和图层。

JAVA中常用开源GIS库,你用过几个?

样式配置 图源@取个名字叫狗哥

*{ fill: #02C6FF; fill-opacity: 0.7; stroke-width: 0.2; }

GeoServer SLD Styler是一个基于 JavaScript 和 XML 的插件,用于创建和编辑 GeoServer 的 SLD 样式文件。它提供了一个可视化的界面,可以方便地编辑样式,还支持导入和导出样式文件。

GeoServer Vector Tiles是一个用于创建和发布矢量瓦片的插件,支持各种类型的矢量数据,包括 GeoJSON、KML、WKT 等。它可以方便地将矢量数据发布为矢量瓦片服务,以提高数据加载和渲染的效率。

GeoServer-Manager是一个 Java 库,用于管理 GeoServer 的配置和数据。它提供了一些简单易用的 API,可以用于添加、删除和修改 GeoServer 中的图层、工作区、样式、数据存储等。 GeoServer-StyleEditor是一个 Web 应用程序,用于编辑 GeoServer 样式。它提供了一些可视化工具和编辑器,可以快速创建和修改样式,并实时预览效果。

JAVA中常用开源GIS库,你用过几个?

GeoServer-StyleEditor 图源@取个名字叫狗哥

GeoServer-FeatureInfo 用于增强 WMS GetFeatureInfo 请求的功能。它可以将 GetFeatureInfo 请求的结果以表格形式呈现,支持自定义样式和排序,并提供了一些钩子函数和 API,可以用于扩展功能和定制化开发。

App-Schema一个开源的数据转换和发布框架,可以将非空间数据转换为空间数据,并发布到 GeoServer 上。它支持各种数据源和格式,包括 XML、JSON、CSV 等。 GeoServer-Printing用于生成高质量的地图打印输出。它支持自定义地图布局、比例尺、图例、文本注记等功能,并提供了多种输出格式和打印选项。

四、uDig

uDig是Geotools 的延伸项目,一个 open source (EPL and BSD) 桌面应用程序框架,构建在Eclipse RCP和GeoTools上的桌面GIS(地理信息系统);是一款开源桌面GIS软件,基于Java和Eclipse平台,可以进行shp格式地图文件的编辑和查看;是一个开源空间数据查看器/编辑器,对OpenGIS标准,关于互联网GIS、网络地图服务器和网络功能服务器有特别的加强。uDig提供一个一般的java平台来用开源组件建设空间应用。 网址是:udig.refractions.net/download/

JAVA中常用开源GIS库,你用过几个?

uDig 图源@取个名字叫狗哥

关注Mapmost,持续更新GIS、三维美术、计算机技术干货

Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。

欢迎进入官网体验使用:Mapmost——让人与机器联合创作成为新常态

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。微信公众号:Mapmost