Spec-Zone.ru › Django 5.1

GeoDjango Forms API

GeoDjango предоставляет некоторые специализированные поля и виджеты форм для визуального отображения и редактирования геолокационных данных на карте. По умолчанию они используют карты на основе OpenLayers, с базовым слоем WMS, предоставленным NASA.

Аргументы поля

В дополнение к стандартным аргументам полей формы, поля форм GeoDjango принимают следующие необязательные аргументы.

srid

Field.srid

Это код SRID, к которому должно быть преобразовано значение поля. Например, если SRID виджета карты отличается от SRID, обычно используемого вашим приложением или базой данных, поле автоматически преобразует входные значения в этот SRID.

geom_type

Field.geom_type

Обычно вам не нужно устанавливать или изменять этот атрибут, который должен быть установлен в зависимости от класса поля. Он соответствует стандартному имени геометрии OpenGIS.

Классы полей формы

GeometryField

class GeometryField [source]

PointField

class PointField [source]

LineStringField

class LineStringField [source]

PolygonField

class PolygonField [source]

MultiPointField

class MultiPointField [source]

MultiLineStringField

class MultiLineStringField [source]

MultiPolygonField

class MultiPolygonField [source]

GeometryCollectionField

class GeometryCollectionField [source]

Виджеты форм

Виджеты форм GeoDjango позволяют отображать и редактировать географические данные на визуальной карте. Обратите внимание, что ни один из доступных виджетов в настоящее время не поддерживает 3D-геометрии, поэтому поля геометрии будут использовать виджет Textarea для таких данных.

Атрибуты виджета

Виджеты GeoDjango основаны на шаблонах, поэтому их атрибуты в основном отличаются от атрибутов других виджетов Django.

BaseGeometryWidget.geom_type

Тип геометрии OpenGIS, обычно устанавливаемый полем формы.

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={"display_raw": True}))

Классы виджетов

BaseGeometryWidget

class BaseGeometryWidget [source]

Это абстрактный базовый виджет, содержащий логику, необходимую подклассам. Вы не можете напрямую использовать этот виджет для поля геометрии. Обратите внимание, что рендеринг виджетов GeoDjango основан на шаблоне, определенном атрибутом класса template_name.

OpenLayersWidget

class OpenLayersWidget [source]

Это виджет по умолчанию, используемый всеми полями форм GeoDjango. template_name является gis/openlayers.html.

OpenLayersWidget и OSMWidget используют файл ol.js, размещенный на сети доставки контента cdn.jsdelivr.net. Вы можете подклассифицировать эти виджеты, чтобы указать собственную версию файла ol.js в свойстве js внутреннего класса Media (см. Аксессуары как статическое определение).

OSMWidget

class OSMWidget [source]

Этот виджет использует базовый слой OpenStreetMap для отображения географических объектов. Атрибуты:

template_name

gis/openlayers-osm.html

default_lat
default_lon

По умолчанию широта и долгота центра — 47 и 5, соответственно, что является местоположением во Франции.

default_zoom

По умолчанию масштаб карты — 12.

Примечание OpenLayersWidget выше также относится и сюда. Также см. этот ответ на часто задаваемый вопрос о доступе к тайлам карты https.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.1/ref/contrib/gis/forms-api/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API