前言
在 WebGIS 开发过程中,数据格式的转换与兼容始终是一个关键挑战。其中,WKT(Well-Known Text)和 GeoJSON 作为两种常见的地理空间数据格式,它们之间的转换更是开发者们经常需要面对的问题。WKT 是一种简单易读的文本格式,广泛用于地理数据的存储与交换,但其在 Web 环境下的可视化和交互性相对较弱;而 GeoJSON 则以其简洁的 JSON 结构,完美契合了 Web 开发的需求,便于与各种前端框架和库进行集成,实现地图的渲染、交互以及地理数据的动态展示。

那么,如何高效地将 WKT 数据转换为 GeoJSON 格式,以便更好地在 WebGIS 应用中使用呢?这正是本文将深入探讨的核心问题。
一、WKT 后台转换实现
本节以 PostGIS 空间数据库和 Java 后台为例,介绍如何基于空间数据库和 Geotools 库实现 WKT 转为 GeoJSON。
1、基于 PostGIS 实现
如果大家的开发数据库中有空间数据库的话,我们可以直接利用空间数据的空间函数来进行处理,以我们之前介绍过的地震信息数据为例,使用以下 SQL 语句可以查询空间属性的 WKT 格式,查询语句如下:
select ST_AsEWKT(geom) from biz_ceic_earthquake limit 10;
在 Navicat 执行上述语句后,可以看到如下结果:

如果要实现对应的 WKT 转为 GeoJSON 应该如何实现呢?我们只需要使用 ST_AsGeoJSON 函数即可完成转换。示例 SQL 查询语句如下:
select ST_AsEWKT(geom), ST_AsGeoJSON(geom) from biz_ceic_earthquake limit 10;
在返回的结果集中可以看到以下结果:

第二列就是我们需要的 GeoJSON 类型。有了这个 SQL 语句之后,我们就可以在 Java 中结合 SQL 查询将结果返回给前端。这个方案的本质还是直接利用了空间数据库的空间查询能力,在此不再赘述。
2、GeoTools 实现
这里介绍完全基于 Geotools 的纯后台转换逻辑,只需要只用到 Geotools 这个组件。在工程项目中首先要引入 Geotools 组件,在 Pom.xml 中首先引入以下依赖:
<dependency>
<groupId>org.geotools</groupId>
gt-geojson
28.2
org.locationtech.jts
jts-core
1.19.0





