shpファイルをロードして表示するためのGeotoolsとquickstsrtの紹介

シーン

Geotools

Geotoolsは、空間データを処理するための多くの標準クラスとメソッドを提供するJavaクラスライブラリです。同時に、このクラスライブラリはOGC標準に基づいて構築されており、OGCアイデアの実装です。
OGCは国際標準であるため、geotoolsは将来、オープンソースの空間データ処理のメインツールになることは間違いありません。udig、geoserverなどの現在のオープンソースソフトウェアのほとんどは、

空間データの処理はgeotoolsによってサポートされています。他の多くのWebサービス、コマンドラインツール、デスクトッププログラムはすべてgeotoolsで実装できます。

Geotoolsの公式ウェブサイト:

https://geotools.org/

公式サイトにはクイックスタートガイドがあります。

 

注意:

ブログ:
https//blog.csdn.net/badao_liumang_qizhi
パブリック
アカウントをフォローする横暴
なプログラマープログラミング関連の電子書籍、チュートリアルプッシュ、無料ダウンロードを入手してください。

成し遂げる

[クイックスタート]をクリックし、[Intellijクイックスタート]を選択します

 

その後、公式ガイドに従ってすぐに始めることができます。

ここで新しいプロジェクトを作成する方法は、公式ドキュメントのMavenのクイックスタートを使用していません。代わりに、SpingInitializrを選択して、新しいプロジェクトの作成を選択するときに新しいプロジェクトをすばやく作成します

 

次に、最も基本的なWeb依存関係を追加します

 

次に、新しく作成したプロジェクトの後でpom.xmlを開きます

まず、geotoolsのバージョン属性を追加します

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <geotools.version>26-SNAPSHOT</geotools.version>
    </properties>

ここで使用されているバージョンは26です。

次に、依存関係にgeotools関連の依存関係を追加します

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
        <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>

依存関係を追加した後、Mavenは依存関係をダウンロードできないことを示すプロンプトを表示します。Mavenが依存関係をダウンロードできるように、リポジトリを追加する必要があります。

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

完全なpomファイルコード

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.badao</groupId>
    <artifactId>geotoolsdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>geotoolsdemo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <geotools.version>26-SNAPSHOT</geotools.version>
    </properties>
    <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>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
        <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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

次に、Mavenが関連する依存関係をダウンロードするのを待ちます

ダウンロードが完了すると、プロジェクトの依存関係で確認できます

 

次に、パッケージの下にクイックスタートと呼ばれる新しいJavaクラスを作成します

 

このクラスのサンプルコードは次のとおりです。

package com.badao.geotoolsdemo;
import java.io.File;
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.styling.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;
public class Quickstart {
    public static void main(String[] args) throws Exception {
        // display a data store file chooser dialog for shapefiles
        File file = JFileDataStoreChooser.showOpenFile("shp", null);
        if (file == null) {
            return;
        }

        FileDataStore store = FileDataStoreFinder.getDataStore(file);
        SimpleFeatureSource featureSource = store.getFeatureSource();

        // Create a map content and add our shapefile to it
        MapContent map = new MapContent();
        map.setTitle("Quickstart");

        Style style = SLD.createSimpleStyle(featureSource.getSchema());
        Layer layer = new FeatureLayer(featureSource, style);
        map.addLayer(layer);

        // Now display the map
        JMapFrame.showMap(map);
    }
}

次に、このクラスのmainメソッドを実行します

 

shpファイルを選択するための選択ボックスがポップアップします

シェープファイルはベクターグラフィック形式であり、幾何学的図形と関連する属性の場所を保存できます。ただし、この形式では、地理データのトポロジ情報を保存できません。

その中で、シェープファイルを作成するには、「。shp」、「。shx」、「。dbf」の3つのファイルが不可欠です。

.shp-グラフィック形式。要素の幾何学的エンティティを保存するために使用されます。
.shx-グラフィックインデックス形式。ジオメトリ位置インデックスは、shpファイル内の各ジオメトリボディの位置を記録します。これにより、ジオメトリボディを前方または後方に検索する効率を上げることができます。
.dbf-属性データ形式。各幾何学的形状の属性データをdBaseIVデータテーブル形式で格納します。

まず、shpファイルが必要です。これが中国の地方行政区画の_shpマップデータファイルです。

https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/15785012

選択したshpファイルには、中国語の名前と中国語のパスを含めないでください。

 

次にクリックして開きます

 

 

おすすめ

転載: blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/114879662