我如何在geodjango中使用十进制字段?

时间:2016-06-28 17:06:34

标签: django geodjango

根据API Reference,lat和lon信息存储在geodjango的floatfield中。

  1. 我想知道lat和lon是否存储在floatfield中,用于表示坐标的有效位数是多少?

  2. 有没有办法改变geodjango浮点数的位数?

  3. 我可以在geodjango中使用decimalfield而不是floatfield吗?那我该怎么做呢?

  4. 因为构建需要大量距离计算的服务取决于坐标,我需要减少计算的巨大。

    感谢您阅读我糟糕的英文写作。

1 个答案:

答案 0 :(得分:1)

  

根据   https://docs.djangoproject.com/en/dev/ref/contrib/gis/tutorial/#defining-a-geographic-model,   lat和lon信息存储在geodjango的floatfield中。

错误的引用和推断都在一起。您正在查看的是一个教程,其中显示了如何将World Borders Shapefile导入django。这里lat和long实际上是无关紧要的领域。重要的是mpoly。这可能是为什么lat和lng在这里存储为浮点数的原因。但是他们可以通过不使用lat,lng作为单独的字段来避免混淆。

真正的geodjango存储点的方式是使用PointField它允许您存储有关位置的其他信息,例如SRID。精确的内部表示从RDBMS到RDMBS不等。

如果您需要距离计算,唯一的方法是使用GeometryField或其中一个子类(PointField的一个)是一个)所以你的问题中的子主题1,2,3不是&# 39;真的很相关。