DRF geojson serializer is a decorator which allows to format data as geojson http://geojson.org
Geojson serializer works with django rest framework as a decorator.
Add django-geojson_serializer to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ .... 'geojson_serializer' ]
In your code you can use
geojson_serializer(<name-of-geo-field>)
decorator with a regualar serializer, e.g.:from geojson_serializer.serializers import geojson_serializer class City(models.Model): name = models.CharField(max_length=128) location = models.PointField() @geojson_serializer('location') class CitySerializer(serializers.ModelSerializer): class Meta: model = City fields =['name', 'location'] class CityViewSet(viewsets.ModelViewSet): queryset = City.objects.all() serializer_class = CitySerializer
Then you can register CityViewSet with a router and the view will generate and accept geojsons in corresponding requests.
Also supported are
id
andbbox
fields:@geojson_serializer('location', id='id', bbox='bounding_box') class MySerializer(serializers.ModelSerializer): ....
In this case
'id'
and'bounding_box'
fields should be defined by the underlying serializerMySerializer
.