如何在django中按自定义区域筛选位置?

如何在django中按自定义区域筛选位置?,django,geolocation,postgis,Django,Geolocation,Postgis,我允许用户在前端(flatter)绘制自定义区域,并将其传递给后端(django+postgis),后端必须返回位于曲线内的点域的列表。那么,我应该以何种格式将曲线传递给backen,以及如何正确过滤places queryset? 假设您已将模型定义为 class Place(models.Model): location = PointField() 您应该能够使用检索包含在用户提供的几何图形中的位置的所有位置 Place.objects.filter(location__with

我允许用户在前端(flatter)绘制自定义区域,并将其传递给后端(django+postgis),后端必须返回位于曲线内的
点域的列表。那么,我应该以何种格式将曲线传递给backen,以及如何正确过滤places queryset?

假设您已将模型定义为

class Place(models.Model):
    location = PointField()
您应该能够使用检索包含在用户提供的几何图形中的位置的所有位置

Place.objects.filter(location__within=geometry)
我建议您将用户选择作为GeoJSON从前端导出,然后
POST
将其导出到后端。在Django方面,你应该能够

您需要验证
选择
是否有效,但这至少应该让您开始

geometry = GEOSGeometry(request.POST['selection'])
Place.objects.filter(location__within=geometry)