【发布时间】:2021-09-14 03:31:39
【问题描述】:
我正在努力将多边形的面积保存到数据库中。我希望能够计算面积,将其转换为正确的单位,最后将其保存在表格中,但直到现在我还没有找到正确的方法。
到目前为止,我有以下模型,我在其中以平方度计算并保存面积。
class Parcel(models.Model):
srid = settings.SRID
geometry = models.GeometryField(srid=srid, geography=True)
area = models.FloatField(blank=False, null=True)
def save(self, *args, **kwargs):
self.area = self.geometry.area
super(Parcel, self).save()
为了使用我在其他地方做的英亩面积:
p = Parcel.objects.annotate(area_=Area('geometry')).get(id=parcel_id)
parcel_area = p.area_.standard/1000
但是这个操作有点繁重,因为它会计算所有地块的面积,然后得到所需的地块,而且它不会使用或保存数据库中的面积(英亩)。
我看到有些人转换为具有正确单位的网格,但这对我不起作用,因为我的多边形来自地球各地。
谢谢!
【问题讨论】: