---
title: "Foirmeacha API GeodJango"
version: 6.1
locale: ga
source: https://docs.djangoproject.com/ga/6.1/ref/contrib/gis/forms-api/
canonical: https://djangodocs.dev/ga/6.1/ref/contrib/gis/forms-api/
---
# Foirmeacha API GeodJango

Soláthraíonn GeodJango roinnt réimsí foirme speisialaithe agus giuirléidí d'fhonn sonraí geolocálaithe a thaispeáint agus a chur in eagar ar léarscáil. De réir réamhshocraithe, úsáideann siad léarscáileanna [OpenLayers](https://openlayers.org/) faoi thiomáint, le bonn ciseal WMS a sholáthraíonn [NASA](https://www.earthdata.nasa.gov/).

## Argóintí réimse

Chomh maith leis na rialt:ref: argóintí réimse foirm \<core-field-arguments\>, glacann réimsí foirme GeodJango na hargóintí roghnacha seo a leanas.

### `Srid`

#### `Field.srid`

Is é seo an cód SRID ar chóir luach an réimse a athrú. Mar shampla, má tá an giuirléid léarscáileanna SRID difriúil ón SRID a úsáideann d'fheidhmchlár nó do bhunachar sonraí níos ginearálta, tiontóidh an réimse luachanna ionchuir go huathoibríoch go SRID sin.

### `cineál_geom`

#### `Field.geom_type`

De ghnáth níor cheart go mbeadh ort an tréith sin a shocrú nó a athrú ar chóir a chur ar bun ag brath ar an rang allamuigh. Meaitseálann sé ainm geoiméadrach caighdeánach OpenGIS.

### `max_geom_collections`

#### `Field.max_geom_collections`

> **New in Django 5.2.17**

The maximum number of geometry collections the field accepts before
refusing to parse the input and raising a
[`ValidationError`](/ga/6.1/ref/exceptions/#django.core.exceptions.ValidationError). This guards against crashes
in the underlying GEOS library when parsing deeply nested
`GEOMETRYCOLLECTION` input. It defaults to `198`.

The limit is applied differently depending on the input format: for
well-known text (WKT) it bounds the nesting *depth*, while for well-known
binary (WKB and hex-encoded WKB) it bounds the *total* number of geometry
collections (both breadth and depth). As a result, the same value may
accept a wide, shallow collection as WKT but reject it as WKB. For GeoJSON,
the limit is not applied at all, since GDAL parses that input type instead.

Increase this value (or set to `None`) only if you must accept
legitimately deep geometries, since doing so reduces protection against
fatal errors.

## Ranganna réimse foirm

### `Réimse Geoiméadraithe`

#### `class GeometryField`

### `Pointfield`

#### `class PointField`

### `Línestringfield`

#### `class LineStringField`

### `Polygonfield`

#### `class PolygonField`

### `Réimse Ilphoint`

#### `class MultiPointField`

### `Páirc Illíneach`

#### `class MultiLineStringField`

### `Multipolygonfield`

#### `class MultiPolygonField`

### `Réimse Bailiúcháin Geoimetrach`

#### `class GeometryCollectionField`

## Giuirléidí foir

Ligeann giuirléidí foirme GeodJango duit sonraí geografacha a thaispeáint agus a chur in eagar ar léarscáil amhairc Tabhair faoi deara nach dtacaíonn aon cheann de na giuirléidí atá ar fáil faoi láthair le geoiméadair 3D, mar sin tiocfaidh réimsí geoiméadachta siar ag úsáid giuirléid Textarea\` le haghaidh sonraí den sórt

### tréithe giuirléid

Tá giuirléidí GeodJango bunaithe ar theimpléad, mar sin tá a gcuid tréithe difriúil den chuid is mó ó thréithe giuirléid Django eile.

#### `BaseGeometryWidget.base_layer`

> **New in Django 6.0**

A string that specifies the identifier for the default base map layer to be
used by the corresponding JavaScript map widget. It is passed as part of
the widget options when rendering, allowing the `MapWidget` to determine
which map tile provider or base layer to initialize (default is `None`).

#### `BaseGeometryWidget.geom_type`

An cineál geoiméadracht OpenGIS, arna shocrú go ginearálta ag an réimse foirme.

#### `BaseGeometryWidget.map_srid`

Cód SRID a úsáideann an léarscáil (réamhshocraithe ná 4326).

#### `BaseGeometryWidget.display_raw`

Luach Boolean a shonraíonn an bhfuil ionchur textarea a thaispeánann léiriú sraitheach an ghéiméadracht reatha le feiceáil, go príomha chun críocha dífhabhtaithe (is é “False” réamhshocraithe).

#### `BaseGeometryWidget.supports_3d`

Léiríonn sé an dtacaíonn an giuirléid le eagrán sonraí 3D (réamhshocraithe ná `False`).

#### `BaseGeometryWidget.template_name`

An teimpléad a úsáidtear chun an giuirléid léarscáil a

Is féidir leat tréithe giuirléid a rith ar an mbealach céanna le haghaidh aon ghuirléid Django eile. Mar shampla:

```
from django.contrib.gis import forms

class MyGeoForm(forms.Form):
    point = forms.PointField(widget=forms.OSMWidget(attrs={"display_raw": True}))
```

### Ranganna giuirléid

`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 base layer name,
identified by the [`base_layer`](#django.contrib.gis.forms.widgets.BaseGeometryWidget.base_layer) class attribute.

`OpenLayersWidget`

#### `class OpenLayersWidget`

This is the default widget used by all GeoDjango form fields. Attributes
are:

#### `base_layer`

> **New in Django 6.0**

`nasaWorldview`

#### `template_name`

`gis/openlayers.html`.

#### `map_srid`

`3857`

`OpenLayersWidget` and [`OSMWidget`](#django.contrib.gis.forms.widgets.OSMWidget) include the `ol.js` and
`ol.css` files hosted on the `cdn.jsdelivr.net` content-delivery
network. These files can be overridden by subclassing the widget and
setting the `js` and `css` properties of the inner `Media` class (see
[Sócmhainní mar shainiú statach](/ga/6.1/topics/forms/media/#assets-as-a-static-definition)).

> **External assets with CSP**
>
> When [`ContentSecurityPolicyMiddleware`](/ga/6.1/ref/middleware/#django.middleware.csp.ContentSecurityPolicyMiddleware) is
> enabled, the default OpenLayers CDN assets (`ol.js` and `ol.css`)
> will be blocked unless explicitly allowed. This can be addressed in one
> of two ways: **serve assets locally** by subclassing the widget and
> provide local copies of the JavaScript and CSS files, or
> **allow the CDN in the CSP policy**.
>
> For example, to allow the default NASA Worldview base layer (replace
> `x.y.z` with the actual version):
>
> ```
> from django.utils.csp import CSP
>
> SECURE_CSP = {
>     "default-src": [CSP.SELF],
>     "script-src": [CSP.SELF, "https://cdn.jsdelivr.net/npm/ol@x.y.z/dist/ol.js"],
>     "style-src": [CSP.SELF, "https://cdn.jsdelivr.net/npm/ol@x.y.z/ol.css"],
>     "img-src": [CSP.SELF, "https://*.earthdata.nasa.gov"],
> }
> ```

`OsmWidget`

#### `class OSMWidget`

This widget specialized [`OpenLayersWidget`](#django.contrib.gis.forms.widgets.OpenLayersWidget) and uses an OpenStreetMap
base layer to display geographic objects on. Attributes are:

#### `base_layer`

> **New in Django 6.0**

`osm`

#### `default_lat`

#### `default_lon`

Is é an domhantead agus an domhanfhad lárnach réamhshocraithe `47` agus `5`, faoi seach, atá ina suíomh in oirthear na Fraince.

#### `default_zoom`

Is é `12` an súmáil léarscáileanna réamhshocraithe.

The [`OpenLayersWidget`](#django.contrib.gis.forms.widgets.OpenLayersWidget) note about using external assets also applies
here. See also this [FAQ answer](https://help.openstreetmap.org/questions/10920/how-to-embed-a-map-in-my-https-site) about `https` access to map tiles.

> **OpenStreetMap tiles with CSP**
>
> This widget uses OpenStreetMap tiles instead of NASA Worldview. If
> [Content Security Policy](/ga/6.1/topics/security/#security-csp) enabled, both the OpenLayers CDN resources (as
> required by [`OpenLayersWidget`](#django.contrib.gis.forms.widgets.OpenLayersWidget)) and the OpenStreetMap tile
> servers must be allowed:
>
> ```
> from django.utils.csp import CSP
>
> SECURE_CSP = {
>     # other directives
>     "img-src": [CSP.SELF, "https://tile.openstreetmap.org"],
> }
> ```

> **Changed in Django 6.0**
>
> The `OSMWidget` no longer uses a custom template. Consequently, the
> `gis/openlayers-osm.html` template was removed.

### Customizing the base layer used in OpenLayers-based widgets

> **New in Django 6.0**

To customize the base layer displayed in OpenLayers-based geometry widgets,
define a new layer builder in a custom JavaScript file. For example:

*`path-to-file.js`*

```javascript
 MapWidget.layerBuilder.custom_layer_name = function () {
     // Return an OpenLayers layer instance.
     return new ol.layer.Tile({source: new ol.source.<ChosenSource>()});
 };
```

Then, subclass a standard geometry widget and set the `base_layer`:

```
from django.contrib.gis.forms.widgets import OpenLayersWidget

class YourCustomWidget(OpenLayersWidget):
    base_layer = "custom_layer_name"

    class Media:
        js = ["path-to-file.js"]
```
