2015-08-26 60 views
1

當我嘗試向postgis幾何列插入數據時出現錯誤。postgis中的座標類型

ERROR:座標值超出範圍[-180 -90 180 90]對於地理類型 SQL狀態:22023

我的插入查詢。

INSERT INTO meter1(meter_id, meter_no,location,type) 
VALUES ('M1', 200,ST_GeographyFromText('SRID=3857; 
     POINT(256300.11 9856321.09)'),'automatic'); 
+0

那麼這錯誤似乎言自明都256300.11和9856321.09碰巧是多少遠大於180 – e4c5

+0

e4c5卻怎麼也插入那個座標或者我改變什麼 – user3736334

+0

這個數據從哪裏來? – e4c5

回答

1

首先,它看起來像您可能不需要使用地理類型的情況之一。

If your data is geographically compact (contained within a state, county or city), use the geometry type with a Cartesian projection that makes sense with your data.

http://workshops.boundlessgeo.com/postgis-intro/geography.html#why-not-use-geography

說了這麼多,如果你需要畢竟使用地理類型,你必須接受,地理列只能保存在度和不以米爲單位的值。因此,您需要將數據轉換爲支持lat,lng的空間參考系。因此,你的查詢將需要改變如下:

INSERT INTO meter1(meter_id, meter_no,location,type)  
VALUES ('M1', 200, 
    ST_Transform(ST_SetSrid(ST_GeomFromText('POINT(256300.11 9856321.09)'), 3587), 4326), 
    'automatic'); 

在這裏使用的功能是ST_Transform

相關問題