Я создаю приложение на основе python / django, в котором важно измерить расстояние между двумя заданными географическими точками с точностью не менее 10 метров.
Проблема в том, что результаты функции расстояния Postgis и калькулятора расстояния Google Maps (между двумя выводами) сильно различаются.
Я поместил два вывода на Google Maps с координатами (52.162919 20.999998)и (52.163557 20.997626) и измерили расстояние с помощью щелчка правой кнопкой мыши -> измерить расстояние, и я также использовал функцию расстояния postgis для вычисления результата в моем коде.
from django.contrib.gis.db.models.functions import Distance
from django.contrib.gis.geos import GEOSGeometry
qs = queryset.annotate(distance=Distance(
GEOSGeometry(f'SRID=4326;POINT(52.162919 20.999998)'),
GEOSGeometry(f'SRID=4326;POINT(52.163557 20.997626)'),
spheroid=True)) \
.values_list('id', 'distance', named=True)
return qs
class XXXSerializer(serializers.ModelSerializer):
class Meta:
model = XXX
fields = ('id', 'distance')
distance = serializers.SerializerMethodField()
def get_distance(self, obj):
return obj.distance.m
Результат расчета базы данных равен 270.868624085953метров, тогда как базовый результат Google Maps составляет 175,13 метра!
Разница между этими результатами огромна.
Есть ли у вас какие-либо идеи о том, что может быть причиной, какой результат является правильным?один и как настроить мой код так, чтобы он соответствовал результату расстояния Google Maps?