I want to store my users location using longitude and latitude, at the moment this comes from Google Maps, but I will be using GeoDango and some point to work out distances between to points also.
However, my first confusion is which field in Django I should be using to store the longitude and latitude values? The information I'm getting is conflicting.
The official documentation uses a FloatField
https://docs.djangoproject.com/en/dev/ref/contrib/gis/tutorial/#geographic-models
lon = models.FloatField()
lat = models.FloatField()
Where almost every answer on stackoverflow shows a DecimalField
long = models.DecimalField(max_digits=8, decimal_places=3)
lat = models.DecimalField(max_digits=8, decimal_places=3)
So what should I be using?
Float is generally an approximation, see here for some simple examples. You could get very nice results modifying your model to something like DecimalField(max_digits=9, decimal_places=6)
, since decimals are very important in coordinates but using more than 6 is basically meaningless.
edit: a cute and in-topic XKCD strip to celebrate my first 100 votes!