2011-08-12 28 views
5

Theo https://docs.djangoproject.com/en/1.3/ref/contrib/gis/db-api/, Spatialite hỗ trợ GeoQuerySet.distance(). Tuy nhiên, sau khi nhập khẩu một danh sách khu vực (MultiPolygon như mpoly thuộc tính), tôi đang cố gắng để làm như sau:Tôi có cần cấu hình cụ thể cho Spatialite với GeoDjango không?

Area.objects.all().distance(center) 

Và thay vì một cái gì đó có thể sử dụng, tôi chỉ nhận được một thông báo lỗi: "ValueError: SQLite không "

Có gì sai ở đây, tôi có cần một số cấu hình đặc biệt trên Spatialite hoặc tài liệu có sai không?

Trả lời

6

Bạn không cần phải làm bất cứ điều gì liên quan đến không gian, mà là thay đổi hệ tọa độ (srid) bạn đang sử dụng. Spatialite chỉ tính toán khoảng cách trên các hệ tọa độ địa lý chứ không phải trắc địa. Kiểm tra SRID bạn có trong định nghĩa mô hình của bạn. Ngoài ra, bạn cũng có thể chuyển sang phụ trợ hậu trường.

+0

Tuyệt vời, tôi đã đặt trường Hình học của tôi là 900913 và ít nhất là một cái gì đó đã hoạt động. Phải tìm ra dự đoán nào tôi thực sự cần, nhưng đó là một khởi đầu tuyệt vời. Cảm ơn! –

+0

Làm thế nào để làm điều đó trong một PointField() ?? –

Các vấn đề liên quan