django - 如何在django rest framework gis中转换几何

标签 django django-rest-framework postgis geodjango django-rest-framework-gis

我是 Django 的新手,正在使用 Django Rest Framework (DRF) 和 GIS 开发 REST API。以前,我使用 SQL 查询来转换几何:

select
    id, 
    name, 
    round(value::numeric, 2) as value,
    st_transform(geometry, 3857) as geometry
from
    my_model

...

class MyModel(models.Model):
    name = models.CharField(max_length=50, blank=True)
    value = models.FloatField()
    geometry = models.GeometryField(null=True, blank=True)


    class Meta:
        db_table = u'my_model'

    def __unicode__(self):
        return '%s' % self.name

这里是序列化类:

class MyModelSerializer(serializers.GeoModelSerializer):
    class Meta:
        model = MyModel
        fields = ('id', 'name', 'value', 'geometry')

我也试过这样做但是不能转换输出

class MyModelViewSet(viewsets.ModelViewSet):

    queryset = MyModel.objects.all().transform(3857)
    serializer_class = MyModelSerializer

如何在 Django Rest Framework 和 GIS 中执行此操作?我在哪里可以获得 DRF 的查询示例或综合教程?

最佳答案

已解决:

srid 参数添加到转换函数。我正在考虑作为

transform(srid)

第一个参数是 srid 但应该是这样的

transform(srid=3857)

class MyModelViewSet(viewsets.ModelViewSet):

    queryset = MyModel.objects.all().transform(srid=3857)
    serializer_class = MyModelSerializer

关于django - 如何在django rest framework gis中转换几何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22449406/

相关文章:

django - 我的基于 Web 的应用程序应该成为我的 API 的使用者吗?

gis - 在 PostGIS/Netezza/任何其他开源中寻找 ArcGIS 等效函数

sql - PostGIS 按 ST_Distance 排序 - 不按距离排序记录

python - 是否可以为每个模型自动创建 View 集和序列化器?

Django rest framework - 在 POST 后将新创建的对象的 id 传回响应

postgis - 如何从 PostGIS 表中删除几何数据

python - 使用 STATICFILES_DIRS 而不是 STATIC_URL 时加载静态 css 和 js

django - 从管理页面更新模型后发送电子邮件 (Django)

django - 安装 django.contrib.comments 应用程序后无法同步我的 django 数据库

python - 在 pytest-django 中每次测试后都会清理数据库