我正在使用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坐标如此之大?
我已经尝试更改地图的投影,但无济于事。
答案 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();