2016-09-10 57 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