Skip to content

Commit 3020173

Browse files
committed
add back GeometryCollection, initialize with srid=4326
1 parent c936425 commit 3020173

File tree

2 files changed

+11
-18
lines changed

2 files changed

+11
-18
lines changed

django_mongodb_backend_gis/features.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,19 @@ def django_test_expected_failures(self):
1616
# SRIDs aren't populated: AssertionError: 4326 != None
1717
# self.assertEqual(4326, nullcity.point.srid)
1818
"gis_tests.geoapp.tests.GeoModelTest.test_proxy",
19-
# GEOSException: Calling transform() with no SRID set is not supported
19+
# MongoDB does not support the within lookup
2020
"gis_tests.relatedapp.tests.RelatedGeoModelTest.test06_f_expressions",
2121
# 'Adapter' object has no attribute 'srid'
2222
"gis_tests.geoapp.test_expressions.GeoExpressionsTests.test_geometry_value_annotation",
2323
# Object of type ObjectId is not JSON serializable
2424
"gis_tests.geoapp.test_serializers.GeoJSONSerializerTests.test_fields_option",
25-
# source and target must be of type SpatialReference
2625
"gis_tests.geoapp.test_serializers.GeoJSONSerializerTests.test_geometry_field_option",
27-
"gis_tests.geoapp.test_serializers.GeoJSONSerializerTests.test_id_field_option",
2826
"gis_tests.geoapp.test_serializers.GeoJSONSerializerTests.test_serialization_base",
2927
"gis_tests.geoapp.test_serializers.GeoJSONSerializerTests.test_srid_option",
30-
# GeometryCollection not supported
28+
# Crash initializing GeometryCollection: 'tuple' object is not callable
3129
"gis_tests.geoapp.tests.GeoModelTest.test_geometryfield",
32-
"gis_tests.geogapp.tests.GeographyTest.test05_geography_layermapping",
33-
"gis_tests.layermap.tests.LayerMapTest.test_layermap_unique_multigeometry_fk",
34-
"gis_tests.layermap.tests.LayerMapTest.test_null_geom_with_unique",
35-
"gis_tests.layermap.tests.LayerMapTest.test_test_fid_range_step",
3630
# KeyError: 'within' connection.ops.gis_operators[self.lookup_name]
3731
"gis_tests.geoapp.tests.GeoModelTest.test_gis_query_as_string",
38-
# Point object != Point object
39-
"gis_tests.geoapp.test_expressions.GeoExpressionsTests.test_update_from_other_field",
4032
# No lookups are supported (yet?)
4133
"gis_tests.geoapp.tests.GeoLookupTest.test_gis_lookups_with_complex_expressions",
4234
}

django_mongodb_backend_gis/operations.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,14 @@ def converter(value, expression, connection): # noqa: ARG001
7373
return None
7474
geom_class = getattr(geos, value["type"])
7575
if issubclass(geom_class, geos.GeometryCollection):
76-
from django.db import NotSupportedError
77-
78-
raise NotSupportedError("GeometryCollection not supported")
79-
# init_val = [
80-
# geom_class._allowed(value["coordinates"][x][0])
81-
# for x in range(len(value["coordinates"]))
82-
# ]
83-
return geom_class(value["coordinates"])
76+
# TODO: confirm this is correct.
77+
return geom_class(
78+
[
79+
geom_class._allowed(value["coordinates"][x][0])
80+
for x in range(len(value["coordinates"]))
81+
],
82+
srid=4326,
83+
)
84+
return geom_class(value["coordinates"], srid=4326)
8485

8586
return converter

0 commit comments

Comments
 (0)