V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shiziwen
V2EX  ›  Django

django haystack 保存数据的时候,报 SpatialError 的错误

  •  
  •   shiziwen · 2015-06-29 21:51:21 +08:00 · 2500 次点击
    这是一个创建于 3221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在保存数据的时候,会报如下的错误:

    File "/root/.virtualenvs/django-gis/local/lib/python2.7/site-packages/haystack/utils/geo.py", line 17, in ensure_geometry
        raise SpatialError("Point '%s' doesn't appear to be a GEOS geometry." % geom)
        SpatialError: Point 'test' doesn't appear to be a GEOS geometry.
    

    使用Venue.objects.create(name='test',latitude=40.037443, longitude=116.414223),就会引发这个错误。

    但是使用Venue.objects.all()可以获得数据。

    Venue.objects.all()[1].get_location().wkt
    u'POINT (116.4142230000000069 40.0374430000000032)'
    

    查了一些资料,没有头绪,不知道大家有没有遇到过类似的问题,多谢。

    2 条回复    2015-07-01 09:53:19 +08:00
    shiziwen
        1
    shiziwen  
    OP
       2015-06-29 22:16:26 +08:00
    另外,在调用

    python manage.py update_index

    或者

    python manage.py rebuild_index

    的时候,也都会报这个错误。
    shiziwen
        2
    shiziwen  
    OP
       2015-07-01 09:53:19 +08:00
    问题已经找到了,只因为别的字段错误的赋予了坐标值引起的。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5133 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:43 · PVG 13:43 · LAX 22:43 · JFK 01:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.