【问题标题】:How can i use decimal field in geodjango?如何在 geodjango 中使用十进制字段?
【发布时间】:2016-06-28 17:06:33
【问题描述】:

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

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

  2. 有什么方法可以改变geodjango中floatfield的位数吗?

  3. 我可以在 geodjango 中使用小数域而不是浮点域吗?那我该怎么做呢?

因为我正在构建一个需要大量距离计算取决于坐标的服务,我需要减少计算量。

感谢您阅读我蹩脚的英文写作。

【问题讨论】:

    标签: django geodjango


    【解决方案1】:

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

    不正确的引用和推断一起出现。您正在查看的是一个教程,该教程展示了如何将 World Borders Shapefile 导入 django。这里 lat 和 long 是真正不相关的字段。重要的是mpoly。这可能就是为什么 lat 和 lng 在这里存储为浮点数的原因。但他们可以通过不使用 lat,lng 作为单独的字段来避免混淆。

    真正的 geodjango 存储点的方法是使用PointField,它允许您存储有关位置的附加信息,例如 SRID。确切的内部表示从 RDBMS 到 RDMBS 不同。

    如果您需要距离计算,唯一的方法是使用 GeometryField 或其子类之一(PointField 是一个),因此您问题中的子主题 1、2、3 并不真正相关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多