0

TL;DR:如何制作 geodjango 以将我的数据保存为 DMS 格式


我正在构建一个简单的 django(实际上是 GeoDjango)应用程序,它加载一些包含 DMS 格式坐标的外部数据源。

目前,在加载该文件时,我将 DMS 转换为 DD,以便将该数据作为 POLYGON 字段存储在 django 模型中。

但是,对于输出(导出到文件),我需要将其转换回 DMS。这会导致输出的坐标与输入的坐标略有不同。我相信这是由于浮点数不准确...

4

1 回答 1

1

只需维护度数、分钟数、秒数信息,并在具有属性装饰器的方法中进行点操作的单向转换为十进制度数。

from django.db import models

class PolygonPoint(models.Model):
    parent_poly = models.ForeignKey(PolyModel)
    degrees = models.IntegerField()
    minutes = models.IntegerField()
    seconds = models.IntegerField()

    @property
    def point(self):
        """
        Do conversion to point here
        """
        ...
        p = Point(x, y, srid=a)
        return p

或者,只需将数据保存在 JSON blob 中。

class SomeModel(models.Model):
    ...
    dms_points_json = models.TextArea(help_text=u"JSON list of dms polygon points")
    poly = models.PolygonField()

    def populate_poly(self):
        """
        Perform steps to update/populate the PolygonField using 
        dms_points_json blob
        """
        ...
于 2013-02-17T23:23:29.093 回答