0
点赞
收藏
分享

微信扫一扫

Linux 某进程 CPU 高问题,用 Shell 脚本发现处理

小迁不秃头 2024-07-25 阅读 30

文章目录

引言

在使用 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


举报

相关推荐

0 条评论