首页 > 解决方案 > 如何更改 django-leaflet openlayers 画布?

问题描述

我有一个 django-leaflet 小部件,但该小部件显示一些图像而不是 openlayers 地图,我如何在模型窗体上更改它?

from django import forms
from django.contrib.gis.forms import OSMWidget, PointField, ModelForm
from leaflet.forms.widgets import LeafletWidget


    class YourMapWidget(LeafletWidget):
    geometry_field_class = 'geom'

class ApartmentForm(forms.ModelForm):
    class Meta:
        model = Apartment
        fields = '__all__'
        widgets = {'geom': YourMapWidget()}

在此处输入图像描述

标签: djangoleafletopenlayersdjango-leaflet

解决方案


一种方法是使用设置全局更改它。如果您想使用 OSM,只需在您的设置中添加类似这样的内容,

LEAFLET_CONFIG = {
    'DEFAULT_CENTER': (6.0, 45.0),
    'DEFAULT_ZOOM': 16,
    'TILES': 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
}

顺便说一句,这实际上很奇怪,默认设置应该是 OSM 映射。

django 传单文档


推荐阅读