WebGIS 开发:WKT 转 GeoJSON 的多种方案与 Leaflet 加载
在 WebGIS 开发中,数据格式的兼容性往往是痛点。数据库里常用的 WKT(Well-Known Text)格式虽然直观,但在前端渲染时并不友好;而 GeoJSON 凭借轻量级的 JSON 结构,成为了 Web 端地图可视化的事实标准。如何将后端存储的 WKT 高效转换为前端可用的 GeoJSON,是构建地图应用的关键环节。
后端转换方案
如果拥有服务端控制权限,优先推荐在后端完成格式转换,这样能减轻前端压力并统一数据标准。
基于 PostGIS 实现
如果你的空间数据存储在使用 PostGIS 扩展的 PostgreSQL 数据库中,可以直接利用内置的空间函数进行转换,无需引入额外依赖。
查询 WKT 格式通常使用 ST_AsEWKT,而转为 GeoJSON 则直接使用 ST_AsGeoJSON。示例 SQL 如下:
-- 查询 WKT 格式
SELECT ST_AsEWKT(geom) FROM biz_ceic_earthquake LIMIT 10;
-- 直接查询 GeoJSON 格式
SELECT ST_AsEWKT(geom), ST_AsGeoJSON(geom) FROM biz_ceic_earthquake LIMIT 10;
执行后,第二列即为标准的 GeoJSON 字符串。这种方式本质上是利用了数据库的计算能力,返回给前端的数据已经是可渲染的格式,性能最优。
基于 GeoTools 实现
若无法直接操作数据库或需要更灵活的控制,可以在 Java 后端使用 GeoTools 库进行解析。GeoTools 是开源 GIS 领域的核心组件之一,配合 JTS 几何引擎非常稳定。
首先在 pom.xml 中引入必要的依赖:
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>28.2</version>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
1.19.0


