API des formulaires GeoDjangoLien vers cette rubrique
GeoDjango propose quelques champs et composants de formulaires spécialisés afin d’afficher et de modifier visuellement des données géolocalisées sur une carte. Par défaut, ils utilisent des cartes motorisées par OpenLayers, avec une couche de base WMS fournie par la NASA.
Paramètres de champsLien vers cette rubrique
En plus des paramètres de champs de formulaires habituels, les champs de formulaires GeoDjango acceptent les paramètres facultatifs suivants.
sridLien vers cette rubrique
- Field.sridLien vers cette définition
Il s’agit du code SRID utilisé pour transformer la valeur du champ. Par exemple, si le SRID du composant de carte est différent du SRID utilisé plus généralement par votre application ou base de données, le champ convertit automatiquement les valeurs d’entrée dans ce SRID.
geom_typeLien vers cette rubrique
- Field.geom_typeLien vers cette définition
Cet attribut n’a généralement pas besoin d’être défini ou modifié, car il est automatiquement défini en fonction de la classe du champ. Il correspond au nom d’objet géométrique du standard OpenGIS.
Classes de champs de formulairesLien vers cette rubrique
GeometryFieldLien vers cette rubrique
- class GeometryFieldLien vers cette définition
PointFieldLien vers cette rubrique
- class PointFieldLien vers cette définition
LineStringFieldLien vers cette rubrique
- class LineStringFieldLien vers cette définition
PolygonFieldLien vers cette rubrique
- class PolygonFieldLien vers cette définition
MultiPointFieldLien vers cette rubrique
- class MultiPointFieldLien vers cette définition
MultiLineStringFieldLien vers cette rubrique
- class MultiLineStringFieldLien vers cette définition
MultiPolygonFieldLien vers cette rubrique
- class MultiPolygonFieldLien vers cette définition
GeometryCollectionFieldLien vers cette rubrique
- class GeometryCollectionFieldLien vers cette définition
Composants de formulairesLien vers cette rubrique
Les composants de formulaires GeoDjango permettent d’afficher et de modifier des données géographiques visuellement sur une carte. Notez qu’aucun des composants actuellement disponibles ne prend en charge les objets géométriques 3D, ce qui fait que les champs géométriques se rabattent sur un simple composant Textarea s’ils ont affaire à de tels objets.
Attributs de composantsLien vers cette rubrique
Les composants GeoDjango sont basés sur les gabarits, ce qui fait que leurs attributs sont majoritairement différents des autres attributs de composants Django.
- BaseGeometryWidget.geom_typeLien vers cette définition
Le type de géométrie OpenGIS, généralement défini par le champ de formulaire.
- BaseGeometryWidget.map_heightLien vers cette définition
- BaseGeometryWidget.map_widthLien vers cette définition
Hauteur et largeur du composant de carte (la valeur par défaut est 400x600).
- BaseGeometryWidget.map_sridLien vers cette définition
Code SRID utilisé par la carte (la valeur par défaut est 4326).
- BaseGeometryWidget.display_rawLien vers cette définition
Valeur booléenne indiquant si une boîte de saisie de texte affichant la représentation sérialisée de l’objet géométrique en cours est visible, principalement à des fins de débogage (la valeur par défaut est
False).
- BaseGeometryWidget.supports_3dLien vers cette définition
Indique si le composant prend en charge l’édition de données 3D (la valeur par défaut est
False).
- BaseGeometryWidget.template_nameLien vers cette définition
Le gabarit utilisé pour produire le composant de carte.
Vous pouvez transmettre des attributs de composants de la même façon que pour tout autre composant Django. Par exemple :
from django.contrib.gis import forms
class MyGeoForm(forms.Form):
point = forms.PointField(widget=
forms.OSMWidget(attrs={'map_width': 800, 'map_height': 500}))
Classes de composantsLien vers cette rubrique
BaseGeometryWidget
- class BaseGeometryWidgetLien vers cette définition
Il s’agit d’un composant de base abstrait contenant la logique nécessaire aux sous-classes. Il n’est pas possible d’utiliser directement ce composant pour un champ géométrique. Notez que la production de composants GeoDjango est basée sur les gabarits, par l’intermédiaire de l’attribut de classe
template_name.
OpenLayersWidget
- class OpenLayersWidgetLien vers cette définition
Il s’agit du composant par défaut utilisé par tous les champs de formulaires GeoDjango.
template_namecontientgis/openlayers.html.OpenLayersWidgetetOSMWidgetutilisent le fichieropenlayers.jshébergé sur le réseau de diffusion de contenucdnjs.cloudflare.com. Vous pouvez créer des sous-classes de ces composants afin de placer dans la propriétéjsde la classeMediainterne votre propre version deOpenLayers.jsadaptée à vos besoins (voir Fichiers annexes définis statiquement).
OSMWidget
- class OSMWidgetLien vers cette définition
Ce composant utilise une couche de base OpenStreetMap comme base d’affichage pour les objets géographiques. Ses attributs sont :
- template_nameLien vers cette définition
gis/openlayers-osm.html
- default_latLien vers cette définition
- default_lonLien vers cette définition
Les latitude et longitude du centre sont respectivement
47et5par défaut, ce qui correspond à un emplacement à l’est de la France.
La note
OpenLayersWidgetau sujet de l’hébergement des fichiers JavaScript est aussi valable dans ce cas. Voir aussi cette réponse de FAQ au sujet de l’accèshttpsaux tuiles de cartes.