2012-10-27 12 views
1

내 개발 환경에서 SpatiaLite에서 실행되는 GeoDjango로 지리적 쿼리에 문제가 있습니다. 쉘을 통해GeoDjango : 기본 지리적 쿼리의 예외

from django.contrib.gis.db import models 

class Test(models.Model): 
    poly = models.PolygonField() 
    point = models.PointField() 
    geom = models.GeometryField() 
    objects = models.GeoManager() 

테스트 : 이러한 정의와

>>> from geotest.models import Test 
>>> from django.contrib.gis.geos import GEOSGeometry 
>>> 
>>> point = GEOSGeometry("POINT(0 0)") 
>>> point 
<Point object at 0x105743490> 
>>> poly = GEOSGeometry("POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))") 
>>> poly 
<Polygon object at 0x105743370> 
>>> 

는 몇 가지 기본적인 지리적 쿼리를 시도 할 수 있습니다. 먼저 contains :

>>> Test.objects.filter(point__within=poly) 
Assertion failed: (0), function appendGeometryTaggedText, file WKTWriter.cpp, line 228. 
Abort trap 

그리고 장고 쉘이 죽습니다. 그리고 within로 :

>>> Test.objects.filter(poly__contains=point) 
GEOS_ERROR: Geometry must be a Point or LineString 
Traceback (most recent call last): 
... 
GEOSException: Error encountered checking Coordinate Sequence returned from GEOS C function "GEOSGeom_getCoordSeq_r". 
>>> 

다른 조합도 예외 다양한 원인이됩니다. 나는 아주 명백한 무언가가 빠져 있어야합니다. 어떤 아이디어?

답변

0

요청하신 내용이 올바른 것 같습니다.

모든 요구 사항을 충족했는지 확인 했습니까?

https://docs.djangoproject.com/en/1.4/ref/contrib/gis/install/#spatial-database

당신은 제대로 spatialite 데이터베이스를 초기화 적이 있습니까?

https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/spatialite/#creating-a-spatial-database-for-spatialite

+0

답장을 보내 주셔서 감사합니다. 나는 기존 데이터베이스를 삭제하고 새로운 데이터베이스를 처음부터 시작했지만 정확히 같은 오류가 발생합니다. ( – omat