Skip to content

Commit 7f8e2b5

Browse files
committed
Fix reversed geojson coordinates
This issue relates to a change in coordinate ordering with recent versions of PostGIS
1 parent abe5b2b commit 7f8e2b5

File tree

1 file changed

+8
-3
lines changed
  • seedsource_core/django/seedsource

1 file changed

+8
-3
lines changed

seedsource_core/django/seedsource/views.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22

33
from django.conf import settings
4+
from django.contrib.gis.db.models.functions import AsGeoJSON
45
from django.contrib.gis.geos import Point
56
from django.db.models import Q
67
from django.http import HttpResponse
@@ -56,20 +57,24 @@ class SeedZoneViewset(viewsets.ReadOnlyModelViewSet):
5657
lookup_field = 'zone_uid'
5758

5859
def get_queryset(self):
60+
queryset = self.queryset
61+
if self.request.path.endswith('/geometry/'):
62+
queryset = queryset.annotate(geojson=AsGeoJSON('polygon'))
63+
5964
if not self.request.query_params.get('point'):
60-
return self.queryset
65+
return queryset
6166
else:
6267
try:
6368
x, y = [float(x) for x in self.request.query_params['point'].split(',')]
6469
except ValueError:
6570
raise ParseError()
6671
point = Point(x, y)
6772

68-
return self.queryset.filter(polygon__contains=point).order_by('zone_source__order')
73+
return queryset.filter(polygon__contains=point).order_by('zone_source__order')
6974

7075
@detail_route(methods=['get'])
7176
def geometry(self, *args, **kwargs):
72-
return Response(json.loads(self.get_object().polygon.geojson))
77+
return Response(json.loads(self.get_object().geojson))
7378

7479

7580
class TransferLimitViewset(viewsets.ReadOnlyModelViewSet):

0 commit comments

Comments
 (0)