V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
shiziwen
V2EX  ›  Django

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

  •  
  •   shiziwen · Jun 29, 2015 · 3138 views
    This topic created in 3958 days ago, the information mentioned may be changed or developed.

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

    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 replies    2015-07-01 09:53:19 +08:00
    shiziwen
        1
    shiziwen  
    OP
       Jun 29, 2015
    另外,在调用

    python manage.py update_index

    或者

    python manage.py rebuild_index

    的时候,也都会报这个错误。
    shiziwen
        2
    shiziwen  
    OP
       Jul 1, 2015
    问题已经找到了,只因为别的字段错误的赋予了坐标值引起的。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2723 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.