TL; DR:如何让geodjango将数据保存为DMS格式?
我正在构建一个简单的django(实际上是GeoDjango)应用程序,它加载一些包含DMS格式坐标的外部数据源。
目前,在加载该文件时,我将DMS转换为DD,以便将该数据存储为django模型中的POLYGON字段。
但是,对于输出(导出到文件),我需要将其转换回DMS 。这使得输出的坐标与输入的坐标略有不同。我认为这是由于浮动数字不准确...
答案 0 :(得分: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
"""
...