【问题标题】:Unable to use ST_Intersects on geometry field无法在几何字段上使用 ST_Intersects
【发布时间】:2016-09-10 07:22:56
【问题描述】:

我已使用 FWTools 将 ESRI 的个人地理数据库(*.mdb 文件)转换为支持 PostGIS 的 PostgreSQL 数据库。我将我的 geometry 字段命名为 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 行: ... 包裹 WHERE parcelno

错误:解析错误 - 无效几何
SQL 状态:XX000
提示:“\0” 字符:245

我在前端使用 SharpMap。

【问题讨论】:

    标签: gis postgis 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")
    

    【讨论】:

    • 我会尽力让您知道并将其标记为已解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多