【问题标题】:Django-Leaflet show custom layers on a formDjango-Leaflet 在表单上显示自定义图层
【发布时间】:2018-01-24 19:11:51
【问题描述】:

我有两个模型,一个显示标记(PointField),一个生成 PolygonFields。

在我看来,我可以完美地在地图上显示所有数据。 但是,我想在创建新几何图形时显示相同的数据。问题是,如何将标记和多边形字段数据叠加为表单中的图层。

型号

class MyPolygon(gis_models.Model):
    geom    = gis_models.PolygonField()
    objects = gis_models.GeoManager()

class MyPoints(gis_models.Model):
    geom    = gis_models.PolygonField()
    objects = gis_models.GeoManager()

观看次数

class PolygonCreateView(CreateView):
    form_class = PolygonForm
    template_name = 'applications/create_polygon.html'
    success_url = '/applications/polygon'

def view_polygon(request):
    polygons= ReserveAirspace.objects.all()
    return render(request, 'applications/polygons.html',{'polygons':polygons})

同样适用于点。

html

{{form.geom}}

如何在模板中将所有现有的多边形和点添加到上面的表单域???

【问题讨论】:

    标签: javascript django django-forms leaflet geodjango


    【解决方案1】:

    您需要使用 JavaScript 将几何图形添加到传单地图中。您可以将它们作为 geojson 从另一个视图返回,也可以像这样扩展您的 CreateView:

    class PolygonCreateView(CreateView):
        # ....
        def all_polygons(self):
            return MyPolygon.objects.all()
    

    并使用{{ view.all_polygons }}从您的模板访问它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-29
      • 2012-06-21
      • 1970-01-01
      • 2017-08-07
      • 2019-07-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      相关资源
      最近更新 更多