2016-09-30 101 views
0

我使用Openlayers 2.13繪製多邊形。 我需要將多邊形保存在我的數據庫中。 我使用以下代碼來檢索多邊形的WKT(知名文本)格式: getGeometry()。toString();Openlayers WKT返回太大的GPS座標

的WKT看起來是這樣的:

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

然而,當我嘗試寫的DB我得到以下錯誤:

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

爲什麼是GPS從的OpenLayers這麼大的座標?

我試過改變地圖的投影,但無濟於事。

回答

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(); 
+0

謝謝你,我是想,而不是將其存儲在我的數據庫之前,把該WKT改變系統的投影。 – DanC225