如何给Django的PointField模型属性赋值?
你好,我有一个Django模型,内容如下:
class Address(models.Model):
geoCoords = models.PointField(null=True, blank=True,)
现在我创建了这个模型的一个实例:
A = Address()
我该如何将A的geoCoord字段的坐标设置为(5.3, 6.2)呢?我找不到任何关于如何这样给点字段赋值的例子。这真是个简单得不能再简单的问题。实际上,我想赋值给A.geoCoord的坐标是来自pygeocoder的,它是一个包含两个浮点数的元组。
关于Django的PointFields的文档基本上是不存在的。
3 个回答
0
试着使用
from django.contrib.gis.db import models
而不是
from django.db import models
11
你可以使用:
from django.contrib.gis.geos import GEOSGeometry
A.geoCoords = GEOSGeometry('POINT(LON LAT)', srid=4326) #
其中,lat
和 lon
分别代表 纬度
和 经度
,而 srid
是可选的,它表示 空间参考系统标识符
。
你可以在这里查看更多关于如何绘制不同几何图形的信息:https://docs.djangoproject.com/en/dev/ref/contrib/gis/geos/#what-is-geos
28
在更新版的Django中,你可以这样做:
from django.contrib.gis.geos import Point
pnt = Point(1, 1)
有很多例子可以在这个链接找到:https://docs.djangoproject.com/en/1.11/ref/contrib/gis/geos/