30分钟上手GeoTools:NetBeans地理信息开发实战指南
【免费下载链接】geotools Official GeoTools repository 项目地址: https://gitcode.com/gh_mirrors/ge/geotools
你还在为Java地理空间开发环境配置耗费数小时?还在为shapefile解析代码调试焦头烂额?本文将带你30分钟从零搭建专业级GIS开发环境,完成第一个地图应用,掌握GeoTools核心API使用方法。
读完本文你将获得:
- 免坑式NetBeans+GeoTools环境部署方案
- shapefile文件解析与可视化完整流程
- Maven依赖管理最佳实践
- 10个以上可直接复用的GIS开发代码片段
- 常见错误解决方案与性能优化技巧
引言:为什么选择GeoTools?
GeoTools是一个功能强大的开源Java地理信息系统开发工具包,它提供了处理空间数据的核心功能,包括数据格式解析、坐标转换、地图渲染等。作为地理信息领域的主流开发工具,GeoTools被广泛应用于桌面GIS应用、Web地图服务和空间数据分析等场景。
本教程专为NetBeans开发者设计,采用最新的GeoTools 34-SNAPSHOT版本,通过实战方式带你快速掌握地理信息开发的基础知识和技能。无论你是GIS开发新手还是有经验的Java开发者,都能通过本教程快速上手GeoTools开发。
环境准备:开发工具安装
系统要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| JDK | 11 | 17 |
| NetBeans | 12 | 19 |
| Maven | 3.6 | 3.9 |
| 内存 | 4GB | 8GB |
| 磁盘空间 | 2GB | 5GB |
NetBeans安装步骤
- 访问NetBeans官方网站,下载Java SE版本安装程序
- 运行安装程序,按照向导指示进行安装
- 选择安装路径(建议使用默认路径)
- 选择需要安装的组件(确保勾选Maven支持)
- 等待安装完成
- 启动NetBeans,首次启动可能需要配置JDK路径
JDK配置验证
启动NetBeans后,验证JDK配置是否正确:
- 打开菜单:
Tools > Java Platforms - 确认已安装JDK 17(或更高版本)
- 如果未配置,点击"Add Platform"添加JDK路径
- 验证安装路径和版本信息
项目创建与配置
创建Maven项目
- 启动NetBeans,选择菜单:
File > New Project - 在新建项目向导中,选择
Maven类别,然后选择Maven Project - 点击"Next",在Archetype选择页面,选择"Maven Quickstart Archetype"
- 再次点击"Next",填写项目信息:
- Project name:
tutorial - GroupId:
org.geotools - Version:
1.0-SNAPSHOT
- Project name:
- 点击"Finish",等待项目创建完成
Maven配置优化
NetBeans默认集成了Maven,但建议进行以下优化配置:
- 打开菜单:
Tools > Options > Maven - 配置本地仓库路径(建议设置为:
C:\Users\用户名\.m2\repository) - 勾选"Offline"选项(在依赖下载完成后)
- 配置Maven内存参数:
-Xmx1024m -XX:MaxPermSize=256m - 点击"OK"保存配置
GeoTools依赖配置
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.geotools</groupId>
<artifactId>tutorial</artifactId>
<version>1.0-SNAPSHOT</version>
<name>GeoTools Quickstart</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<geotools.version>34-SNAPSHOT</geotools.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-bom</artifactId>
<version>${geotools.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-swing</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</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>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<release>17</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
依赖配置详解
GeoTools采用BOM(Bill of Materials)模式管理依赖版本,确保所有模块版本兼容:
- BOM导入:通过导入
gt-bom,我们不需要为每个GeoTools依赖指定版本号 - 核心依赖:
gt-shapefile:提供Shapefile数据格式支持gt-swing:提供Swing界面组件,用于地图显示
- 仓库配置:
- OSGeo Release Repository:用于稳定版本
- OSGeo Snapshot Repository:用于开发快照版本(如34-SNAPSHOT)
依赖下载与验证
配置完成后,下载并验证依赖:
- 右键点击项目,选择
Maven > Download Missing Dependencies - 等待依赖下载完成(首次可能需要较长时间)
- 展开项目中的
Libraries > Maven Dependencies - 确认以下依赖已成功下载:
- gt-shapefile-34-SNAPSHOT.jar
- gt-swing-34-SNAPSHOT.jar
- gt-main-34-SNAPSHOT.jar
- jts-core-xxx.jar
开发第一个地图应用
创建Quickstart类
- 在项目中创建包:
org.geotools.tutorial.quickstart - 在该包下创建
Quickstart类 - 复制以下代码到类文件中:
package org.geotools.tutorial.quickstart;
import java.io.File;
import java.util.logging.Logger;
import org.geotools.api.data.FileDataStore;
import org.geotools.api.data.FileDataStoreFinder;
import org.geotools.api.data.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.api.style.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;
/**
* 这是一个GeoTools快速入门应用程序,用于演示如何加载和显示Shapefile数据
*/
public class Quickstart {
private static final Logger LOGGER = org.geotools.util.logging.Logging.getLogger(Quickstart.class);
public static void main(String[] args) throws Exception {
// 显示文件选择对话框,用于选择Shapefile文件
LOGGER.info("GeoTools快速入门应用启动");
File file = JFileDataStoreChooser.showOpenFile("shp", null);
if (file == null) {
return;
}
LOGGER.info("用户选择了文件: " + file.getAbsolutePath());
// 连接到Shapefile数据存储
FileDataStore store = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource = store.getFeatureSource();
// 创建地图内容并添加Shapefile图层
MapContent map = new MapContent();
map.setTitle("GeoTools快速入门");
// 创建简单样式
Style style = SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource, style);
map.addLayer(layer);
// 显示地图
JMapFrame.showMap(map);
}
}
代码解析
代码主要分为以下几个部分:
- 文件选择:使用
JFileDataStoreChooser让用户选择Shapefile文件 - 数据连接:通过
FileDataStoreFinder连接到Shapefile - 地图创建:创建
MapContent对象,相当于一个地图容器 - 样式设置:使用
SLD.createSimpleStyle创建默认样式 - 图层添加:将Shapefile数据添加为图层
- 地图显示:使用
JMapFrame显示地图
运行与测试应用
准备测试数据
- 访问Natural Earth Data网站:https://www.naturalearthdata.com/
- 下载1:50m文化矢量数据:https://www.naturalearthdata.com/downloads/50m-cultural-vectors/
- 解压下载的ZIP文件到本地目录(如桌面)
- 确保解压后的文件夹包含
.shp、.shx、.dbf等文件
运行应用程序
- 右键点击
Quickstart类 - 选择
Run File(或按Shift+F6) - 首次运行可能需要编译项目,等待编译完成
- 应用启动后,会显示文件选择对话框
加载并显示地图
- 在文件选择对话框中,导航到解压的Shapefile文件
- 选择
.shp文件(如ne_50m_admin_0_countries.shp) - 点击"Open"按钮
- 应用程序将加载数据并显示地图窗口
- 在地图窗口中,可以:
- 平移:按住鼠标左键拖动
- 缩放:使用鼠标滚轮
- 查看属性:点击地图要素
常见运行错误及解决方法
| 错误 | 原因 | 解决方案 |
|---|---|---|
| ClassNotFoundException | 依赖未正确下载 | 重新下载Maven依赖 |
| NoClassDefFoundError | JDK版本不兼容 | 确保使用JDK 17 |
| IOException | 文件路径错误 | 检查文件是否存在且可访问 |
| UnsupportedOperation | 数据格式不支持 | 确认选择了正确的Shapefile |
功能扩展与优化
添加日志功能
为应用添加详细日志,便于调试和问题诊断:
// 添加到类开头
private static final Logger LOGGER = org.geotools.util.logging.Logging.getLogger(Quickstart.class);
// 在main方法中添加日志语句
LOGGER.info("GeoTools快速入门应用启动");
LOGGER.config("Java版本: " + System.getProperty("java.version"));
LOGGER.config("GeoTools版本: " + org.geotools.util.Version.getVersion());
自定义地图样式
修改代码,使用自定义样式替代默认样式:
// 替换默认样式创建代码
Style style = SLD.createSimpleStyle(featureSource.getSchema());
StyleBuilder sb = new StyleBuilder();
// 设置线颜色为蓝色
Stroke stroke = sb.createStroke(Color.BLUE, 1.0f);
// 设置填充颜色为浅蓝色,透明度50%
Fill fill = sb.createFill(Color.CYAN, 0.5f);
// 应用到多边形符号器
PolygonSymbolizer symbolizer = sb.createPolygonSymbolizer(stroke, fill, "the_geom");
Rule rule = sb.createRule(symbolizer);
FeatureTypeStyle fts = sb.createFeatureTypeStyle(rule);
style.addFeatureTypeStyle(fts);
添加图层控制功能
扩展应用,添加图层控制功能:
// 创建图层控制面板
JMapFrame frame = new JMapFrame(map);
frame.enableToolBar(true);
frame.enableStatusBar(true);
frame.setSize(800, 600);
frame.setVisible(true);
高级应用与最佳实践
Maven依赖管理高级技巧
- 依赖范围控制:合理使用
compile、provided、test等范围 - 排除冲突依赖:使用
<exclusions>排除冲突的传递依赖 - 镜像加速:配置国内Maven镜像加速依赖下载
- Profile配置:使用Profile区分开发、测试和生产环境
性能优化建议
-
数据处理优化:
- 使用空间索引提高查询性能
- 采用分页加载处理大数据集
- 适当使用缓存减少重复计算
-
UI性能优化:
- 使用双缓冲减少闪烁
- 采用渐进式渲染处理复杂地图
- 合理设置地图显示范围
-
内存管理:
- 及时释放不再使用的资源
- 避免创建过多临时对象
- 使用内存分析工具检测泄漏
常见问题解决方案
-
中文显示问题:
// 设置系统默认编码 System.setProperty("file.encoding", "UTF-8"); -
坐标转换:
// 示例:WGS84到Web Mercator转换 CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4326"); CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:3857"); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS); -
大数据集处理:
// 使用FeatureReader处理大数据集 try (FeatureReader<SimpleFeatureType, SimpleFeature> reader = featureSource.getFeatures().features()) { while (reader.hasNext()) { SimpleFeature feature = reader.next(); // 处理要素 } }
总结与后续学习
本教程核心要点回顾
- 环境配置:成功搭建NetBeans+GeoTools开发环境
- 项目创建:使用Maven管理GeoTools依赖
- 核心API:掌握了数据加载、地图创建和显示的基本流程
- 样式设置:了解了简单样式的创建和应用
- 问题解决:学会处理常见错误和优化应用性能
进阶学习路径
- 数据格式扩展:学习如何支持其他空间数据格式
- 高级样式:学习SLD样式语言,创建复杂地图样式
- 空间分析:使用GeoTools提供的空间分析功能
- Web集成:将GeoTools与Web框架集成
- 三维可视化:探索三维地图显示技术
有用资源推荐
-
官方文档:
- GeoTools用户手册:https://docs.geotools.org/
- GeoTools Javadoc:https://docs.geotools.org/latest/javadocs/
-
示例代码:
- GeoTools示例仓库:https://github.com/geotools/geotools
- 社区教程:https://github.com/geotools/geotools/wiki/Tutorials
-
社区支持:
- 用户邮件列表:https://lists.sourceforge.net/lists/listinfo/geotools-user
- StackOverflow:使用
geotools标签 - Gitter聊天:https://gitter.im/geotools/geotools
-
国内资源:
- OSGeo中国中心:http://www.osgeo.cn/
- 地理空间数据云:http://www.gscloud.cn/
下一步行动建议
- 尝试修改示例代码,添加新功能
- 探索GeoTools其他模块,如WMS支持、空间分析等
- 参与GeoTools社区,提交bug报告或贡献代码
- 关注GeoTools版本更新,及时了解新特性
通过本教程,你已经掌握了GeoTools开发的基础知识。地理信息开发是一个广阔的领域,希望本教程能成为你探索GIS世界的良好开端。继续学习和实践,你将能够开发出功能强大的地理信息应用程序。
如果你觉得本教程对你有帮助,请点赞、收藏并分享给其他开发者!期待在GeoTools社区看到你的贡献。<|FCResponseEnd|>```markdown
30分钟上手GeoTools:NetBeans地理信息开发实战指南
你还在为Java地理空间开发环境配置耗费数小时?还在为shapefile解析代码调试焦头烂额?本文将带你30分钟从零搭建专业级GIS开发环境,完成第一个地图应用,掌握GeoTools核心API使用方法。
读完本文你将获得:
- 免坑式NetBeans+GeoTools环境部署方案
- shapefile文件解析与可视化完整流程
- Maven依赖管理最佳实践
- 10个以上可直接复用的GIS开发代码片段
- 常见错误解决方案与性能优化技巧
引言:为什么选择GeoTools?
GeoTools是一个功能强大的开源Java地理信息系统开发工具包,它提供了处理空间数据的核心功能,包括数据格式解析、坐标转换、地图渲染等。作为地理信息领域的主流开发工具,GeoTools被广泛应用于桌面GIS应用、Web地图服务和空间数据分析等场景。
本教程专为NetBeans开发者设计,采用最新的GeoTools 34-SNAPSHOT版本,通过实战方式带你快速掌握地理信息开发的基础知识和技能。无论你是GIS开发新手还是有经验的Java开发者,都能通过本教程快速上手GeoTools开发。
环境准备:开发工具安装
系统要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| JDK | 11 | 17 |
| NetBeans | 12 | 19 |
| Maven | 3.6 | 3.9 |
| 内存 | 4GB | 8GB |
| 磁盘空间 | 2GB | 5GB |
NetBeans安装步骤
- 访问NetBeans官方网站,下载Java SE版本安装程序
- 运行安装程序,按照向导指示进行安装
- 选择安装路径(建议使用默认路径)
- 选择需要安装的组件(确保勾选Maven支持)
- 等待安装完成
- 启动NetBeans,首次启动可能需要配置JDK路径
JDK配置验证
启动NetBeans后,验证JDK配置是否正确:
- 打开菜单:
Tools > Java Platforms - 确认已安装JDK 17(或更高版本)
- 如果未配置,点击"Add Platform"添加JDK路径
- 验证安装路径和版本信息
项目创建与配置
创建Maven项目
- 启动NetBeans,选择菜单:
File > New Project - 在新建项目向导中,选择
Maven类别,然后选择Maven Project - 点击"Next",在Archetype选择页面,选择"Maven Quickstart Archetype"
- 再次点击"Next",填写项目信息:
- Project name:
tutorial - GroupId:
org.geotools - Version:
1.0-SNAPSHOT
- Project name:
- 点击"Finish",等待项目创建完成
Maven配置优化
NetBeans默认集成了Maven,但建议进行以下优化配置:
- 打开菜单:
Tools > Options > Maven - 配置本地仓库路径(建议设置为:
C:\Users\用户名\.m2\repository) - 勾选"Offline"选项(在依赖下载完成后)
- 配置Maven内存参数:
-Xmx1024m -XX:MaxPermSize=256m - 点击"OK"保存配置
GeoTools依赖配置
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.geotools</groupId>
<artifactId>tutorial</artifactId>
<version>1.0-SNAPSHOT</version>
<name>GeoTools Quickstart</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<geotools.version>34-SNAPSHOT</geotools.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-bom</artifactId>
<version>${geotools.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-swing</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</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>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<release>17</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
依赖配置详解
GeoTools采用BOM(Bill of Materials)模式管理依赖版本,确保所有模块版本兼容:
- BOM导入:通过导入
gt-bom,我们不需要为每个GeoTools依赖指定版本号 - 核心依赖:
gt-shapefile:提供Shapefile数据格式支持gt-swing:提供Swing界面组件,用于地图显示
- 仓库配置:
- OSGeo Release Repository:用于稳定版本
- OSGeo Snapshot Repository:用于开发快照版本(如34-SNAPSHOT)
依赖下载与验证
配置完成后,下载并验证依赖:
- 右键点击项目,选择
Maven > Download Missing Dependencies - 等待依赖下载完成(首次可能需要较长时间)
- 展开项目中的
Libraries > Maven Dependencies - 确认以下依赖已成功下载:
- gt-shapefile-34-SNAPSHOT.jar
- gt-swing-34-SNAPSHOT.jar
- gt-main-34-SNAPSHOT.jar
- jts-core-xxx.jar
开发第一个地图应用
创建Quickstart类
- 在项目中创建包:
org.geotools.tutorial.quickstart - 在该包下创建
Quickstart类 - 复制以下代码到类文件中:
package org.geotools.tutorial.quickstart;
import java.io.File;
import java.util.logging.Logger;
import org.geotools.api.data.FileDataStore;
import org.geotools.api.data.FileDataStoreFinder;
import org.geotools.api.data.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.api.style.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;
/**
* 这是一个GeoTools快速入门应用程序,用于演示如何加载和显示Shapefile数据
*/
public class Quickstart {
private static final Logger LOGGER = org.geotools.util.logging.Logging.getLogger(Quickstart.class);
public static void main(String[] args) throws Exception {
// 显示文件选择对话框,用于选择Shapefile文件
LOGGER.info("GeoTools快速入门应用启动");
File file = JFileDataStoreChooser.showOpenFile("shp", null);
if (file == null) {
return;
}
LOGGER.info("用户选择了文件: " + file.getAbsolutePath());
// 连接到Shapefile数据存储
FileDataStore store = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource = store.getFeatureSource();
// 创建地图内容并添加Shapefile图层
MapContent map = new MapContent();
map.setTitle("GeoTools快速入门");
// 创建简单样式
Style style = SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource, style);
map.addLayer(layer);
// 显示地图
JMapFrame.showMap(map);
}
}
代码解析
代码主要分为以下几个部分:
- 文件选择:使用
JFileDataStoreChooser让用户选择Shapefile文件 - 数据连接:通过
FileDataStoreFinder连接到Shapefile - 地图创建:创建
MapContent对象,相当于一个地图容器 - 样式设置:使用
SLD.createSimpleStyle创建默认样式 - 图层添加:将Shapefile数据添加为图层
- 地图显示:使用
JMapFrame显示地图
运行与测试应用
准备测试数据
- 访问Natural Earth Data网站:https://www.naturalearthdata.com/
- 下载1:50m文化矢量数据:https://www.naturalearthdata.com/downloads/50m-cultural-vectors/
- 解压下载的ZIP文件到本地目录(如桌面)
- 确保解压后的文件夹包含
.shp、.shx、.dbf等文件
运行应用程序
- 右键点击
Quickstart类 - 选择
Run File(或按Shift+F6) - 首次运行可能需要编译项目,等待编译完成
- 应用启动后,会显示文件选择对话框
加载并显示地图
- 在文件选择对话框中,导航到解压的Shapefile文件
- 选择
.shp文件(如ne_50m_admin_0_countries.shp) - 点击"Open"按钮
- 应用程序将加载数据并显示地图窗口
- 在地图窗口中,可以:
- 平移:按住鼠标左键拖动
- 缩放:使用鼠标滚轮
- 查看属性:点击地图要素
常见运行错误及解决方法
| 错误 | 原因 | 解决方案 |
|---|---|---|
| ClassNotFoundException | 依赖未正确下载 | 重新下载Maven依赖 |
| NoClassDefFoundError | JDK版本不兼容 | 确保使用JDK 17 |
| IOException | 文件路径错误 | 检查文件是否存在且可访问 |
| UnsupportedOperation | 数据格式不支持 | 确认选择了正确的Shapefile |
功能扩展与优化
添加日志功能
为应用添加详细日志,便于调试和问题诊断:
// 添加到类开头
private static final Logger LOGGER = org.geotools.util.logging.Logging.getLogger(Quickstart.class);
// 在main方法中添加日志语句
LOGGER.info("GeoTools快速入门应用启动");
LOGGER.config("Java版本: " + System.getProperty("java.version"));
LOGGER.config("GeoTools版本: " + org.geotools.util.Version.getVersion());
自定义地图样式
修改代码,使用自定义样式替代默认样式:
【免费下载链接】geotools Official GeoTools repository 项目地址: https://gitcode.com/gh_mirrors/ge/geotools
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



