2011-08-12 18 views
5

https://docs.djangoproject.com/en/1.3/ref/contrib/gis/db-api/, Spatialite GeoQuerySet.distance() desteklemektedir. Ancak, bir alan listesi (MultiPolygonmpoly olarak nitelik) ithal sahip, ben aşağıdakileri yapmak çalışıyorum:GeoDjango ile Spatialite için özel yapılandırmaya ihtiyacım var mı?

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

Ve yerine bir şeyin kullanışlı, sadece bir hata mesajı alıyorum: "ValueError: SQLite değil Jeodezik destek doğrusal mesafe hesaplamaları koordinat sistemleri. "

burada yanlış ne var, ben Spatialite bazı özel yapılandırma ihtiyacı veya belgeler düz yanlış mı?

cevap

6

Mekansalite ile ilgili bir şey yapmanıza gerek yok, kullanmakta olduğunuz koordinat sistemini (srid) değiştirin. Spatialite, jeodezik olmayan, yalnızca coğrafi koordinat sistemlerinde hesaplamalar yapar. Model tanımınızda bulunan SRID'yi kontrol edin. Alternatif olarak postgis arka ucuna da geçebilirsiniz.

+0

Mükemmel, Geometri alanımı 900913 olarak ayarladım ve en azından bir şey çalıştım. Gerçekten hangi projeksiyona ihtiyacım olduğunu bulmalıyım, ama bu harika bir başlangıç. Teşekkürler! –

+0

Bunu nasıl bir PointField() ?? –

İlgili konular