前言
早就听闻大名鼎鼎的GeoTools,因为自己不搞Java,所以之前没用过,
背景
最近有个需求,一个白模系统,具体是数据是用SDE导入到postgresql中,然后用arcgis server发布了矢量,最后用 arcgis api for js 4.x拉伸,得到有高度的白模。以前的数据都是通过sde导入的,现在的需求是要通过前端,用户自己去更新矢量数据。本系列只涉及读取shp数据并插入到SDE连接的PostgreSQL已有表中。
正常来说客户的数据量不大,可以用前端来做的,前端也有库解析shp文件,然后利用FeatureLayer.applyEdits() 实现跟数据库的操作,但是我还是想尝试下GeoTools,是个学习的机会,另外就是觉得前端不适合处理数据,
环境
Windows 10
IntelliJ IDE Ultimate 2021.3
PostgreSql 9.4
PostGIS Bundle 2.2 for PostgreSQL ×64 9.4
ArcGIS 10.4.1
ArcGIS Server 10.4.1
ArcGIS API for JavaScript 4.24
步骤
一.找到GeoTools官网
会看到给出了官网列出几种环境的搭建方式,我们选择在IntelliJ IDE搭建环境:

二.安装jdk
jdk版本有很多,目前已经到Java20,但是感觉主流还是Java8,至少搭建GeoTools环境还是推荐用jdk1.8,尤其新手不要自找麻烦。下表展示了GeoTools与Java版本的对应关系(表格来源《GeoTools 地理信息系统开发》表2-1):

另外注意设置环境变量
三.新建工程
1.顺序依次为:新建工程,选择Maven,单击"Create from archetype",选择“org.apache.maven.archetypes:maven-archetype-quickstart”

2.单击Next,填写信息:

3.保持默认,单击Finish:

4.创建后的工程为(红可以看到色框在转圈像是下载包):

5.完全结束后是这样子:

6.运行下App文件,会打印处我们熟悉的“Hello World”:

四.将Jar包添加到工程
首先官方文档有个提示,启用离线模式。原文是“如果您按照本教程进行操作,则可能已经提供了预加载的 Maven 存储库。我们可以使用离线模式来确保 Maven 不会尝试下载任何依赖项”, 让设置里面把"Work offline”打个勾。但是我们根据官方教程操作,发现没有预加载库,所以这个选项务必不要打勾,否则依赖会下载失败!我们需要在线下载依赖。

1.打开项目根目录下的 pom.xml 文件。您可以看到我们之前通过向导输入的一些信息。主要涉及到GeoTools的版本、依赖,存储库。不过为了加快速度,直接复制一份过去得了:
 pom.xml 复制完毕后发现会有报错现象:

2.右键项目,选择Maven,选择"Reload project":

3.我们发现可以了:

4.可以到C盘相关文件夹里面看到相关的文件都下载完成(其它两个27和30版本是之前踩坑留下的,为了写博客重新用了28版本):

搭建环境部分到此结束,如果想测试环境是否可以运行,到官网后面有个“Quickstart Application”根据1~6步进行操作,会显示出地图的。

参考资料
有些资料可能没参考,只是觉得不错,所以收藏一下
1.《GeoTools 地理信息系统开发》 王项 刘钧文 王新宁 孙运娟
2. Getting started with geotools.org using IntelliJ IDEA 2020(油管视频)
3.Geotools简介以及quickstsrt加载shp文件并显示
4.geoTools18.4开发环境快速搭建,使用java可视化读取shapefile文件_idea配置geotools_GIS开发者的博客-CSDN博客(不使用Maven)
5. GeoTools, the Java GIS toolkit Files (geotools包离线下载)
6. Introduction to GeoTools(概要,及一些常用的用法)
7.IDEA运行时报错“类文件具有错误的版本 55.0, 应为 52.0”的解决方法
8.GeoTools应用:提取Shape文件属性列头信息(1)(本地导入依赖)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |