当前位置: 首页 > news >正文

【GeoJSON】Java 使用 GeoTools 将 SHP 文件转成 GeoJSON 文件

文章目录

  • 引言
  • Maven settings.xml 配置
  • 配置项目中的 pom.xml
  • 引入 GeoTools Jar 包
  • 使用

引言

在使用 GeoTools 时,我们没办法直接使用 Maven 中央库的 GeoTools,所以就需要我们配置一下关于 GeoTools 自己的镜像,所以我们才需要以下这几个步骤:
1、检查一下自己本机 maven 的 settings.xml 配置;
2、配置项目中的 pom.xml;
3、引入 jar 包;
4、使用。

下面就开始一步一步做


Maven settings.xml 配置

在 mirrorOf 标签中配置 mirrorOf 值,切记,mirrorOf 标签中不能使用 * 值。

<mirrors><mirror><id>mirror</id><mirrorOf>central,jcenter,mirrorOf</mirrorOf><name>mirror</name><url>https://maven.aliyun.com/repository/public</url></mirror>
</mirrors>

配置项目中的 pom.xml

在项目的 pom.xml 配置文件中,在 repositories 标签中,配置 GeoTools 的镜像配置。

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><repositories><repository><id>osgeo</id><name>OSGeo Release Repository</name><url>https://repo.osgeo.org/repository/release/</url><snapshots><enabled>false</enabled></snapshots><releases><enabled>true</enabled></releases></repository><repository><id>osgeo-snapshot</id><name>OSGeo Snapshot Repository</name><url>https://repo.osgeo.org/repository/snapshot/</url><snapshots><enabled>true</enabled></snapshots><releases><enabled>false</enabled></releases></repository></repositories></project>

引入 GeoTools Jar 包

这里需要注意 GeoTools 的版本,如果你是 Java 8 版本,就使用 23.x - 28.x;如果是 Java 11,就使用 23.x 及以上的版本。

<dependencies><dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>28.5</version></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-geojson</artifactId><version>28.5</version></dependency>
</dependencies>

使用

import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.geojson.feature.FeatureJSON;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;public class ShapefileToGeoJSON {public static void main(String[] args) {String readFilePath = "F:\\652327103222.shp";String writeFilePath = "F:\\652327103222.geojson";File readFile = new File(readFilePath);try {// 获取 SHP 文件的数据存储ShapefileDataStore dataStore = new ShapefileDataStore(readFile.toURI().toURL());// 处理中文乱码dataStore.setCharset(Charset.forName("GBK"));SimpleFeatureCollection featureCollection = dataStore.getFeatureSource().getFeatures();FeatureJSON featureJSON = new FeatureJSON();try (FileWriter writer = new FileWriter(writeFilePath)) {featureJSON.writeFeatureCollection(featureCollection, writer);}// 释放数据存储资源dataStore.dispose();} catch (IOException e) {e.printStackTrace();}}}




End


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Sprong Boot学习|使用 guava-retrying 实现重试
  • 解决idea无法自动编译的最后一个方法(慎用)
  • 响应式编程(Reactive Programming)是什么?
  • 取消selenium多余日志输出DevTools listening on ws://127.0.0.1:52704/devtools/browser/
  • 贪心算法 | 763.划分字母区间
  • Docker-Compose配置zookeeper+KaFka+CMAK简单集群
  • Redisson中RQueue的使用场景附一个异步的例子
  • 基于vue-grid-layout插件(vue版本)实现增删改查/拖拽自动排序等功能(已验证、可正常运行)
  • Ubuntu24.04 deb文件 安装 MySQL8.4
  • GraphRAG + GPT-4o mini 低成本构建 AI 图谱知识库
  • 配置mysql8.0.21版本docker-compose启动容器
  • 星环科技携手东华软件推出一表通报送联合解决方案
  • mac大文件清理软件哪个好 mac大文件怎么清理 苹果电脑清理软件推荐免费
  • 深度学习复盘与论文复现E
  • 接口三层架构
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • Android交互
  • android图片蒙层
  • ES6系统学习----从Apollo Client看解构赋值
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • input的行数自动增减
  • LintCode 31. partitionArray 数组划分
  • MobX
  • React-Native - 收藏集 - 掘金
  • SpiderData 2019年2月25日 DApp数据排行榜
  • vue-cli在webpack的配置文件探究
  • 分类模型——Logistics Regression
  • 后端_MYSQL
  • 力扣(LeetCode)22
  • 事件委托的小应用
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • postgresql行列转换函数
  • Semaphore
  • 如何在招聘中考核.NET架构师
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # centos7下FFmpeg环境部署记录
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (BFS)hdoj2377-Bus Pass
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (二)Linux——Linux常用指令
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (区间dp) (经典例题) 石子合并
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (已解决)什么是vue导航守卫
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • 、写入Shellcode到注册表上线
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core 管理用户机密