geodjango提供了一些专门的表单字段和小部件,以便在地图上直观地显示和编辑本地化的数据。默认情况下,他们使用 OpenLayers -Powered Maps,提供基本的WMS层 NASA .
除了常规的 form field arguments ,geodjango表单字段采用以下可选参数。
srid
¶这是字段值应转换为的SRID代码。例如,如果映射小部件srid与应用程序或数据库更常用的srid不同,则字段将自动将输入值转换为该srid。
geom_type
¶通常,您不必设置或更改该属性,该属性应根据字段类进行设置。它与OpenGIS标准几何图形名称匹配。
GeometryField
¶PointField
¶LineStringField
¶PolygonField
¶MultiPointField
¶MultiLineStringField
¶MultiPolygonField
¶GeometryCollectionField
¶GeoDjango表单小部件允许您在视觉地图上显示和编辑地理数据。请注意,当前可用的小部件都不支持3D几何,因此几何字段将使用 Textarea
此类数据的小部件。
geodjango小部件是基于模板的,因此它们的属性与其他django小部件属性大不相同。
OpenGIS几何类型,通常由窗体字段设置。
地图使用的SRID代码(默认为4326)。
布尔值,指定显示当前几何图形序列化表示的文本区域输入是否可见,主要用于调试(默认为 False
)
指示小部件是否支持3D数据版本(默认为 False
)
用于呈现地图小部件的模板。
您可以以与任何其他Django小部件相同的方式传递小部件属性。例如::
from django.contrib.gis import forms
class MyGeoForm(forms.Form):
point = forms.PointField(widget=forms.OSMWidget(attrs={"display_raw": True}))
BaseGeometryWidget
这是一个抽象的基础小部件,包含子类所需的逻辑。不能直接将此小部件用于几何字段。请注意,geodjango小部件的呈现基于模板,由 template_name
类属性。
OpenLayersWidget
这是所有geodjango表单字段使用的默认小部件。 template_name
是 gis/openlayers.html
.
OpenLayersWidget
和 OSMWidget
使用 ol.js
托管在 cdn.jsdelivr.net
内容交付网络。您可以创建这些小部件的子类,以便指定您自己的 ol.js
文件中的 js
内心的财产 Media
类(请参见 作为静态定义的资产 )。
OSMWidget
这个小部件使用OpenStreetmap基础层来显示地理对象。属性是:
gis/openlayers-osm.html
默认的中心纬度和经度为 47
和 5
分别位于法国东部。
默认地图缩放为 12
.
这个 OpenLayersWidget
上面关于javascript文件托管的说明也适用于这里。也见此 FAQ answer 关于 https
访问地图图块。
7月 22, 2024