Получих отговор на заявката, която изпратих (https://code.djangoproject.com/ticket/22830
). Очевидно открих привидно недокументиран (или поне неясно документиран) проблем, който dwithin
заявки имат с Distance
обекти. Един разработчик казва следното:
Изглежда, че ще изяснят документацията, за да стане това по-ясно (страхотно!).
Тъй като това, което искам, е 5 км, трябва да конвертирам 5 км в градуси. 1 градус е приблизително 111,325 км. Следователно 1 км =1/111,325 градуса. Следователно 5 км е приблизително 0,0449 или около 0,05 градуса. Така че просто трябва да променя обаждането си на това:
touching_locations = Location.objects.filter(geometry__dwithin=(location.geometry, 0.05))