Django documentationで、私はこれを読みました:
dwithin を除くすべての距離ルックアップで、オプションの 3 番目の要素 'spheroid' を含めて、GeoDjango に測地座標系のフィールドでより正確な回転楕円体距離計算関数を使用するように指示できます (たとえば、ST_Distance_Sphere の代わりに ST_Distance_Spheroid が使用されます)。
しかし、Postgis 1.5 データベースで「distance_lte」を使用して距離ルックアップを実行しようとすると、クエリは「ST_Distance_sphere」ではなく「ST_Distance」で実行されます。なんで ?私は何かを忘れましたか?
stations = Station.objects.filter(point__distance_lte=(pnt, D(km=10))).count()
from django.db import connection
print connection.queries
これを印刷する:
[{'time': '0.144', 'sql':
'SELECT "spatial_ref_sys"."srid", "spatial_ref_sys"."auth_name", "spatial_ref_sys"."auth_srid", "spatial_ref_sys"."srtext", "spatial_ref_sys"."proj4text" FROM "spatial_ref_sys" WHERE "spatial_ref_sys"."srid" = 900913 '},
{'time': '0.903', 'sql':
'SELECT COUNT(*) FROM "prices_station" WHERE ST_Distance("prices_station"."point", ST_GeomFromEWKB(E\'\\\\001\\\\001\\\\000\\\\000 1\\\\277\\\\015\\\\000\\\\270\\\\036\\\\205\\\\353Q\\\\270\\\\372\\\\277H\\\\341z\\\\024\\\\256\\\\007H@\'::bytea)) <= 10000.0'}]
ありがとう