如何分配Django PointField模型属性?

Saq*_*Ali 12 python django geodjango

嗨我有一个Django模型如下:

class Address(models.Model):
    geoCoords = models.PointField(null=True, blank=True,)
Run Code Online (Sandbox Code Playgroud)

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

A = Address()
Run Code Online (Sandbox Code Playgroud)

如何将A的geoCoord字段的坐标设置为(5.3,6.2)?我找不到以这种方式分配点字段的任何示例.这是一个非常简单的问题.实际上,我想分配给A.geoCord的坐标来自pygeocoder.它是一个2项元组的花车.

关于Django PointFields的文档基本上是不存在的.

Jor*_*rdi 17

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

from django.contrib.gis.geos import Point
pnt = Point(1, 1)
Run Code Online (Sandbox Code Playgroud)

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


小智 9

您可以使用:

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

其中latlon平均latitudelongitude分别和srid是可选的,指示Spatial Reference System Identifier.

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