diff options
| author | Claude Paroz <claude@2xlibre.net> | 2013-03-16 11:39:18 +0100 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2013-05-17 13:33:40 +0200 |
| commit | b16b72d415808073da0418de93bf32f71ead959d (patch) | |
| tree | 7006c92c5672fbfd5ca09f9e3f175550ca951adb /docs/ref | |
| parent | d4d114563280b6e202b8459be0aa471621c7b563 (diff) | |
Fixed #5472 --Added OpenLayers-based widgets in contrib.gis
Largely inspired from django-floppyforms. Designed to not depend
on OpenLayers at code level.
Diffstat (limited to 'docs/ref')
| -rw-r--r-- | docs/ref/contrib/gis/forms-api.txt | 165 | ||||
| -rw-r--r-- | docs/ref/contrib/gis/index.txt | 1 | ||||
| -rw-r--r-- | docs/ref/forms/fields.txt | 2 |
3 files changed, 168 insertions, 0 deletions
diff --git a/docs/ref/contrib/gis/forms-api.txt b/docs/ref/contrib/gis/forms-api.txt new file mode 100644 index 0000000000..d0c671958f --- /dev/null +++ b/docs/ref/contrib/gis/forms-api.txt @@ -0,0 +1,165 @@ +.. _ref-gis-forms-api: + +=================== +GeoDjango Forms API +=================== + +.. module:: django.contrib.gis.forms + :synopsis: GeoDjango forms API. + +.. versionadded:: 1.6 + +GeoDjango provides some specialized form fields and widgets in order to visually +display and edit geolocalized data on a map. By default, they use +`OpenLayers`_-powered maps, with a base WMS layer provided by `Metacarta`_. + +.. _OpenLayers: http://openlayers.org/ +.. _Metacarta: http://metacarta.com/ + +Field arguments +=============== +In addition to the regular :ref:`form field arguments <core-field-arguments>`, +GeoDjango form fields take the following optional arguments. + +``srid`` +~~~~~~~~ + +.. attribute:: Field.srid + + This is the SRID code that the field value should be transformed to. For + example, if the map widget SRID is different from the SRID more generally + used by your application or database, the field will automatically convert + input values into that SRID. + +``geom_type`` +~~~~~~~~~~~~~ + +.. attribute:: Field.geom_type + + You generally shouldn't have to set or change that attribute which should + be setup depending on the field class. It matches the OpenGIS standard + geometry name. + +Form field classes +================== + +``GeometryField`` +~~~~~~~~~~~~~~~~~ + +.. class:: GeometryField + +``PointField`` +~~~~~~~~~~~~~~ + +.. class:: PointField + +``LineStringField`` +~~~~~~~~~~~~~~~~~~~ + +.. class:: LineStringField + +``PolygonField`` +~~~~~~~~~~~~~~~~ + +.. class:: PolygonField + +``MultiPointField`` +~~~~~~~~~~~~~~~~~~~ + +.. class:: MultiPointField + +``MultiLineStringField`` +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. class:: MultiLineStringField + +``MultiPolygonField`` +~~~~~~~~~~~~~~~~~~~~~ + +.. class:: MultiPolygonField + +``GeometryCollectionField`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. class:: GeometryCollectionField + +Form widgets +============ + +.. module:: django.contrib.gis.widgets + :synopsis: GeoDjango widgets API. + +GeoDjango form widgets allow you to display and edit geographic data on a +visual map. +Note that none of the currently available widgets supports 3D geometries, hence +geometry fields will fallback using a simple ``Textarea`` widget for such data. + +Widget attributes +~~~~~~~~~~~~~~~~~ + +GeoDjango widgets are template-based, so their attributes are mostly different +from other Django widget attributes. + + +.. attribute:: BaseGeometryWidget.geom_type + + The OpenGIS geometry type, generally set by the form field. + +.. attribute:: BaseGeometryWidget.map_height +.. attribute:: BaseGeometryWidget.map_width + + Height and width of the widget map (default is 400x600). + +.. attribute:: BaseGeometryWidget.map_srid + + SRID code used by the map (default is 4326). + +.. attribute:: BaseGeometryWidget.display_wkt + + Boolean value specifying if a textarea input showing the WKT representation + of the current geometry is visible, mainly for debugging purposes (default + is ``False``). + +.. attribute:: BaseGeometryWidget.supports_3d + + Indicates if the widget supports edition of 3D data (default is ``False``). + +.. attribute:: BaseGeometryWidget.template_name + + The template used to render the map widget. + +You can pass widget attributes in the same manner that for any other Django +widget. For example:: + + from django.contrib.gis import forms + + class MyGeoForm(forms.Form): + point = forms.PointField(widget= + forms.OSMWidget(attrs={'map_width': 800, 'map_height': 500})) + +Widget classes +~~~~~~~~~~~~~~ + +``BaseGeometryWidget`` + +.. class:: BaseGeometryWidget + + This is an abstract base widget containing the logic needed by subclasses. + You cannot directly use this widget for a geometry field. + Note that the rendering of GeoDjango widgets is based on a template, + identified by the :attr:`template_name` class attribute. + +``OpenLayersWidget`` + +.. class:: OpenLayersWidget + + This is the default widget used by all GeoDjango form fields. + ``template_name`` is ``gis/openlayers.html``. + +``OSMWidget`` + +.. class:: OSMWidget + + This widget uses an OpenStreetMap base layer (Mapnik) to display geographic + objects on. + ``template_name`` is ``gis/openlayers-osm.html``. diff --git a/docs/ref/contrib/gis/index.txt b/docs/ref/contrib/gis/index.txt index 6a1402bfab..c533aa459d 100644 --- a/docs/ref/contrib/gis/index.txt +++ b/docs/ref/contrib/gis/index.txt @@ -18,6 +18,7 @@ of spatially enabled data. install/index model-api db-api + forms-api geoquerysets measure geos diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index 054f45c430..8e1a4b34d1 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -30,6 +30,8 @@ exception or returns the clean value:: ... ValidationError: [u'Enter a valid email address.'] +.. _core-field-arguments: + Core field arguments -------------------- |
