Openlayers WKT返回太大的gps坐标

时间:2016-09-30 08:41:13

标签: javascript sql gps openlayers

我正在使用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坐标如此之大?

我已经尝试更改地图的投影,但无济于事。

1 个答案:

答案 0 :(得分:1)

您正尝试在另一个投影系统中插入一个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();