Otrzymałem odpowiedź na przesłane przeze mnie zgłoszenie (https://code.djangoproject.com/ticket/22830
). Najwyraźniej znalazłem pozornie nieudokumentowany (a przynajmniej nie jasno udokumentowany) problem, który dwithin
zapytania mają Distance
przedmioty. Deweloper mówi tak:
Wygląda na to, że zamierzają wyjaśnić dokumentację, aby było to jaśniejsze (świetnie!).
Ponieważ chcę 5km, muszę przeliczyć 5km na stopnie. 1 stopień to około 111,325 km. Dlatego 1km =1/111.325 stopni. 5km to zatem około 0,0449 czyli około 0,05 stopnia. Więc wystarczy zmienić moje wywołanie na to:
touching_locations = Location.objects.filter(geometry__dwithin=(location.geometry, 0.05))