GeoDjango提供一些专用的表单字段和小部件,以便在地图上可视化地显示和编辑地理定位数据。 默认情况下,它们使用OpenLayers赋值映射,其中包含由NASA提供的基本WMS层。
除了常规的form field arguments,GeoDjango表单字段采用以下可选参数。
GeoDjango表单小部件允许您在视觉地图上显示和编辑地理数据。
请注意,目前没有可用的小部件支持3D几何,因此几何字段将使用简单的Textarea
小部件来备份这些数据。
GeoDjango窗口小部件是基于模板的,因此它们的属性与其他Django窗口小部件属性大不相同。
BaseGeometryWidget。
geom_type T0> ¶ T1>
OpenGIS几何类型,通常由表单字段设置。
BaseGeometryWidget。
地图高度 T0> ¶ T1>
BaseGeometryWidget。
地图宽度 T0> ¶ T1>
小部件地图的高度和宽度(默认值为400x600)。
BaseGeometryWidget。
map_srid T0> ¶ T1>
映射使用的SRID代码(默认值为4326)。
BaseGeometryWidget。
display_raw T0> ¶ T1>
布尔值,指定是否显示当前几何的序列化表示的textarea输入可见,主要用于调试目的(默认值为False
)。
BaseGeometryWidget。
supports_3d T0> ¶ T1>
指示小部件是否支持3D数据版本(默认值为False
)。
BaseGeometryWidget。
TEMPLATE_NAME T0> ¶ T1>
用于呈现地图窗口小部件的模板。
您可以以与任何其他Django窗口小部件相同的方式传递窗口小部件属性。 像这样:
from django.contrib.gis import forms
class MyGeoForm(forms.Form):
point = forms.PointField(widget=
forms.OSMWidget(attrs={'map_width': 800, 'map_height': 500}))
BaseGeometryWidget
BaseGeometryWidget T0> ¶ T1>
这是一个包含子类所需逻辑的抽象基本部件。
您不能直接将此窗口小部件用于几何字段。
请注意,GeoDjango窗口小部件的呈现基于由template_name
类属性标识的模板。
OpenLayersWidget
OpenLayersWidget T0> ¶ T1>
这是所有GeoDjango表单字段使用的默认小部件。
template_name
是gis/openlayers.html
。
OpenLayersWidget
和OSMWidget
使用托管在cdnjs.cloudflare.com
内容投放网络上的openlayers.js
文件。 您可以对这些小部件进行子类化,以便根据需要定制您自己的版本OpenLayers.js
文件在内部的js
属性Media
类(见Assets as a static definition)。
旧版本使用不适于生产使用的openlayers.org
中的OpenLayers.js
,因为它不能保证正常运行时间并且在慢速服务器上运行。
此外,小部件现在使用OpenLayers 3而不是OpenLayers 2。
OSMWidget
OSMWidget T0> ¶ T1>
此小部件使用OpenStreetMap基础层来显示地理对象。 属性有:
TEMPLATE_NAME T0> ¶ T1>
GIS /的OpenLayers-osm.html
default_lat T0> ¶ T1>
default_lon T0> ¶ T1>
The default center latitude and longitude are 47
and 5
,
respectively, which is a location in eastern France.
上面关于JavaScript文件托管的OpenLayersWidget
注释也适用于此。 另请参阅此常见问题解答关于https
的访问地图图块。
OpenLayers 2.x已经放弃了OpenLayers 3。 如果您扩展了gis/openlayers-osm.html
模板,请查看您的自定义模板。
2017年9月6日