Openlayers WKT 返回太大的 gps 坐标

Openlayers WKT returning too big gps coordinates

我正在使用 Openlayers 2.13 绘制多边形。 我需要将多边形保存在我的数据库中。 我使用以下代码检索多边形的 WKT(知名文本)格式: getGeometry().toString();

WKT 看起来像这样:

"POLYGON((2214109.1963538 -3576110.9131445,2150513.5888293 -3766897.7357178,2529641.249071 -3656828.4150024,2529641.249071 -3656828.4150024,2214109.1963538 -3576110.9131445))"

但是,当我尝试将其写入数据库时​​出现以下错误:

24201: Latitude values must be between -90 and 90 degrees.

为什么 Openlayers 的 GPS 坐标这么大?

我试过改变地图的投影,但没有用。

您正在尝试将另一个投影系统中的几何体插入 latlon 几何体列(如您的数据库中所定义)。

您应该在将几何体转换为 WKT 之前重新投影它。 你需要这样的东西:

var srcPrj = new OpenLayers.Projection('EPSG:3857'): //put your map projection here!
var trgPrj = new OpenLayers.Projection('EPSG:4326');
var geometry = feature.getGeometry();
geometry = geometry.transform(srcPrj, trgPrj);
var wkt = geometry.toString();