2017-01-05 96 views

回答

1

您可以使用Expressions创建自定义功能。

class GeoX(Func): 
    function = 'X' 

MyModel.objects.annotate(x=GeoX('field')) 

这将导致几何X函数被调用,它的结果被注释到模型中标记为x的字段。然而,这是劣质的解决方案。更好的解决方案是安装geodjango。这提供了对PostGIS中几乎所有单一功能的完全访问。也适用于spatialite和msyql空间扩展。

+0

谢谢你,我的不幸的Postgres版本是旧的GeoDjango内置。 – Crystal

+0

这是不幸的。为什么不升级你可能也使用旧版本的postgis,而且它没有现代版本的丰富功能。 – e4c5

+0

庞大的公司,很多数据和大家都害怕升级xD – Crystal

1

我设法解决使用Func键()的问题

Func(F('geometry'), function='x')