Java shp 转 GeoJson

news/2024/11/25 21:18:52/

文章目录

  • 1. 依赖安装
    • 1.1 配置软件源
    • 1.2 引入依赖
  • 2. 功能实现
  • 3. 参考链接

1. 依赖安装

1.1 配置软件源

在项目 pom.xml 添加,
maven 的 settings.xml 配置的源,mirrorOf 不能是 *,不然安装不上

<project>...<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>

1.2 引入依赖

geotools 29及以上的版本需要 jdk 11

<project>
...<properties>...<geotools.version>28.5</geotools.version></properties><dependencies>...<dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>${geotools.version}</version></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-geojson</artifactId><version>${geotools.version}</version></dependency></dependencies>
</project>

2. 功能实现

// 新版本 FeatureSource 的包路径有变化,根据IDE提示导入即可
import org.geotools.data.FeatureSource;
import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.geojson.feature.FeatureJSON;import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.nio.charset.Charset;public class GeoTools {/**** @param shpFile .shp 文件路径* @return* @throws IOException*/public static String shpToJsonString(String shpFile) throws IOException {ShapefileDataStore dataStore = new ShapefileDataStore(new File(shpFile).toURI().toURL());// 处理中文乱码dataStore.setCharset(Charset.forName("GBK"));FeatureSource featureSource = dataStore.getFeatureSource();FeatureJSON featureJSON = new FeatureJSON();String result = null;try (StringWriter writer = new StringWriter()) {featureJSON.writeFeatureCollection(featureSource.getFeatures(), writer);result = writer.toString();}return result;}
}

3. 参考链接

  • Re: [Geotools-gt2-users] Shapefile to GeoJson
  • GeoTools读取shp文件中文乱码解决方案汇总

http://www.ppmy.cn/news/1228964.html

相关文章

第二部分:Module(也称为Package)

Module是一个传统的&#xff0c;较成熟的设计元数&#xff0c;虽然使用模块有一些技术上的原因&#xff0c;但主要原因确是“认知超载”。它为我们提供了两种观察模式&#xff0c;一是可以在module中查看细节&#xff0c;而不会被整个模型淹没&#xff0c;二是观察module之间的…

[Kettle] 公式

公式是用来计算数据流中数据的表达式 公式可以是"AB"这样的简单计算&#xff0c;也可以是类似"if/then"复杂业务逻辑判断的表达式 数据源 2019年11月月考成绩(Kettle数据集16).xlshttps://download.csdn.net/download/Hudas/88553816?spm1001.2014.300…

大白话解释什么类加载机制

大家好&#xff0c;我是伍六七。 今天我们来聊聊一个 Java 面试必考基础题目&#xff1a;类加载机制和双亲委派机制。 Java 类的加载机制是 Java 虚拟机&#xff08;JVM&#xff09;中类加载&#xff08;Class Loading&#xff09;和链接&#xff08;Linking&#xff09;的过…

pytest测试框架介绍(1)

又来每天进步一点点啦~~~ 一、Pytest介绍&#xff1a; pytest 是一个非常成熟的全功能的Python测试框架&#xff1b; pytest 简单、灵活、易上手&#xff1b; 支持参数化 能够支持简单的单元测试和复杂的功能测试&#xff0c;可以做接口自动化测试&#xff08;pytestrequests&…

穷举法、回溯法、分支界限法解决旅行商(TSP)问题

文章目录 一、问题描述二、穷举法解决2.1 介绍2.2 代码 三、回溯法解决四、分支界限法4.1 介绍4.2 代码 一、问题描述 有一个旅行商由某城市出发&#xff0c;经过所有给定的 n n n 个城市后&#xff0c;再回到出发的城市。除了出发的城市外&#xff0c;其它城市只经过一回。这…

在bootstrap中,能不能对同一个容器,既使用类row进行网格设计,又使用类d-flex实现弹性盒子的性能?

问&#xff1a;在bootstrap中&#xff0c;能不能对同一个容器&#xff0c;既使用类row进行网格设计&#xff0c;又使用类d-flex实现弹性盒子的性能&#xff1f; 是的&#xff0c;你可以在Bootstrap中同时使用row类进行网格设计和d-flex类实现弹性盒子。这两个类可以结合使用&a…

asp.net校园二手交易平台系统VS开发sqlserver数据库web结构c#编程计算机网页

一、源码特点 asp.net校园二手交易平台系统 是一套完善的web设计管理系统&#xff0c;系统采用mvc模式&#xff08;BLLDALENTITY&#xff09;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 vs2010&#xff0c;数据库为sqlserver2008&a…

Verilog基础:仿真时x信号的产生和x信号对于各运算符的特性

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 信号爆x也许是所有IC人的噩梦&#xff0c;满屏的红色波形常让人头疼不已&#xff0c;但x信号的产生原因却常常只有几种&#xff0c;只要遵循一定的代码规范&#…