Python postgis距离函数和google maps距离计算器结果之间存在显著差异的原因是什么?

Python postgis距离函数和google maps距离计算器结果之间存在显著差异的原因是什么?,python,django,postgresql,postgis,Python,Django,Postgresql,Postgis,我正在构建一个基于python/django的应用程序,在该应用程序中,测量两个给定地理点之间的距离非常重要,精度至少在10米左右 问题是postgis距离函数和谷歌地图距离计算器(两个引脚之间)的结果差别很大 我在谷歌地图上放置了两个坐标(52.162919 20.99999 8)和(52.163557 20.997626)的图钉,通过右键单击->测量距离来测量距离,我还使用postgis距离函数在代码中计算结果 from django.contrib.gis.db.models.functi

我正在构建一个基于python/django的应用程序,在该应用程序中,测量两个给定地理点之间的距离非常重要,精度至少在10米左右

问题是postgis距离函数和谷歌地图距离计算器(两个引脚之间)的结果差别很大

我在谷歌地图上放置了两个坐标(52.162919 20.99999 8)和(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米,而谷歌地图基础计算结果为175,13米

这些结果之间的差异是巨大的


你知道原因是什么吗,哪个结果是正确的,以及如何调整我的代码,使其与Google Maps距离结果相匹配?

在其中一个计算中,你指定的纬度和经度是错误的。您可以对其进行测试,以检查在切换值时结果是否可重复。实际上,它只是确保您知道哪个值是纬度,哪个值是经度,并将其正确地指定给两个API


我不使用这个库,但是考虑到这个错误有多容易,这个库似乎没有很好的记录。你可以在

谷歌地图使用空间参考系统(SRID)3857中看到更多信息。很难相信错误如此简单。现在它很有魅力,谢谢你的回答。我在地图上查到经纬度是正确的。不过,Django的计算结果与google或其链接网站的计算结果相差约1.5亿