GeoDjango: How to create a circle based on point and radius

后端 未结 2 1532
清酒与你
清酒与你 2020-12-28 09:07

I have the following (simplified) Model:

class Zone(gismodels.Model):
    name = gismodels.CharField()
    poly = gismodels.PolygonField()

2条回答
  •  长情又很酷
    2020-12-28 09:32

    Yes, it is possible to use the geos buffer method:

    >>> from django.contrib.gis import geos
    >>> center = geos.Point(5, 5)
    >>> radius = 2
    >>> circle = center.buffer(radius)
    >>> circle
    
    

    The radius here is in the same units as the coordinates of the points. This will work for some coordinate systems like UTM, but not as well for others.

    Also, while this is appropriate for constructing a circular geometry, the PostGIS documentation notes that for doing radius searches ST_DWithin is more efficient.

提交回复
热议问题