gpt4 book ai didi

django - GeoDjango:如何根据点和半径创建圆

转载 作者:行者123 更新时间:2023-12-04 00:36:39 30 4
gpt4 key购买 nike

我有以下(简化的)模型:

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


我想基于给定的点和半径创建并保存一个代表圆形的多边形。

我能弄清楚如何实现此目标的唯一方法是使用原始SQL调用postgis ST_Buffer函数。我真的希望有另一种方法。

是否可以访问GEOS缓冲区方法?

最佳答案

是的,可以使用geos buffer method

>>> from django.contrib.gis import geos
>>> center = geos.Point(5, 5)
>>> radius = 2
>>> circle = center.buffer(radius)
>>> circle
<Polygon object at 0x1029d8370>


此处的半径与点的坐标单位相同。这将对某些坐标系统(如UTM)有效,但不适用于其他坐标系。

同样,虽然这对于构造圆形几何体是合适的,但 PostGIS documentation指出,进行半径搜索ST_DWithin更为有效。

关于django - GeoDjango:如何根据点和半径创建圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985222/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com