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

开源GIS浅谈 谈到GIS软件,首先让我们想到的是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.4,其发展可谓风生水起。MapInfo软件也不错,可是给人的感觉是渐渐被淘汰了似的,周围使用该软件的人并不算多。同时也使用过国内的SuperMap软件,MapGIS软件等,个人感觉还是强大的ArcGis产品有一段距离的,希望国内的GIS产品体系越做... 阅读详情
AI摘要

本文介绍了Java开发领域中的四个重要开源GIS库:JTS(提供几何操作)、GeoTools(处理空间数据的全面工具)、GeoServer(WebGIS服务支持)和uDig(桌面GIS应用)。这些库对于地理信息系统开发和地图应用构建具有关键作用,支持标准规范且易于定制。,

作者:取个名字叫狗哥

在Java开发领域,开源GIS(地理信息系统)库扮演着至关重要的角色,为开发者提供了丰富的工具和框架来处理地理空间数据、构建地图应用以及进行复杂的地理分析。这些库不仅遵循行业标准,如OGC(开放地理空间联盟)制定的一系列规范,还具备高度的可定制性和扩展性,降低了地理信息系统开发的门槛。Java开源GIS库以其卓越的技术贡献和活跃的社区支持,在地理信息科学和技术行业中具有广泛的影响力和应用价值。开发者可以根据项目需求灵活选择和集成这些库,以构建出强大而高效的应用系统。在此我们分享4个常见的开源GIS 平台及软件,看看你用过几个?

一、JTS

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

image.png​

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

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

maven仓库配置

image.png​

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

GeoTools POM依赖

image.png​

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等。

image.png​

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

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

image.png​

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

WPS Plugin 是一个开源的 GeoServer 插件,用于支持 WPS(Web Processing Service)标准。它可以将 GeoServer 的数据和功能暴露为 WPS 服务,允许用户通过 Web 接口来执行地理处理任务。
Image Mosaic JDBC Plugin 是一个开源的 GeoServer 插件,用于支持基于 JDBC 数据源的图像镶嵌。它可以从数据库中动态加载图像数据,支持各种类型的数据源和图像格式。
CSS Styling Plugin 是一个开源的 GeoServer 插件,用于支持基于 CSS 样式表的地图渲染。它可以通过简单的 CSS 语法来控制地图的样式和布局,支持各种类型的数据源和图层。

image.png​

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

*{ 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 样式。它提供了一些可视化工具和编辑器,可以快速创建和修改样式,并实时预览效果。

image.png​

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平台来用开源组件建设空间应用。
网址是:http://udig.refractions.net/download/

image.png​

uDig 图源@取个名字叫狗哥

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

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

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

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

【Java开源GIS系统】 google_ad_client = pub-8112432724706407;google_ad_width = 728;google_ad_height = 90;google_ad_format = 728x90_as;google_ad_type = text_image;google_ad_channel = ;<script type=te 阅读详情

相关推荐

Java+GeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示

GeoTools 是一个开源的 Java GIS 工具包,可利用它来开发符合标准的地理信息系统。GeoTools 提供了 OGC (Open Geospatial Consortium) 规范的一个实现来作为他们的开发。参考其quick start教程,实现集成到maven项目中并运行示例代码。

BADAO_LIUMANG_QIZHI的博客 1万+

Java GIS:使用地理信息系统和空间数据

我们将讨论地理信息系统 (GIS) 以及如何在 Java 中使用空间数据。 GIS 用于分析、管理和可视化空间数据,可以帮助软件开发人员构建涉及基于位置的服务、地图绘制和空间分析的强大应用程序。

u011024436的博客 2949

Java与GIS开发

通过这些示例代码,你可以开始使用Java进行GIS开发,并根据实际需求进行相应的扩展和应用。Java提供了许多处理地理空间数据的库,其中最著名的是GeoTools。GeoTools是一个开源的Java库,用于处理地理空间数据的读取、写入、转换和分析。JTS是一个用于处理地理空间数据的Java库,提供了许多空间分析和操作的功能。Java是一种广泛应用于软件开发的编程语言,它提供了强大的工具和库,可用于构建高效的GIS应用程序。你可以根据实际需求修改多边形的坐标和缓冲区的距离来进行相应的空间分析。

MXMIMM的博客 1825

sqlserver客户端工具_记录:GIS常用开发工具

一、GIS软件ArcGIS Erdas Envi QGIS二、二次开发编程语言页面前端:html、css、JavaScript 、JQuery、Bootstrap、Angular、Vue。服务端:Java 、nodejs、Tomcat。C#:二次开发 , https://docs.microsoft.com/zh-cn/dotnet/csharp/Python : 数据分析数据库: SqlServ...

weixin_39871162的博客 719

java GIS地理信息处理 geometry数据处理 GeomUtil

GeoJson对Geometry的创作工具。

shengguimin的博客 903

开源GIS工具分享,基于Java的开源GIS代码库GeoTools介绍

GeoTools介绍 GeoTools是一个基于Java开发的开源(LGPL)的GIS代码库,它为地理空间数据的操作提供了符合标准的方法,例如实现地理信息系统。GeoTools 库数据结构基于开放地理空间联盟 (OGC) 规范。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 1629

java与gis开发

http://www.ccg.leeds.ac.uk/geotools/ geotool是以OGC标准开发的库,可以作为一个很基础的库,对shapefile等数据进行操作 geoserver,可以快速地发布一些地图服务,兼容绝大多数的数据格式和数据库。其中geowebcache能快速完成栅格瓦片的制作。 结合geoserver,postgis等等后端技术有一个软件集合叫做boundless可以实现多款软件的连接工作。 PS:作者:brandonxiang 链接:https://www.zhihu..

m0_61027476的博客 2947

基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理

基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理

watch361的博客 1万+

Java常见gis开源框架,开源gis大全java

? ? WebGIS框架简介 常用开源webgis套装 开源webgis相关软件(服务)简介 ? ? ...GeoTools OpenLayers OpenMap Ka-Map OpenScales MapEasy Java Applet ? 客户......基于开源软件平台的网格GIS原型系统_计算机软件及应用_IT/计算机_专业资料。基于开源软件平台的网格GIS 原型系统 陈斌 北京大学遥感与...

weixin_42438410的博客 2624

HA集群 执行 hdfs haadmin -transitionToActive 失败

最近把一个单NameNode集群变更为HA集群,过程中都很顺利,nn1和nn2两个NameNode都显示standby状态,但是把nn1或者nn2切换到active状态时就会报错抛异常。 查看master上namenode启动日志,如下: Incompatible clusterID for journal Storage Directory /home/hadoop-zero/bigdat...

qq_34727158的博客 1763

手把手教你用Python实现ITRS与GCRS坐标转换(附完整代码)

本文详细介绍了如何使用Python的Astropy库实现ITRS与GCRS坐标转换。文章从环境配置、坐标对象构建入手,深入解析了transform_to方法背后的转换矩阵与地球定向参数管理,并通过卫星地面轨迹计算实战案例,帮助开发者掌握高精度空间坐标转换的核心技术与工程实践。

weixin_28335283的博客 79

一些常用的GIS开源库

1.FWTools: Open Source GIS Binary Kit for Windows and Linux http://fwtools.maptools.org/2.MapServer :  http://mapserver.gis.umn.edu     MapServer是一个开放的用于建设空间数据发布以及制图网络应用程序的开发环境,MapServer 不是一个功能齐全的

gisqd的专栏 1721

ksz9031 mmd读取不了_ZYNQ. LwIP.PHY.KSZ9031RNX

新一块板子米尔科技的z-turn 使用的PHY芯片是Micrel的 KSZ9031RNX 而不是zedboard上的Marvell的。直接使用lwip的echo server demo时会报错 , 无法启动。在网上找了很久终于找到几篇关于这个问题的文章。修改PHY的驱动xemacpsif_physpeed.c文件该芯片的PHY Identifier 是 0x0022bsp设置中修改参数以提速MEM...

weixin_39626298的博客 923

怎样了解开源GIS

如今,开源GIS资源多如繁星啊,我们该从何下手呢? 首先明确选择的几个标准: 社区活跃度,功能完善程度,与项目匹配程度,与自身基础的匹配程度。   社区不活跃,就表明使用者少啊,今后有问题都没人帮忙,我曾经使用 MapGuide 做一个Web GIS, 发现使用者不多,尤其国内的资源比较少。   与项目匹配,不要盲目选择大而全的GIS项目做开发,比如使用GRASS做一个简单的地图展示系统

ErikLiu的专栏 1974

NLP高频面试题(三十一)——多模态预训练模型的主要结构、特征对齐与融合方法及对比损失函数详解

多模态预训练模型通过创新的架构设计和训练策略,在跨模态理解和表示学习上取得了显著进展。从单塔到双塔,从编码器-解码器混合到图结构模型,研究者们探索了不同的模态融合途径;配合显式与隐式对齐手段以及有效的对比学习损失,当前的多模态模型已经能够在图文检索、视觉问答、图像描述生成等任务上接近甚至超越专门的有监督模型。可以说,多模态预训练成为了继NLP和CV单模态预训练之后的又一个AI热点领域。模型规模与泛化:与单模态的大型预训练模型类似,多模态模型的参数规模和训练数据规模在迅速增长。

WeLearnNLP 2923

[RAM] DRAM 导论:DDR4 | DDR5 | LPDDR5 | GDRR6 | HBM 应运而生

有数据的地方就有存储, 内存是谁都离不开的产品。而动态随机存取存储器(DRAM)作为一种常见的内存。本博客将介绍DRAM的基本概念、工作原理、优缺点以及应用领域等方面。

串起点滴 3917

【GIS】开源GIS简介

C++开源GIS中间件类库   GDAL(栅格)/OGR(矢量)提供了类型丰富的读写支持。   GEOS(Geometry Engine Open Source)是基于C++的空间拓扑分析实现类库,遵循LGPL协议发布。GEOS类库提供了丰富的空间拓扑操作函数,用以判断几何对象间的相互关系, 以及空间分析操作之后形成新的几何对象。点、线、面要素的两两相互关系,包括相合、分离、相交、重合、包含、...

sunriver2000的专栏 1245

【JAVA】海康威视门禁机ISAPI接口开发,人脸上传更新接口

本文实现了一个HTTP工具类HTTPClientUtil,提供GET/POST/PUT/DELETE请求方法,支持摘要认证。工具类封装了Apache HttpClient,设置连接超时、最大连接数等参数,通过DeviceInfoDTO传递设备IP、端口和认证信息。文中还展示了两个应用示例:userInfoAdd()用于添加人员信息,FaceDataRecordAdd()用于添加人脸数据,均通过POST请求与设备ISAPI接口交互。该工具类简化了HTTP请求处理,支持设备管理系统的集成开发。

qq_27246521的博客 586

常用开源GIS项目

常用开源GIS项目 常用开源桌面GIS软件 QGIS 始于2002年5月,算得上是开源GIS平台中的后起之秀。界面友好,分析功能可与GRASS GIS相媲美。 主页:http://www.qgis.org/ GRASS GIS 源于1982年美国军方(陆军工程兵团的一个分支——美国陆军建筑工程研究实验室)的实际应用,重量级的开源桌面GIS软件

畅图科技 2万+

FATFS挂载多个存储设备(2):功能配置及功能测试

本文介绍了基于FATFS文件系统实现多存储设备挂载的方法,包含底层设备驱动函数编写、功能配置、功能测试。

kevin1499的博客 2585

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java gis项目_记录:GIS常用开发工具

一、GIS软件ArcGIS Erdas Envi QGIS:开源国产:超图、中地MapGIS二、二次开发编程语言页面前端:html、css、JavaScript 、JQuery、Bootstrap、Angular、Vue。服务端:Java 、nodejs、Tomcat。C#:二次开发 , https://docs.microsoft.com/zh-cn/dotnet/csharp/Python :...

weixin_36117191的博客 3304

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

开源GIS系统

平台的对峙  开发者都希望自己的软件能够运行在尽可能多的计算机上。然而事与愿违,摆在GIS开发者面前的仍然是对峙的平台。J2EE随着Java5。0的发布,已经正式更名为JavaEE, 而微软也正式发布了。NET2。0以及集成开发环境利器Visual Studio 2005。到底是。NET还是Java? 面对旗鼓相当的Java和。NET阵营,其实GIS平台开发商的答案早已揭晓,那就是都要!由于。

ruixj的专栏 5404

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

我用过的几个开源GIS软件

去年开始接触了一些开源GIS软件,个人觉得这些软件做的挺不错的,想介绍给使用GIS的朋友们。 从空间数据库 说起吧。在空间数据库领域,商业化的产品有ORACLE SPATIAL,以及以前的ARC SDE等等,而开源空间数据库虽然在功能上略有欠缺,但是在性能上毫不逊...

chenyijie1529的博客 292

Java和开源GIS平台

      GIS领域的应用级开发,离不开底层平台的支持,国外有ESRI、Intergraph、Mapinfo等知名的商业平台提供商,也有数以百计的开源GIS项目组。由于GIS是一种可视化的信息管理技术,和图形有着密切的关系,所以开源GIS项目大多采用C、C++、Java语言编写,其中又以Java开发的最多。      Deegree是一个德国的开源GIS项目,项目地址http://deegree

iwillsw的专栏 6281
上一篇: 每个关注高可用的人都应该了解的监控知识:监控圈子的行业黑话(上)
下一篇: 3D智能相机:带你读懂3D机器视觉如何实时扫描构建物体的3D模型
Mapmost
博客等级 码龄3年 1721粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值