如何分配给Django PointField模型属性?

2024-04-18 23:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个Django模型,如下所示:

class Address(models.Model):
    geoCoords = models.PointField(null=True, blank=True,)

现在我创建此模型的一个实例:

A = Address()

如何将A的geoCoord字段的坐标设置为(5.3,6.2)?我找不到用这种方法指定点域的任何示例。这个问题太简单了。实际上,我想分配给A.geocorder的坐标来自pygeocoder。它是一个2项浮点数元组。

关于Django PointFields的文档基本上是non-existant


Tags: django实例方法模型truemodeladdressmodels
2条回答

您可以使用:

from django.contrib.gis.geos import GEOSGeometry
A.geoCoords = GEOSGeometry('POINT(LON LAT)', srid=4326) # 

其中latlon分别表示latitudelongitude,并且srid是可选的,表示Spatial Reference System Identifier

您可以在这里看到有关如何绘制不同几何图形的更多信息:https://docs.djangoproject.com/en/dev/ref/contrib/gis/geos/#what-is-geos

在Django的新版本中,您可以:

from django.contrib.gis.geos import Point
pnt = Point(1, 1)

https://docs.djangoproject.com/en/1.11/ref/contrib/gis/geos/中提供了大量示例

相关问题 更多 >