Browse Source

Fixed #35989 -- Removed crs from GeoJSON serializer.

Specification of coordinate reference systems (crs) was removed from the GeoJSON spec in 2016.
https://datatracker.ietf.org/doc/html/rfc7946#appendix-B.1
Jeremy Thompson 3 months ago
parent
commit
918e7a2c76

+ 1 - 5
django/contrib/gis/serializers/geojson.py

@@ -25,11 +25,7 @@ class Serializer(JSONSerializer):
     def start_serialization(self):
         self._init_options()
         self._cts = {}  # cache of CoordTransform's
-        self.stream.write(
-            '{"type": "FeatureCollection", '
-            '"crs": {"type": "name", "properties": {"name": "EPSG:%d"}},'
-            ' "features": [' % self.srid
-        )
+        self.stream.write('{"type": "FeatureCollection", "features": [')
 
     def end_serialization(self):
         self.stream.write("]}")

+ 0 - 1
docs/ref/contrib/gis/serializers.txt

@@ -46,7 +46,6 @@ Would output::
 
     {
         "type": "FeatureCollection",
-        "crs": {"type": "name", "properties": {"name": "EPSG:4326"}},
         "features": [
             {
                 "type": "Feature",

+ 2 - 0
tests/gis_tests/geoapp/test_serializers.py

@@ -23,6 +23,8 @@ class GeoJSONSerializerTests(TestCase):
     def test_serialization_base(self):
         geojson = serializers.serialize("geojson", City.objects.order_by("name"))
         geodata = json.loads(geojson)
+        self.assertEqual(list(geodata.keys()), ["type", "features"])
+        self.assertEqual(geodata["type"], "FeatureCollection")
         self.assertEqual(len(geodata["features"]), len(City.objects.all()))
         self.assertEqual(geodata["features"][0]["geometry"]["type"], "Point")
         self.assertEqual(geodata["features"][0]["properties"]["name"], "Chicago")