django-location-field
Let users pick locations using a map widget and store its latitude and longitude.
Documentation: https://django-location-field.readthedocs.io/en/latest/
License: MIT
Status
Tests are performed with Python 2 and 3, Django 1.11 and 2, and SpatiaLite.
Features
- Support for multiple map engines, like Google Maps, OpenStreetMap and Mapbox.
- Support for multiple search engines, like Google, Nominatim, Yandex and Addok.
- Works with both Spatial and non-Spatial databases.
Compatibility
- Django: 1.11, 2.2, 3.2
- Python 2.7, 3.9, 3.10, 3.11
Spatial Databases
- PostGIS
- SpatiaLite
Installation
-
Install through pip (or manually place it on your
PYTHONPATH
).pip install django-location-field
-
Add
location_field.apps.DefaultConfig
toINSTALLED_APPS
your settings.py file
For example, PostGIS:
https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/postgis/
Basic usage (using Spatial Database)
from django.contrib.gis.db import models
from django.contrib.gis.geos import Point
from location_field.models.spatial import LocationField
class Place(models.Model):
city = models.CharField(max_length=255)
location = LocationField(based_fields=['city'], zoom=7, default=Point(1.0, 1.0))
Basic usage (without Spatial Database)
from django.db import models
from location_field.models.plain import PlainLocationField
class Place(models.Model):
city = models.CharField(max_length=255)
location = PlainLocationField(based_fields=['city'], zoom=7)
Screenshot
Nick Frost has credit over the image used as logo for this project. CC BY