如何使用 geodjango 扩展或缩小多边形?

How to expand or reduce a polygon with geodjango?

我得到了一个使用 gis 多边形场的模型。

boundary = models.PolygonField()

作为要求,我需要允许用户提供 offset/tolerance 值。如何在不自己计算的情况下扩大或缩小这个多边形?

谢谢!

我相信 Geometry.buffer 就是您要找的。

from django.contrib.gis.geos import Polygon

poly = Polygon.from_bbox((0, 0, 5, 5))
poly.extent # (0.0, 0.0, 5.0, 5.0)
p2 = poly.buffer(1)
p2.extent #(-1.0, -1.0, 6.0, 6.0)

如果要缩小它,请在调用缓冲区时使用负值