2016-09-10 98 views
0

使用ST_Intersects我已經轉換ESRI(* .mdb文件)導入PostGIS的個人地理數據庫啓用使用FWTools PostgreSQL數據庫。在我得到我的幾何場命名爲wkb_geometry如下無法幾何領域

wkb_geometry geometry(Geometry, 3148), 

在查詢時使用ST_Intersects在數據庫中,我得到以下錯誤

SQL

SELECT <other fields>, 
"wkb_geometry" AS "_smtmp_" FROM parcel WHERE <condition> 
AND ST_Intersects(((E'\\001\\003\\000\\000 L\\014\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\020\\2625\\334i\\032\\034A\\273n\\256E\\033\\340GA\\020\\2625\\334i\\032\\034A\\017\\261\\014\\353\\037\\340GA\\262\\304\\047\\007\\217\\032\\034A\\017\\261\\014\\353\\037\\340GA\\262\\304\\047\\007\\217\\032\\034A\\273n\\256E\\033\\340GA\\020\\2625\\334i\\032\\034A\\273n\\256E\\033\\340GA')) 
        ,"wkb_geometry") 

錯誤

ERROR: parse error - invalid geometry
LINE 1: ... parcel WHERE parcelno < 50 AND ST_Intersects(((E'\001\0... HINT: "\0" <-- parse error at position 2 within geometry

ERROR: parse error - invalid geometry
SQL state: XX000
Hint: "\0" <-- parse error at position 2 within geometry
Character: 245

我在前端使用SharpMap。

回答

1

這裏的問題不是與幾何字段,而是與查詢。

您應該使用ST_GeomFromEWKB功能這樣

SELECT <other fields>, 
"wkb_geometry" AS "_smtmp_" FROM parcel WHERE <condition> 
AND ST_Intersects(ST_GeomFromEWKB(E'\\001\\003\\000\\000 L\\014\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\020\\2625\\334i\\032\\034A\\273n\\256E\\033\\340GA\\020\\2625\\334i\\032\\034A\\017\\261\\014\\353\\037\\340GA\\262\\304\\047\\007\\217\\032\\034A\\017\\261\\014\\353\\037\\340GA\\262\\304\\047\\007\\217\\032\\034A\\273n\\256E\\033\\340GA\\020\\2625\\334i\\032\\034A\\273n\\256E\\033\\340GA') 
        ,"wkb_geometry") 
+0

我會盡量讓你知道,並標示這是解決。 – rughimire