我正在使用PostGIS和Django。我知道如何从十进制坐标向PostgreSQL添加"点",但是如何使用GeoDjango添加它呢?
以下是我在PostgreSQL中的操作方法:
UPDATE "my_table" SET coordinates=GeometryFromText('POINT(-93.7505 31.3059)',4269) WHERE id=101;
我该如何在Django中做同样的事情?
以下是我认为您要求的内容:
GeoDjango使用对象关系映射器。在您的models.py中,您需要定义一个包含点的模型,例如:
class my_points(models.Model):
name = models.CharField(max_length = 100)
coords = models.PointField()
接下来,在你的一个视图中,你需要实例化一个my_points对象:
a = my_point(name="example", coords=x,y)
from django.contrib.gis.geos import GEOSGeometry
# queries the database for the object with an id=101
a = my_points.objects.get(id=101)
# defines your point
pnt = GEOSGeometry('POINT(5 23)')
# updates the object in memory
a.coords = pnt
# saves the changes to the database
a.save()