根据API Reference,lat和lon信息存储在geodjango的floatfield中。
我想知道lat和lon是否存储在floatfield中,用于表示坐标的有效位数是多少?
有没有办法改变geodjango浮点数的位数?
我可以在geodjango中使用decimalfield而不是floatfield吗?那我该怎么做呢?
因为构建需要大量距离计算的服务取决于坐标,我需要减少计算的巨大。
感谢您阅读我糟糕的英文写作。
答案 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;真的很相关。