我正在尝试用django.contrib.gis.geos.Polygon创建一个多边形。我知道这些点是有效的,但是我得到了一个错误:
django.contrib.gis.geos.error.GEOSException: Error encountered checking Geometry returned from GEOS C function "GEOSGeom_createPolygon_r"如果我使用django.contrib.gis.geos.geometry.GEOSGeometry,它就能正常工作。
例如:
from django.contrib.gis.geos import Polygon
from django.contrib.gis.geos.geometry import GEOSGeometry
poly = GEOSGeometry('POLYGON((4 4, 4 4, 4 4, 4 4))')
poly.coords()
>>> (((4.0, 4.0), (4.0, 4.0), (4.0, 4.0), (4.0, 4.0)),)
poly2 = Polygon(((4, 4), (4, 4), (4, 4), (4, 4)))
>>> GEOSException: Error encountered checking Geometry returned from GEOS C function "GEOSGeom_createPolygon_r".操作系统和其他信息:
chip
gdal通过自制(3.5.1)
geos和proj:GDAL_LIBRARY_PATH="/opt/homebrew/lib/libgdal.dylib"`
GEOS_LIBRARY_PATH="/opt/homebrew/lib/libgeos_c.dylib"完全相同的代码在较旧的Mac安装程序上工作,w/相同的环境非常好。
现在也尝试了Python3.9并重新安装了所有相关的brew包。我还得到了与其他几何类型相同的错误(Point和LineString工作正常,但MultiPoint和MultiLineString失败)。
发布于 2022-07-12 18:15:52
这里的解决方案是在修复bug:https://github.com/django/django/blob/4f284115a9181990f713d5167b25628fa171a5e4/docs/releases/4.0.1.txt#L67-L70之后升级到Django 4.0.1或更高版本
https://stackoverflow.com/questions/72903714
复制相似问题