From fe101f3cb062945340175eabefff2ba41f2a4225 Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Thu, 5 Dec 2019 14:16:44 +0300 Subject: [PATCH] try another calc strategy (cherry picked from commit 9ab17f7) --- apps/search_indexes/filters.py | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/apps/search_indexes/filters.py b/apps/search_indexes/filters.py index 3d55bdb4..857d44d2 100644 --- a/apps/search_indexes/filters.py +++ b/apps/search_indexes/filters.py @@ -13,25 +13,13 @@ class CustomGeoSpatialFilteringFilterBackend(GeoSpatialFilteringFilterBackend): @staticmethod def calculate_center(first, second): - if second[1] < 0 < first[1]: - reverse_first, reverse_second = 180 - abs(first[1]), 180 - abs(second[1]) - diff = (reverse_first + reverse_second) / 2 - - if reverse_first < reverse_second: - result_part = -180 + (180 + second[1] - diff) - - else: - result_part = 180 - (180 - first[1] - diff) - - elif second[1] < 0 > first[1] or second[1] > 0 < first[1]: - reverse_first, reverse_second = 180 - abs(first[1]), 180 - abs(second[1]) - result_part = ((reverse_first + reverse_second) / 2) * (-1 + (second[1] < 0) * 2) - + if second[1] < first[1]: + res_longtitude = first[1] + (first[1] - second[1]) / 2 else: - result_part = (first[1] + second[1]) / 2 + res_longtitude = first[1] + (second[1] - first[1]) / 2 # return (first[0] + second[0]) / 2, result_part - return (first[0] + second[0]) / 2, (first[1] + second[1]) / 2 + return (first[0] + second[0]) / 2, res_longtitude def filter_queryset(self, request, queryset, view): ret = super().filter_queryset(request, queryset, view)