WebGIS 数据格式转换实战
在 WebGIS 开发中,WKT(Well-Known Text)和 GeoJSON 是最常见的两种地理空间数据格式。数据库里存的多是 WKT,而前端渲染通常依赖 GeoJSON。如何高效、准确地在两者之间转换,并集成到地图引擎中,是实际项目中经常遇到的问题。
基于 PostGIS 的后台转换
如果后端使用的是支持空间数据的 PostgreSQL 数据库,可以直接利用空间函数完成转换,无需额外引入复杂库。
查询 WKT 格式的空间属性:
SELECT ST_AsEWKT(geom) FROM biz_ceic_earthquake LIMIT 10;
执行结果会返回标准的 WKT 字符串。若需要直接获取 GeoJSON,只需更换函数为 ST_AsGeoJSON:
SELECT ST_AsEWKT(geom), ST_AsGeoJSON(geom) FROM biz_ceic_earthquake LIMIT 10;
这种方式性能最高,因为计算是在数据库层完成的。拿到结果后,Java 后端直接序列化返回给前端即可。
纯 Java 后端转换方案
如果没有空间数据库支持,或者需要在应用层统一处理,可以使用 GeoTools 库。这是一个成熟的开源 GIS 工具包。
首先在 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>


