GEOS_ERROR:ParseException:未知的WKB类型337

问题描述 投票:0回答:1

我正在使用geodjango和postgis编码基于地理的应用程序。我编写了模型,并从管理界面手动填写了前几点。一切正常,我什至可以搜索最近的点。因此,模型和数据库都可以正常工作。现在,我正在尝试通过脚本批量填充数据库。根据我在这里找到的答案,我正在首先填充经度和纬度列,然后执行

engine.execute("UPDATE listings_listing SET location = ST_SetSRID(ST_MakePoint(longitude,latitude), 4326)")

来自python脚本。查询无例外地执行,并且数据库似乎填充了适当的值。这里有几个例子

 longitude, latitude, location
-55.7385809,-34.7413717,"0101000020E6100000A279A5D189DE4BC008D79244E55E41C0"
-56.1645314,-34.9011127,"0101000020E610000022156B5D0F154CC0504134A9577341C0"
-56.4670779,-30.4264621,"0101000020E610000099976835C93B4CC0C57BC49E2C6D3EC0"
-55.760207,-34.774156,"0101000020E61000005B9885764EE14BC04700378B176341C0"
-56.2553815,-34.7901883,"0101000020E610000070404B57B0204CC04617E5E3246541C0"
-55.760336,-34.773944,"0101000020E610000059FCA6B052E14BC0BC77D498106341C0"
-57.0544726,-30.7552116,"0101000020E610000098C349F5F8864CC0518F238C55C13EC0"
-56.4739006,-30.4097107,"0101000020E610000003475DC6A83C4CC03F52E9CCE2683EC0"

现在,当我尝试按得到的最近点进行第一次搜索时>>

GEOS_ERROR: ParseException: Unknown WKB type 337

以及来自django的日志

Error encountered checking Geometry returned from GEOS C function "GEOSWKBReader_read_r".

我用Google搜索错误,但一无所获。我在经度和纬度上检查了可能的NULL值,但它们都很好。我怀疑我错过了一步。有人可以指出我正确的方向吗?

我正在使用geodjango和postgis编码基于地理的应用程序。我编写了模型,并从管理界面手动填写了前几点。一切正常,我什至可以通过...

python django gis postgis geodjango
1个回答
0
投票

我找到了解决方案。问题在于大批熊猫被装满了。如果您将pandas的方法.to_sql()与参数if_exists='replace'一起使用,则pandas会删除现有表并将其替换,从而完全破坏每个架构。因此,在填充几何类型列之前,必须以这种方式重建几何列]

© www.soinside.com 2019 - 2024. All rights reserved.