API форм GeoDjango ¶
GeoDjango предлагает несколько полей и специализированных компонентов форм для визуального отображения и изменения геолокационных данных на карте. По умолчанию они используют карты, работающие на OpenLayers , с базовым уровнем WMS, предоставленным НАСА .
Параметры поля ¶
В дополнение к обычным полям параметров, поля формы GeoDjango принимают следующие необязательные параметры.
Классы полей формы ¶
Компоненты формы ¶
Компоненты формы GeoDjango позволяют визуально просматривать и редактировать географические данные на карте. Обратите внимание, что ни один из доступных в настоящее время компонентов не поддерживает трехмерные геометрические объекты, поэтому геометрические поля возвращаются к компоненту, Textarea
если они имеют дело с такими объектами.
Атрибуты компонента ¶
Компоненты GeoDjango основаны на шаблонах, поэтому их атрибуты в основном отличаются от атрибутов других компонентов Django.
-
BaseGeometryWidget.
geom_type
¶ Тип геометрии OpenGIS, обычно определяемый полем формы.
-
BaseGeometryWidget.
map_height
¶
-
BaseGeometryWidget.
map_width
¶ Высота и ширина компонента карты (по умолчанию 400x600).
-
BaseGeometryWidget.
map_srid
¶ Код SRID, используемый картой (по умолчанию 4326).
-
BaseGeometryWidget.
display_raw
¶ Логическое значение, указывающее, отображается ли текстовое поле ввода, отображающее сериализованное представление текущего геометрического объекта, в первую очередь для целей отладки (по умолчанию
False
).
-
BaseGeometryWidget.
supports_3d
¶ Указывает, поддерживает ли компонент редактирование 3D-данных (по умолчанию
False
).
-
BaseGeometryWidget.
template_name
¶ Шаблон, используемый для создания компонента карты.
Вы можете передавать атрибуты компонента так же, как и любой другой компонент 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
¶ Это абстрактный базовый компонент, содержащий логику, необходимую для подклассов. Этот компонент нельзя напрямую использовать для геометрического поля. Обратите внимание, что создание компонентов GeoDjango основано на шаблонах с помощью атрибута class
template_name
.
OpenLayersWidget
-
класс
OpenLayersWidget
¶ Это компонент по умолчанию, используемый всеми полями формы GeoDjango.
template_name
содержитgis/openlayers.html
.OpenLayersWidget
иOSMWidget
использовать файл,openlayers.js
размещенный в сети доставки контентаcdnjs.cloudflare.com
. Вы можете создать подклассы этих компонентов, чтобы поместить в свойство внутреннегоjs
классаMedia
вашу собственную версиюOpenLayers.js
(см. Статически определенные вложения ).
OSMWidget
-
класс
OSMWidget
¶ Этот компонент использует базовый слой OpenStreetMap в качестве основы отображения для географических объектов. Его атрибуты:
-
template_name
¶ gis/openlayers-osm.html
-
default_lat
¶
-
default_lon
¶ Широта и долгота центра соответственно
47
и5
по умолчанию, что соответствует местоположению на востоке Франции.
-
default_zoom
¶ По умолчанию масштаб карты равен
12
.
Примечание
OpenLayersWidget
о размещении файлов JavaScript также применимо в этом случае. См. Также ответ на часто задаваемые вопросы о доступе кhttps
фрагментам карты .-