快速入门
Snake8859 2/3/2023
# Maven项目创建
首先利用IDEA创建一个Maven项目。
从菜单中选择File -> New Project。在新建项目对话框中选择Maven项目,确保选择了Create from prototype,并选择org.apache.maven:maven-archetype-quickstart原型。按下一个。
填写GAV信息,例如
- GroupId:
org.geotools
- ArtifactId:
tutorial
- Version:
1.0-SNAPSHOT
- GroupId:
配置maven文件和依赖仓库
确认基本信息,创建Maven项目。
# GeoTools依赖导入
接下来在pom.xml
中导入GeoTools的依赖。
在属性标签内添加变量,定义了geotools的版本以及相关字符编码。
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <geotools.version>29-SNAPSHOT</geotools.version> <maven.deploy.skip>true</maven.deploy.skip> </properties>
1
2
3
4
5添加GeoTools的
gt-main
和gt-swing
的jar包依赖,版本由属性中的geotools.version
所决定。<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> </dependencies>
1
2
3
4
5
6
7
8
9
10
11
12指定GeoTools的jar包的仓库地址,也可以在maven的setting.xml中指定镜像。
<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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16GeoTools需要Java11,因此需要告诉Maven使用11的编译。
<build> <plugins> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
1
2
3
4
5
6
7
8
9
10
11
12
13
14项目需要使用11的JDK。
完整的
pom.xml
如下。<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"> <modelVersion>4.0.0</modelVersion> <groupId>org.geotools.tutorial</groupId> <artifactId>quickstart</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>GeoTools Quickstart</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <geotools.version>29-SNAPSHOT</geotools.version> <maven.deploy.skip>true</maven.deploy.skip> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</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> <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> <build> <plugins> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Quickstart Application
在上述环境配置成功后,我们可以创建一个简单的快速入门应用,在屏幕上显示一个shapefile。
创建一个名为QuickStart的Java类
在该类中填入以下代码
/* * GeoTools Sample code and Tutorials by Open Source Geospatial Foundation, and others * https://docs.geotools.org * * To the extent possible under law, the author(s) have dedicated all copyright * and related and neighboring rights to this software to the public domain worldwide. * This software is distributed without any warranty. * * You should have received a copy of the CC0 Public Domain Dedication along with this * software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>. */ package org.geotools.tutorial.quickstart; import java.io.File; import java.util.logging.Logger; 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; /** * Prompts the user for a shapefile and displays the contents on the screen in a map frame. * * <p>This is the GeoTools Quickstart application used in documentationa and tutorials. * */ public class Quickstart { private static final Logger LOGGER = org.geotools.util.logging.Logging.getLogger(Quickstart.class); /** * GeoTools Quickstart demo application. Prompts the user for a shapefile and displays its * contents on the screen in a map frame */ public static void main(String[] args) throws Exception { // display a data store file chooser dialog for shapefiles LOGGER.info( "Quickstart"); LOGGER.config( "Welcome Developers"); LOGGER.info("java.util.logging.config.file="+System.getProperty("java.util.logging.config.file")); File file = JFileDataStoreChooser.showOpenFile("shp", null); if (file == null) { return; } LOGGER.config("File selected "+file); 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); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65启动Main函数,弹出一个文件选择器,然后加载一个shapefile文件。
程序将会打开shapefile,在窗口内显示一个shapefile。
# 参考
- 官方:https://docs.geotools.org/latest/userguide/tutorial/quickstart/intellij.html
- geotools学习(一)IntelliJ快速入门:https://www.jianshu.com/p/b18cbee5af21