前言
在 WebGIS 开发中,数据格式转换是关键挑战。WKT(Well-Known Text)常用于地理数据存储,而 GeoJSON 更契合 Web 环境下的可视化与交互。本文将介绍 WKT 转 GeoJSON 的多种方法,并结合 Leaflet 库实现地图加载。
一、WKT 后台转换实现
1、基于 PostGIS 实现
若使用空间数据库,可直接利用空间函数处理。查询 WKT 格式示例:
select st_asewkt(geom) from biz_ceic_earthquake limit 10;
转换为 GeoJSON 可使用 st_asgeojson 函数:
select st_asewkt(geom), st_asgeojson(geom) from biz_ceic_earthquake limit 10;
返回结果集中第二列即为 GeoJSON 类型数据,可在 Java 中结合 SQL 查询返回给前端。
2、GeoTools 实现
基于 Geotools 进行纯后台转换。在 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>
<version>1.19.0</version>
</dependency>
核心转换代码:
package com.yelang.project.geotools.wkt2json;
org.geotools.geojson.geom.GeometryJSON;
org.geotools.geometry.jts.JTSFactoryFinder;
org.locationtech.jts.geom.Geometry;
org.locationtech.jts.geom.GeometryFactory;
org.locationtech.jts.io.WKTReader;
java.io.StringWriter;
{
String {
;
{
JTSFactoryFinder.getGeometryFactory();
(geometryFactory);
reader.read(wkt);
();
();
geometryJson.write(geometry, writer);
json = writer.toString();
} (Exception e) {
e.printStackTrace();
}
json;
}
{
;
wktToJson(wkt);
System.out.println(geoJson);
}
}


