Django MapIt-加载数据获取异常

Django MapIt-加载数据获取异常,django,postgis,geodjango,geos,Django,Postgis,Geodjango,Geos,根据本指南加载带有英国数据的mapit时出现此问题: 我正在运行以下命令:./manage.py mapit\u UK\u find\u parents 导入的边界线数据中有两个无效的几何图形,在尝试用于地理空间计算时,这些几何图形可以很好地导入,但会出错 已更新导入脚本,以尝试在导入阶段修复此类边界: 您可以使用该更新的命令再次导入数据,也可以在运行mapit_UK_find_parents之前手动修复数据库中的数据—您也需要-提交到该调用以保存数据。要手动修复,您需要运行一个类似于mapit

根据本指南加载带有英国数据的mapit时出现此问题:

我正在运行以下命令:./manage.py mapit\u UK\u find\u parents


导入的边界线数据中有两个无效的几何图形,在尝试用于地理空间计算时,这些几何图形可以很好地导入,但会出错

已更新导入脚本,以尝试在导入阶段修复此类边界:


您可以使用该更新的命令再次导入数据,也可以在运行mapit_UK_find_parents之前手动修复数据库中的数据—您也需要-提交到该调用以保存数据。要手动修复,您需要运行一个类似于mapit_UK_fix_2014-05的脚本,但W04/W05行已删除,因为这些边界已从2014年10月版的边界线中删除。

从选择PostGIS_完整版添加输出;对于您的问题,这是一个GEOS错误-我在复杂查询中见过几次类似的错误。这当然与Django本身无关。很可能需要在Django设置之外修复有问题的几何体。如果您发布该区域边界的实际几何图形,这将有所帮助。
Parent for Colton [10193] (CPC) was None, is now South Lakeland District Council [1763] (DIS)
Parent for Colton [16211] (CPC) was None, is now Lichfield District Council [1908] (DIS)
Parent for Colton [14639] (CPC) was None, is now Selby District Council [1883] (DIS)
Parent for Colton and Mavesyn Ridware [5835] (DIW) was None, is now Lichfield District Council [1908] (DIS)
GEOS_ERROR: TopologyException: found non-noded intersection between LINESTRING (524864 545.5, 524859 540.2) and LINESTRING (524859 540.2, 524859 540.2) at 524859 540.2
Traceback (most recent call last):
    File "./manage.py", line 11, in <module>
        execute_manager(settings)
    File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
        utility.execute()
    File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 191, in run_from_argv
        self.execute(*args, **options.__dict__)
    File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 220, in execute
        output = self.handle(*args, **options)
    File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 351, in handle
        return self.handle_noargs(**options)
    File "/var/www/mapit/mapit/mapit/management/commands/mapit_UK_find_parents.py", line 52, in handle_noargs
        'polygons__polygon__contains': polygon.polygon.point_on_surface,
    File "/usr/lib/python2.7/dist-packages/django/contrib/gis/geos/geometry.py", line 593, in point_on_surface
        return self._topology(capi.geos_pointonsurface(self.ptr))
    File "/usr/lib/python2.7/dist-packages/django/contrib/gis/geos/prototypes/threadsafe.py", line 49, in __call__
        return self.cfunc(self.thread_context.handle.ptr, *args)
    File "/usr/lib/python2.7/dist-packages/django/contrib/gis/geos/prototypes/errcheck.py", line 43, in check_geom
        raise GEOSException('Error encountered checking Geometry returned from GEOS C function "%s".' % func.__name__)
django.contrib.gis.geos.error.GEOSException: Error encountered checking Geometry returned from GEOS C function "GEOSPointOnSurface_r".