GeoDjango:确定多边形的面积

neu*_*rix 3 gis django polygon area geodjango

在我的模型中,我有一个定义的多边形字段

polygon = models.PolygonField(srid=4326, geography=True, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

当我想确定多边形的区域时,我打电话

area_square_degrees = object.polygon.area
Run Code Online (Sandbox Code Playgroud)

但是如何使用GeoDjango 将平方度的结果转换为m2? 这个答案不起作用,因为area没有方法sq_m.有内置转换吗?

Ale*_*der 5

您需要将数据转换为正确的空间参照系.

area_square_local_units = object.polygon.transform(srid, clone=False).area
Run Code Online (Sandbox Code Playgroud)

在英国,您可以使用英国国家电网SRID 27700,它使用电表.

area_square_meters = object.polygon.transform(27700, clone=False).area
Run Code Online (Sandbox Code Playgroud)

您可能想要也可能不想克隆几何体,具体取决于您是否需要在未转换状态下对其进行任何其他操作.

文档在这里https://docs.djangoproject.com/en/1.8/ref/contrib/gis/geos/

斯里兰卡的另一个答案非常错误.