填坑:Maven工程引用GeoTools依赖

这两天在做一个系统的后台,需要用到GeoTools做后端空间分析,记录一下自己遇到的问题。
项目通过Maven进行构建,参照文档Maven Quickstart添加GeoTools依赖和远程仓库地址。

    <dependencies><dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>${geotools.version}</version></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-swing</artifactId><version>${geotools.version}</version></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-epsg-hsql</artifactId><version>${geotools.version}</version></dependency></dependencies><repositories><repository><id>maven2-repository.dev.java.net</id><name>Java.net repository</name><url>http://download.java.net/maven/2</url></repository><repository><id>osgeo</id><name>Open Source Geospatial Foundation Repository</name><url>http://download.osgeo.org/webdav/geotools/</url></repository><repository><snapshots><enabled>true</enabled></snapshots><id>boundless</id><name>Boundless Maven Repository</name><url>http://repo.boundlessgeo.com/main</url></repository></repositories>

但是我的maven没有把依赖下载成功,于是我就用笨办法,将GeoTools对应的编译版本下载下来,并利用《填坑:IDEA导入Maven工程无法下载依赖项》方法,将依赖的jar包注册到本地仓库中。问题就随之而来了。
在引用到GeoTools类库中,定义坐标系,并建立坐标系转换关系时,报错!

CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4326");
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:3785");MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS);

对比参考文档CRS Lab Application,并没发现什么不同。但从报错结果看,是定义的EPSG坐标系无法实例化,折腾再三,将geotools文件夹放入src目录下,然后再项目classpath目录下引用对应的jar包,这样能够运行起来,但是将项目打包后却仍然报错。
最终,发现引入以上三个GeoTools库的依赖关系时,它会自动构建和其他包的依赖并将这些依赖包含在它的次层级内,如图所示

img

从本地仓库中,也可以看出这种依赖关系

在这里插入图片描述

最后还是翻墙,老老实实将依赖下载下来。如果你配置了阿里的镜像,可以在自己的maven配置文件修改一下,直接从GeoTools的远程库中下载。

    <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*,!osgeo,!maven2-repository.dev.java.net,!boundless</mirrorOf> </mirror>

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

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

相关文章

php byte stringbuffer,重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结

重拾java基础(十三)&#xff1a;String姐妹StringBuffer、StringBuilder总结一、StringBuffer类概述buffer&#xff1a;缓冲2. 字符串缓冲区&#xff0c;跟String非常相似&#xff0c;都是用来存字符串数据的3. String类和StringBuffer类中都有一个char数组&#xff0c;它就是缓…

php 页面开启错误提示,php开启与关闭错误提示

windows系统开关php错误提示如果不具备修改php.ini的权限&#xff0c;可以将如下代码加入php文件中&#xff1a;代码如下 复制代码ini_set("display_errors", "On");error_reporting(E_ALL | E_STRICT);当然&#xff0c;如果能够修改php.ini的话&#xff0…

Maven下载jar包时出错、Maven仓库中出现.lastUpdated结尾的文件问题及解决

创建一个新项目&#xff0c;下载依赖时&#xff0c;出现以下错误&#xff0c;在本地maven仓库中的远程镜像地址配置也正确的情况下&#xff0c;分析了以下问题&#xff1a; 在这里插入图片描述1.idea报依赖冲突的错误&#xff0c;打开Project Structure&#xff0c;如果发现相…

ga tsp matlab,遗传算法(GA)求解TSP问题MATLAB程序

本程序求解常见的组合优化问题TSP问题&#xff0c;如果仅仅是用一个程序去求解一个优化问题&#xff0c;显然这样的工作意义并不大。主要是因为求解的好坏往往是很难评价的&#xff0c;另外尤其对于遗传算法来说&#xff0c;遗传算法交叉变异方法不同&#xff0c;交叉率&#x…

墨卡托投影介绍

一、墨卡托投影 墨卡托投影&#xff0c;又称正轴等角圆柱投影&#xff0c;由荷兰地图学家墨卡托(G.Mercator)于1569年创拟。假设地球被套在一个圆柱中&#xff0c;赤道与圆柱相切&#xff0c;然后在地球中心放一盏灯&#xff0c;把球面上的图形投影到圆柱体上&#xff0c;再把…

disallow php,在robots.txt中Disallow: /abc和Disallow: /abc/的区别

站长&#xff1a;不就是多了条斜杠吗&#xff0c;能有多大不同&#xff1f;小编&#xff1a;很多新手站长搞不明白这其中的作用&#xff0c;其实作用区别很大的呦。Disallow: /abc表示禁止蜘蛛索引网站根目录下所有以abc开头的文件夹和文件举例&#xff1a;/abc.html/abcde.php…

Java double转decimal_Java中Double与BigDecimal的相互转换

今天写代码过程中&#xff0c;发现一个Double的变量通过new BigDecimal(Double d)转换为BigDecimal时&#xff0c;有效数字改变了&#xff0c;如下&#xff1a; public class BigDecimalTest {public static void main(String[] arg) {String s1 "123.45";Double d…

oracle数据库日期加一,日期和Oracle数据库

我想知道Oracle环境中的哪个参数导致这个&#xff1a;假设我在两台不同的服务器上有两个数据库。数据库中的数据相同。在sql developer下我写这个查询&#xff1a;select to_char(date_column, DD/MM/YYYY) from my_table;当我在sql developer中检查my_table时&#xff0c;日期…

JTS使用实践

文章目录JTS使用实践一、前言简介环境二、正文基础说明使用记录创建几何要素操作示例JTS使用实践 一、前言 简介 JTS Topology Suite&#xff08;Java Topology Suite&#xff09;是一个开源的Java软件库&#xff0c;它为欧几里得平面线性几何提供了一个对象模型以及一组基本…

matlab 信息融合,MSDF,matlab,多传感器信息融合

MSDF&#xff0c;matlab&#xff0c;多传感器信息融合关注次数&#xff1a; 164下载次数&#xff1a; 15文件大小&#xff1a; 7.52M下载需要积分&#xff1a; 1代码分类&#xff1a;开发平台&#xff1a; matlab上传会员&#xff1a; yhcpp下载代码预览代码Downma.com:专注MAT…

JTS基本概念和使用

简介 JTS是加拿大的 Vivid Solutions公司做的一套开放源码的 Java API。它提供了一套空间数据操作的核心算法。为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词API。 操作 表示Geometry对象 Geometry类型介绍见另一篇文章&#xff1a;WKT WKB和GeoJSON pa…

sde oracle11g,Arcsde post oracle11g报错解决办法

环境&#xff1a;oracle11.2.0.3和oracle10.2.0.1&#xff0c;Arcsde9.3.1在oracle11.2.0.3中创建ab实例&#xff0c;然后使用Arcsde9.3.1 post oracle11.2.0.3创建配置sde&#xff0c;在post过程中报错&#xff0c;错误内容为[Thu Apr 04 10:24:55 2013] ERROR: Unable to loa…

GIS算法:可视化工具JTS TestBuilder

java、python、js都有可以引用的第三方包&#xff0c;实现GIS的空间算法。 java是jts&#xff0c;python是shapely&#xff0c;js是turf。 其中jts值得首先拥有&#xff0c;因为jts提供了一个界面工具JTS TestBuilder&#xff0c;可以在上面绘制图形&#xff0c;验证各种算法…

php aes 3des区别,AES和3DES之间的区别

Post Views:283AES与3DESAES(高级加密标准)和3DES(也称为Triple DES(数据加密标准))是当前数据加密中的两个标准。AES是使用替代置换网络的全新加密&#xff0c;而3DES只是对依靠平衡Feistel网络的旧DES加密的一种改编。基本上&#xff0c;3DES只是将DES应用于加密信息的 3次。…

wkt区域围栏

API文档 http://shengshifeiyang.gitee.io/geotools-learning/ /** * 判断以x,y为坐标的点point(x,y)是否在geometry表示的Polygon中 * param x * param y * param geometry wkt格式 POLYGON((0 0, 10 0, 10 10, 0 10,0 0)) * return */ public static boolean withinGeo(doub…

oracle监听生成trace,监听器控制程序lsnrctl跟踪trace file

Oracle监听器是一个独立的数据库组件&#xff0c;在整个体系中扮演非常重要的作用。即使在windows平台上&#xff0c;监听器listener也被实现成为一个独立的进程程序。在一些与网络相关的故障中&#xff0c;监听器相关故障占了很大部分。了解监听器的工作过程&#xff0c;分析每…

Math.sin() 与 Math.cos() 用法

Math.sin() 与 Math.cos() 用法 Math.sin(x) x 的正玄值。返回值在 -1.0 到 1.0 之间&#xff1b;Math.cos(x) x 的余弦值。返回的是 -1.0 到 1.0 之间的数&#xff1b; 这两个函数中的X 都是指的“弧度”而非“角度”&#xff0c;弧度的计算公式为&#xff1a; 2PI/360…

oracle关联字段和序列,oracle(9) 序列和约束

序列 SEQUENCE也是数据库对象之一&#xff0c;作用&#xff1a;根据指定的规则生成一些列数字。序列通常是为某张表的主键提供值使用。主键&#xff1a;通常每张表都会有主键字段&#xff0c;该字段的值要求非空且唯一&#xff0c;使用该字段来确定表中的每一条记录。CREATE SE…

lambda表达式处理异常_lambda表达式内出现异常无法throw抛出

lambda体中有受检异常,为什么不能在lambda表达式外层try catch,只能在lambda里面try catch xxx.getUpdateList().forEach((map) ->{xxxVO vo new xxxVO();BeanUtils.populate(vo,map); // populate方法往外抛了异常list.add(vo);});因为lambda表达式本身没有处理异常的机制…

lambda处理异常四种方式

最近对接第三方呼叫系统&#xff0c;第三方SDK的所有方法里都有异常抛出&#xff0c;因为用到了lambda&#xff0c;所以异常处理还是很必要的。 本文主要用到了四种解决方案&#xff1a; 直接代码块处理自定义函数式接口&#xff0c;warp静态方法通过Either 类型包装通过Pair…