0

我已使用FWTools将 ESRI 的个人地理数据库(*.mdb 文件)转换为启用 PostGIS 的 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")

错误

错误:解析错误 - 无效几何
第 1 行: ... parcel WHERE parcelno < 50 AND ST_Intersects(((E'\001\0... 提示:“\0” <-- 在几何中位置 2 处解析错误

错误:解析错误 - 无效几何
SQL 状态:XX000
提示:“\0”<-- 在几何中位置 2 处解析错误
字符:245

我在前端使用 SharpMap。

4

1 回答 1

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")
于 2016-09-12T08:19:20.633 回答