python教程—Django中使用哪个模型字段来存储经度和纬度值?-Python实用宝典

python教程—Django中使用哪个模型字段来存储经度和纬度值?

我想用经度和纬度来存储用户位置,目前这来自谷歌地图,但我将使用GeoDango和一些点来计算点与点之间的距离。

我想用经度和纬度来存储用户位置,目前这来自谷歌地图,但我将使用GeoDango和一些点来计算点与点之间的距离。

然而,我的第一个困惑是应该使用Django中的哪个字段来存储经度和纬度值?我得到的信息是矛盾的。

官方文档使用了一个浮点字段
# geographic-models < a href = " https://docs.djangoproject.com/en/dev/ref/contrib/gis/tutorial/ " > https://docs.djangoproject.com/en/dev/ref/contrib/gis/tutorial/ geographic-models < / >

    lon = models.FloatField() lat = models.FloatField()

stackoverflow上几乎每个答案都显示一个十进制字段

    long = models.DecimalField(max_digits=8, decimal_places=3) lat = models.DecimalField(max_digits=8, decimal_places=3)

我应该用什么呢?

回答

Float通常是一个近似值,参见 中的一些简单示例。将模型修改为DecimalField(max_digits=9, decimal_places=6)可以得到非常好的结果,因为小数在坐标中非常重要,但是使用大于6的小数基本上没有意义。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
2

发表评论