Reputation: 12643
Hi I have a Django Model as follows:
class Address(models.Model):
geoCoords = models.PointField(null=True, blank=True,)
Now I create an instance of this model:
A = Address()
How can I set the coordinates of A's geoCoord field to (5.3, 6.2)? I can't find any example of where a point field is assigned to in this way. It's such a stupidly simple question. Actually, the coordinates I would like to assign to A.geoCord are from pygeocoder. It is a 2-item tuple of floats.
The documentation on Django PointFields is basically non-existant.
Upvotes: 22
Views: 29226
Reputation: 11
Try Using
from django.contrib.gis.db import models
instead of
from django.db import models
Upvotes: 1
Reputation: 944
In newer versions of Django you can:
from django.contrib.gis.geos import Point
pnt = Point(1, 1)
Plenty of examples available in https://docs.djangoproject.com/en/1.11/ref/contrib/gis/geos/
Upvotes: 27
Reputation: 117
You can use:
from django.contrib.gis.geos import GEOSGeometry
A.geoCoords = GEOSGeometry('POINT(LON LAT)', srid=4326) #
where lat
and lon
mean latitude
and longitude
, respectively and srid
is optional, indicating the Spatial Reference System Identifier
.
You can see more on how to draw different geometries here: https://docs.djangoproject.com/en/dev/ref/contrib/gis/geos/#what-is-geos
Upvotes: 11