{"title":"Geographic Database Functions","version":"4.2","locale":"en","docname":"ref/contrib/gis/functions","url":"/en/4.2/ref/contrib/gis/functions/","canonical":"https://djangodocs.dev/en/4.2/ref/contrib/gis/functions/","summary":"The functions documented on this page allow users to access geographic database functions to be used in annotations, aggregations, or filters in Django. Example:…","html":"<span id=\"geographic-database-functions\"></span><h1>Geographic Database Functions<a class=\"heading-anchor\" href=\"#module-django.contrib.gis.db.models.functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>The functions documented on this page allow users to access geographic database\nfunctions to be used in annotations, aggregations, or filters in Django.</p>\n<p>Example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.gis.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Length</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Track</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">length</span><span class=\"o\">=</span><span class=\"n\">Length</span><span class=\"p\">(</span><span class=\"s2\">&quot;line&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">length__gt</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Not all backends support all functions, so refer to the documentation of each\nfunction to see if your database backend supports the function you want to use.\nIf you call a geographic function on a backend that doesn’t support it, you’ll\nget a <code class=\"docutils literal notranslate\"><span class=\"pre\">NotImplementedError</span></code> exception.</p>\n<p>Function’s summary:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Measurement</p></th>\n<th class=\"head\"><p>Relationships</p></th>\n<th class=\"head\"><p>Operations</p></th>\n<th class=\"head\"><p>Editors</p></th>\n<th class=\"head\"><p>Input format</p></th>\n<th class=\"head\"><p>Output format</p></th>\n<th class=\"head\"><p>Miscellaneous</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Area\" title=\"django.contrib.gis.db.models.functions.Area\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Area</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Azimuth\" title=\"django.contrib.gis.db.models.functions.Azimuth\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Azimuth</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Difference\" title=\"django.contrib.gis.db.models.functions.Difference\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Difference</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.ForcePolygonCW\" title=\"django.contrib.gis.db.models.functions.ForcePolygonCW\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForcePolygonCW</span></code></a></p></td>\n<td></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.AsGeoJSON\" title=\"django.contrib.gis.db.models.functions.AsGeoJSON\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AsGeoJSON</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.IsEmpty\" title=\"django.contrib.gis.db.models.functions.IsEmpty\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IsEmpty</span></code></a></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Distance\" title=\"django.contrib.gis.db.models.functions.Distance\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Distance</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.BoundingCircle\" title=\"django.contrib.gis.db.models.functions.BoundingCircle\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundingCircle</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Intersection\" title=\"django.contrib.gis.db.models.functions.Intersection\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Intersection</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.MakeValid\" title=\"django.contrib.gis.db.models.functions.MakeValid\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MakeValid</span></code></a></p></td>\n<td></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.AsGML\" title=\"django.contrib.gis.db.models.functions.AsGML\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AsGML</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.IsValid\" title=\"django.contrib.gis.db.models.functions.IsValid\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IsValid</span></code></a></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.GeometryDistance\" title=\"django.contrib.gis.db.models.functions.GeometryDistance\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GeometryDistance</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Centroid\" title=\"django.contrib.gis.db.models.functions.Centroid\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Centroid</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.SymDifference\" title=\"django.contrib.gis.db.models.functions.SymDifference\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SymDifference</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Reverse\" title=\"django.contrib.gis.db.models.functions.Reverse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Reverse</span></code></a></p></td>\n<td></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.AsKML\" title=\"django.contrib.gis.db.models.functions.AsKML\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AsKML</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.MemSize\" title=\"django.contrib.gis.db.models.functions.MemSize\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MemSize</span></code></a></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Length\" title=\"django.contrib.gis.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Length</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Envelope\" title=\"django.contrib.gis.db.models.functions.Envelope\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Envelope</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Union\" title=\"django.contrib.gis.db.models.functions.Union\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Union</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Scale\" title=\"django.contrib.gis.db.models.functions.Scale\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Scale</span></code></a></p></td>\n<td></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.AsSVG\" title=\"django.contrib.gis.db.models.functions.AsSVG\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AsSVG</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.NumGeometries\" title=\"django.contrib.gis.db.models.functions.NumGeometries\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumGeometries</span></code></a></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Perimeter\" title=\"django.contrib.gis.db.models.functions.Perimeter\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Perimeter</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.LineLocatePoint\" title=\"django.contrib.gis.db.models.functions.LineLocatePoint\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LineLocatePoint</span></code></a>\n<a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.PointOnSurface\" title=\"django.contrib.gis.db.models.functions.PointOnSurface\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PointOnSurface</span></code></a></p></td>\n<td></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.SnapToGrid\" title=\"django.contrib.gis.db.models.functions.SnapToGrid\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SnapToGrid</span></code></a>\n<a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Transform\" title=\"django.contrib.gis.db.models.functions.Transform\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Transform</span></code></a>\n<a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.Translate\" title=\"django.contrib.gis.db.models.functions.Translate\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Translate</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.FromWKB\" title=\"django.contrib.gis.db.models.functions.FromWKB\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FromWKB</span></code></a>\n<a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.FromWKT\" title=\"django.contrib.gis.db.models.functions.FromWKT\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FromWKT</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.AsWKB\" title=\"django.contrib.gis.db.models.functions.AsWKB\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AsWKB</span></code></a>\n<a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.AsWKT\" title=\"django.contrib.gis.db.models.functions.AsWKT\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AsWKT</span></code></a>\n<a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.GeoHash\" title=\"django.contrib.gis.db.models.functions.GeoHash\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GeoHash</span></code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.NumPoints\" title=\"django.contrib.gis.db.models.functions.NumPoints\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumPoints</span></code></a></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<section id=\"area\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Area</span></code><a class=\"heading-anchor\" href=\"#area\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Area\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Area</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Area\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-polygon-property-functions.html#function_st-area\">MySQL</a>,\nOracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Area.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns the area of the\nfield as an <a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/measure/#django.contrib.gis.measure.Area\" title=\"django.contrib.gis.measure.Area\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Area</span></code></a> measure.</p>\n<p>MySQL and SpatiaLite without LWGEOM/RTTOPO don’t support area calculations on\ngeographic SRSes.</p>\n</section>\n<section id=\"asgeojson\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">AsGeoJSON</span></code><a class=\"heading-anchor\" href=\"#asgeojson\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.AsGeoJSON\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AsGeoJSON</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">bbox</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">crs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">precision</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">8</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.AsGeoJSON\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-geojson-functions.html#function_st-asgeojson\">MySQL</a>,\nOracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsGeoJSON.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a <a class=\"reference external\" href=\"https://geojson.org/\">GeoJSON</a> representation of the geometry. Note that the result\nis not a complete GeoJSON structure but only the <code class=\"docutils literal notranslate\"><span class=\"pre\">geometry</span></code> key content of a\nGeoJSON structure. See also <a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/serializers/\"><span class=\"doc\">GeoJSON Serializer</span></a>.</p>\n<p>Example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">City</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">json</span><span class=\"o\">=</span><span class=\"n\">AsGeoJSON</span><span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Chicago&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">json</span>\n<span class=\"go\">{&quot;type&quot;:&quot;Point&quot;,&quot;coordinates&quot;:[-87.65018,41.85039]}</span>\n</code></pre></div>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Keyword Argument</p></th>\n<th class=\"head\"><p>Description</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">bbox</span></code></p></td>\n<td><p>Set this to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if you want the bounding box\nto be included in the returned GeoJSON. Ignored on\nOracle.</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">crs</span></code></p></td>\n<td><p>Set this to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if you want the coordinate\nreference system to be included in the returned\nGeoJSON. Ignored on MySQL and Oracle.</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">precision</span></code></p></td>\n<td><p>It may be used to specify the number of significant\ndigits for the coordinates in the GeoJSON\nrepresentation – the default value is 8. Ignored on\nOracle.</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"asgml\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">AsGML</span></code><a class=\"heading-anchor\" href=\"#asgml\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.AsGML\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AsGML</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">version</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">2</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">precision</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">8</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.AsGML\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsGML.html\">PostGIS</a>,\nSpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Geography_Markup_Language\">Geographic Markup\nLanguage (GML)</a> representation of the geometry.</p>\n<p>Example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">qs</span> <span class=\"o\">=</span> <span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">gml</span><span class=\"o\">=</span><span class=\"n\">AsGML</span><span class=\"p\">(</span><span class=\"s2\">&quot;poly&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">qs</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">gml</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;gml:Polygon srsName=&quot;EPSG:4326&quot;&gt;&lt;gml:OuterBoundaryIs&gt;-147.78711,70.245363 ...</span>\n<span class=\"go\">-147.78711,70.245363&lt;/gml:OuterBoundaryIs&gt;&lt;/gml:Polygon&gt;</span>\n</code></pre></div>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Keyword Argument</p></th>\n<th class=\"head\"><p>Description</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">precision</span></code></p></td>\n<td><p>Specifies the number of significant digits for the\ncoordinates in the GML representation – the default\nvalue is 8. Ignored on Oracle.</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">version</span></code></p></td>\n<td><p>Specifies the GML version to use: 2 (default) or 3.</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"askml\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">AsKML</span></code><a class=\"heading-anchor\" href=\"#askml\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.AsKML\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AsKML</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">precision</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">8</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.AsKML\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsKML.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a <a class=\"reference external\" href=\"https://developers.google.com/kml/documentation/\">Keyhole Markup\nLanguage (KML)</a> representation of the geometry.</p>\n<p>Example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">qs</span> <span class=\"o\">=</span> <span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">kml</span><span class=\"o\">=</span><span class=\"n\">AsKML</span><span class=\"p\">(</span><span class=\"s2\">&quot;poly&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">qs</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">kml</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;Polygon&gt;&lt;outerBoundaryIs&gt;&lt;LinearRing&gt;&lt;coordinates&gt;-103.04135,36.217596,0 ...</span>\n<span class=\"go\">-103.04135,36.217596,0&lt;/coordinates&gt;&lt;/LinearRing&gt;&lt;/outerBoundaryIs&gt;&lt;/Polygon&gt;</span>\n</code></pre></div>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Keyword Argument</p></th>\n<th class=\"head\"><p>Description</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">precision</span></code></p></td>\n<td><p>This keyword may be used to specify the number of\nsignificant digits for the coordinates in the KML\nrepresentation – the default value is 8.</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"assvg\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">AsSVG</span></code><a class=\"heading-anchor\" href=\"#assvg\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.AsSVG\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AsSVG</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">relative</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">precision</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">8</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.AsSVG\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsSVG.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a <a class=\"reference external\" href=\"https://www.w3.org/Graphics/SVG/\">Scalable Vector\nGraphics (SVG)</a> representation of the geometry.</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Keyword Argument</p></th>\n<th class=\"head\"><p>Description</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">relative</span></code></p></td>\n<td><p>If set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, the path data will be implemented\nin terms of relative moves. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>,\nmeaning that absolute moves are used instead.</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">precision</span></code></p></td>\n<td><p>This keyword may be used to specify the number of\nsignificant digits for the coordinates in the SVG\nrepresentation – the default value is 8.</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"aswkb\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">AsWKB</span></code><a class=\"heading-anchor\" href=\"#aswkb\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.AsWKB\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AsWKB</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.AsWKB\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-format-conversion-functions.html#function_st-asbinary\">MySQL</a>,\nOracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsBinary.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\">Well-known\nbinary (WKB)</a> representation of the geometry.</p>\n<p>Example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">bytes</span><span class=\"p\">(</span><span class=\"n\">City</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">wkb</span><span class=\"o\">=</span><span class=\"n\">AsWKB</span><span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Chelyabinsk&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">wkb</span><span class=\"p\">)</span>\n<span class=\"go\">b&#39;\\x01\\x01\\x00\\x00\\x00]3\\xf9f\\x9b\\x91K@\\x00X\\x1d9\\xd2\\xb9N@&#39;</span>\n</code></pre></div>\n</section>\n<section id=\"aswkt\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">AsWKT</span></code><a class=\"heading-anchor\" href=\"#aswkt\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.AsWKT\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AsWKT</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.AsWKT\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-format-conversion-functions.html#function_st-astext\">MySQL</a>,\nOracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsText.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry\">Well-known text\n(WKT)</a> representation of the geometry.</p>\n<p>Example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">City</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">wkt</span><span class=\"o\">=</span><span class=\"n\">AsWKT</span><span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Chelyabinsk&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">wkt</span>\n<span class=\"go\">&#39;POINT (55.137555 61.451728)&#39;</span>\n</code></pre></div>\n</section>\n<section id=\"azimuth\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Azimuth</span></code><a class=\"heading-anchor\" href=\"#azimuth\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Azimuth\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Azimuth</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">point_a</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">point_b</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Azimuth\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Azimuth.html\">PostGIS</a>,\nSpatiaLite (LWGEOM/RTTOPO)</p>\n<p>Returns the azimuth in radians of the segment defined by the given point\ngeometries, or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> if the two points are coincident. The azimuth is angle\nreferenced from north and is positive clockwise: north = <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>; east = <code class=\"docutils literal notranslate\"><span class=\"pre\">π/2</span></code>;\nsouth = <code class=\"docutils literal notranslate\"><span class=\"pre\">π</span></code>; west = <code class=\"docutils literal notranslate\"><span class=\"pre\">3π/2</span></code>.</p>\n</section>\n<section id=\"boundingcircle\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BoundingCircle</span></code><a class=\"heading-anchor\" href=\"#boundingcircle\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.BoundingCircle\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BoundingCircle</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">num_seg</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">48</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.BoundingCircle\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_MinimumBoundingCircle.html\">PostGIS</a>,\n<a class=\"reference external\" href=\"https://docs.oracle.com/en/database/oracle/oracle-database/21/spatl/SDO_GEOM-reference.html#GUID-82A61626-BB64-4793-B53D-A0DBEC91831A\">Oracle</a></p>\n<p>Accepts a single geographic field or expression and returns the smallest circle\npolygon that can fully contain the geometry.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">num_seg</span></code> parameter is used only on PostGIS.</p>\n</section>\n<section id=\"centroid\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Centroid</span></code><a class=\"heading-anchor\" href=\"#centroid\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Centroid\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Centroid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Centroid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-polygon-property-functions.html#function_st-centroid\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_Centroid.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns the <code class=\"docutils literal notranslate\"><span class=\"pre\">centroid</span></code>\nvalue of the geometry.</p>\n</section>\n<section id=\"difference\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Difference</span></code><a class=\"heading-anchor\" href=\"#difference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Difference\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Difference</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr2</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Difference\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-difference\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_Difference.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Accepts two geographic fields or expressions and returns the geometric\ndifference, that is the part of geometry A that does not intersect with\ngeometry B.</p>\n</section>\n<section id=\"distance\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Distance</span></code><a class=\"heading-anchor\" href=\"#distance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Distance\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Distance</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr2</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">spheroid</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Distance\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-relation-functions-object-shapes.html#function_st-distance\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_Distance.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Accepts two geographic fields or expressions and returns the distance between\nthem, as a <a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Distance</span></code></a> object. On MySQL, a raw\nfloat value is returned when the coordinates are geodetic.</p>\n<p>On backends that support distance calculation on geodetic coordinates, the\nproper backend function is automatically chosen depending on the SRID value of\nthe geometries (e.g. <a class=\"reference external\" href=\"https://postgis.net/docs/ST_DistanceSphere.html\">ST_DistanceSphere</a> on PostGIS).</p>\n<p>When distances are calculated with geodetic (angular) coordinates, as is the\ncase with the default WGS84 (4326) SRID, you can set the <code class=\"docutils literal notranslate\"><span class=\"pre\">spheroid</span></code> keyword\nargument to decide if the calculation should be based on a simple sphere (less\naccurate, less resource-intensive) or on a spheroid (more accurate, more\nresource-intensive).</p>\n<p>In the following example, the distance from the city of Hobart to every other\n<a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/model-api/#django.contrib.gis.db.models.PointField\" title=\"django.contrib.gis.db.models.PointField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PointField</span></code></a> in the <code class=\"docutils literal notranslate\"><span class=\"pre\">AustraliaCity</span></code>\nqueryset is calculated:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.gis.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Distance</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">pnt</span> <span class=\"o\">=</span> <span class=\"n\">AustraliaCity</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Hobart&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">point</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">city</span> <span class=\"ow\">in</span> <span class=\"n\">AustraliaCity</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">distance</span><span class=\"o\">=</span><span class=\"n\">Distance</span><span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">,</span> <span class=\"n\">pnt</span><span class=\"p\">)):</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">city</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">,</span> <span class=\"n\">city</span><span class=\"o\">.</span><span class=\"n\">distance</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">Wollongong 990071.220408 m</span>\n<span class=\"go\">Shellharbour 972804.613941 m</span>\n<span class=\"go\">Thirroul 1002334.36351 m</span>\n<span class=\"go\">...</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Because the <code class=\"docutils literal notranslate\"><span class=\"pre\">distance</span></code> attribute is a\n<a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Distance</span></code></a> object, you can easily express\nthe value in the units of your choice. For example, <code class=\"docutils literal notranslate\"><span class=\"pre\">city.distance.mi</span></code> is\nthe distance value in miles and <code class=\"docutils literal notranslate\"><span class=\"pre\">city.distance.km</span></code> is the distance value\nin kilometers. See <a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/measure/\"><span class=\"doc\">Measurement Objects</span></a> for usage details and the list of\n<a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/measure/#supported-units\"><span class=\"std std-ref\">Supported units</span></a>.</p>\n</aside>\n</section>\n<section id=\"envelope\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Envelope</span></code><a class=\"heading-anchor\" href=\"#envelope\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Envelope\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Envelope</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Envelope\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-general-property-functions.html#function_st-envelope\">MySQL</a>,\n<a class=\"reference external\" href=\"https://docs.oracle.com/en/database/oracle/oracle-database/21/spatl/spatial-operators-reference.html#GUID-ACED800F-3435-44AA-9606-D40934A23ED0\">Oracle</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_Envelope.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns the geometry\nrepresenting the bounding box of the geometry.</p>\n</section>\n<section id=\"forcepolygoncw\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">ForcePolygonCW</span></code><a class=\"heading-anchor\" href=\"#forcepolygoncw\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.ForcePolygonCW\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ForcePolygonCW</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.ForcePolygonCW\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_ForcePolygonCW.html\">PostGIS</a>,\nSpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a modified version\nof the polygon/multipolygon in which all exterior rings are oriented clockwise\nand all interior rings are oriented counterclockwise. Non-polygonal geometries\nare returned unchanged.</p>\n</section>\n<section id=\"fromwkb\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">FromWKB</span></code><a class=\"heading-anchor\" href=\"#fromwkb\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"version-note version-added\" data-version=\"4.2\">\n<p class=\"version-note-title\">New in Django 4.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.FromWKB\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">FromWKB</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.FromWKB\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-wkb-functions.html#function_st-geomfromwkb\">MySQL</a>,\nOracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_GeomFromWKB.html\">PostGIS</a>, SpatiaLite</p>\n<p>Creates geometry from <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\">Well-known binary (WKB)</a> representation.</p>\n</section>\n<section id=\"fromwkt\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">FromWKT</span></code><a class=\"heading-anchor\" href=\"#fromwkt\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"version-note version-added\" data-version=\"4.2\">\n<p class=\"version-note-title\">New in Django 4.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.FromWKT\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">FromWKT</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.FromWKT\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-wkt-functions.html#function_st-geomfromtext\">MySQL</a>,\nOracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_GeomFromText.html\">PostGIS</a>, SpatiaLite</p>\n<p>Creates geometry from <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry\">Well-known text (WKT)</a> representation.</p>\n</section>\n<section id=\"geohash\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">GeoHash</span></code><a class=\"heading-anchor\" href=\"#geohash\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.GeoHash\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GeoHash</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">precision</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.GeoHash\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-geohash-functions.html#function_st-geohash\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_GeoHash.html\">PostGIS</a>, SpatiaLite\n(LWGEOM/RTTOPO)</p>\n<p>Accepts a single geographic field or expression and returns a <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Geohash\">GeoHash</a>\nrepresentation of the geometry.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">precision</span></code> keyword argument controls the number of characters in the\nresult.</p>\n</section>\n<section id=\"geometrydistance\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">GeometryDistance</span></code><a class=\"heading-anchor\" href=\"#geometrydistance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.GeometryDistance\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GeometryDistance</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr2</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.GeometryDistance\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/geometry_distance_knn.html\">PostGIS</a></p>\n<p>Accepts two geographic fields or expressions and returns the distance between\nthem. When used in an <a class=\"reference internal\" href=\"/en/4.2/ref/models/querysets/#django.db.models.query.QuerySet.order_by\" title=\"django.db.models.query.QuerySet.order_by\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">order_by()</span></code></a> clause,\nit provides index-assisted nearest-neighbor result sets.</p>\n</section>\n<section id=\"intersection\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Intersection</span></code><a class=\"heading-anchor\" href=\"#intersection\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Intersection\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Intersection</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr2</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Intersection\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-intersection\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_Intersection.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Accepts two geographic fields or expressions and returns the geometric\nintersection between them.</p>\n</section>\n<section id=\"isempty\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">IsEmpty</span></code><a class=\"heading-anchor\" href=\"#isempty\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"version-note version-added\" data-version=\"4.2\">\n<p class=\"version-note-title\">New in Django 4.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.IsEmpty\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">IsEmpty</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.IsEmpty\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_IsEmpty.html\">PostGIS</a></p>\n<p>Accepts a geographic field or expression and tests if the value is an empty\ngeometry. Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if its value is empty and <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> otherwise.</p>\n</section>\n<section id=\"isvalid\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">IsValid</span></code><a class=\"heading-anchor\" href=\"#isvalid\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.IsValid\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">IsValid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.IsValid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-convenience-functions.html#function_st-isvalid\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_IsValid.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Accepts a geographic field or expression and tests if the value is well formed.\nReturns <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if its value is a valid geometry and <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> otherwise.</p>\n</section>\n<section id=\"length\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Length</span></code><a class=\"heading-anchor\" href=\"#length\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Length\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Length</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">spheroid</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Length\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-linestring-property-functions.html#function_st-length\">MySQL</a>,\nOracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Length.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic linestring or multilinestring field or expression\nand returns its length as a <a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Distance</span></code></a>\nmeasure.</p>\n<p>On PostGIS and SpatiaLite, when the coordinates are geodetic (angular), you can\nspecify if the calculation should be based on a simple sphere (less\naccurate, less resource-intensive) or on a spheroid (more accurate, more\nresource-intensive) with the <code class=\"docutils literal notranslate\"><span class=\"pre\">spheroid</span></code> keyword argument.</p>\n<p>MySQL doesn’t support length calculations on geographic SRSes.</p>\n</section>\n<section id=\"linelocatepoint\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">LineLocatePoint</span></code><a class=\"heading-anchor\" href=\"#linelocatepoint\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.LineLocatePoint\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LineLocatePoint</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">linestring</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">point</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.LineLocatePoint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_LineLocatePoint.html\">PostGIS</a>,\nSpatiaLite</p>\n<p>Returns a float between 0 and 1 representing the location of the closest point on\n<code class=\"docutils literal notranslate\"><span class=\"pre\">linestring</span></code> to the given <code class=\"docutils literal notranslate\"><span class=\"pre\">point</span></code>, as a fraction of the 2D line length.</p>\n</section>\n<section id=\"makevalid\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">MakeValid</span></code><a class=\"heading-anchor\" href=\"#makevalid\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.MakeValid\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MakeValid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.MakeValid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_MakeValid.html\">PostGIS</a>,\nSpatiaLite (LWGEOM/RTTOPO)</p>\n<p>Accepts a geographic field or expression and attempts to convert the value into\na valid geometry without losing any of the input vertices. Geometries that are\nalready valid are returned without changes. Simple polygons might become a\nmultipolygon and the result might be of lower dimension than the input.</p>\n</section>\n<section id=\"memsize\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">MemSize</span></code><a class=\"heading-anchor\" href=\"#memsize\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.MemSize\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MemSize</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.MemSize\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_MemSize.html\">PostGIS</a></p>\n<p>Accepts a single geographic field or expression and returns the memory size\n(number of bytes) that the geometry field takes.</p>\n</section>\n<section id=\"numgeometries\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">NumGeometries</span></code><a class=\"heading-anchor\" href=\"#numgeometries\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.NumGeometries\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">NumGeometries</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.NumGeometries\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-geometrycollection-property-functions.html#function_st-numgeometries\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_NumGeometries.html\">PostGIS</a>, Oracle,\nSpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns the number of\ngeometries if the geometry field is a collection (e.g., a <code class=\"docutils literal notranslate\"><span class=\"pre\">GEOMETRYCOLLECTION</span></code>\nor <code class=\"docutils literal notranslate\"><span class=\"pre\">MULTI*</span></code> field). Returns 1 for single geometries.</p>\n<p>On MySQL, returns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> for single geometries.</p>\n</section>\n<section id=\"numpoints\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">NumPoints</span></code><a class=\"heading-anchor\" href=\"#numpoints\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.NumPoints\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">NumPoints</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.NumPoints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-linestring-property-functions.html#function_st-numpoints\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_NPoints.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns the number of points\nin a geometry.</p>\n<p>On MySQL, returns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> for any non-<code class=\"docutils literal notranslate\"><span class=\"pre\">LINESTRING</span></code> geometry.</p>\n</section>\n<section id=\"perimeter\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Perimeter</span></code><a class=\"heading-anchor\" href=\"#perimeter\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Perimeter\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Perimeter</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Perimeter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Perimeter.html\">PostGIS</a>,\nOracle, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns the perimeter of the\ngeometry field as a <a class=\"reference internal\" href=\"/en/4.2/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Distance</span></code></a> object.</p>\n</section>\n<section id=\"pointonsurface\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">PointOnSurface</span></code><a class=\"heading-anchor\" href=\"#pointonsurface\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.PointOnSurface\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PointOnSurface</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.PointOnSurface\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_PointOnSurface.html\">PostGIS</a>,\nMariaDB, Oracle, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a <code class=\"docutils literal notranslate\"><span class=\"pre\">Point</span></code> geometry\nguaranteed to lie on the surface of the field; otherwise returns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</section>\n<section id=\"reverse\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Reverse</span></code><a class=\"heading-anchor\" href=\"#reverse\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Reverse\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Reverse</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Reverse\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Reverse.html\">PostGIS</a>, Oracle,\nSpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a geometry with\nreversed coordinates.</p>\n</section>\n<section id=\"scale\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Scale</span></code><a class=\"heading-anchor\" href=\"#scale\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Scale\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Scale</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">x</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">y</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">z</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">0.0</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Scale\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Scale.html\">PostGIS</a>, SpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a geometry with\nscaled coordinates by multiplying them with the <code class=\"docutils literal notranslate\"><span class=\"pre\">x</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">y</span></code>, and optionally\n<code class=\"docutils literal notranslate\"><span class=\"pre\">z</span></code> parameters.</p>\n</section>\n<section id=\"snaptogrid\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">SnapToGrid</span></code><a class=\"heading-anchor\" href=\"#snaptogrid\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.SnapToGrid\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SnapToGrid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.SnapToGrid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_SnapToGrid.html\">PostGIS</a>,\nSpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a geometry with all\npoints snapped to the given grid.  How the geometry is snapped to the grid\ndepends on how many numeric (either float, integer, or long) arguments are\ngiven.</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Number of Arguments</p></th>\n<th class=\"head\"><p>Description</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>1</p></td>\n<td><p>A single size to snap both the X and Y grids to.</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>2</p></td>\n<td><p>X and Y sizes to snap the grid to.</p></td>\n</tr>\n<tr class=\"row-even\"><td><p>4</p></td>\n<td><p>X, Y sizes and the corresponding X, Y origins.</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"symdifference\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">SymDifference</span></code><a class=\"heading-anchor\" href=\"#symdifference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.SymDifference\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SymDifference</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr2</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.SymDifference\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-symdifference\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_SymDifference.html\">PostGIS</a>, Oracle,\nSpatiaLite</p>\n<p>Accepts two geographic fields or expressions and returns the geometric\nsymmetric difference (union without the intersection) between the given\nparameters.</p>\n</section>\n<section id=\"transform\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Transform</span></code><a class=\"heading-anchor\" href=\"#transform\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Transform\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Transform</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">srid</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Transform\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Transform.html\">PostGIS</a>,\nOracle, SpatiaLite</p>\n<p>Accepts a geographic field or expression and a SRID integer code, and returns\nthe transformed geometry to the spatial reference system specified by the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">srid</span></code> parameter.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>What spatial reference system an integer SRID corresponds to may depend on\nthe spatial database used.  In other words, the SRID numbers used for Oracle\nare not necessarily the same as those used by PostGIS.</p>\n</aside>\n</section>\n<section id=\"translate\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Translate</span></code><a class=\"heading-anchor\" href=\"#translate\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Translate\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Translate</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">x</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">y</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">z</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">0.0</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Translate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Translate.html\">PostGIS</a>,\nSpatiaLite</p>\n<p>Accepts a single geographic field or expression and returns a geometry with\nits coordinates offset by the <code class=\"docutils literal notranslate\"><span class=\"pre\">x</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">y</span></code>, and optionally <code class=\"docutils literal notranslate\"><span class=\"pre\">z</span></code> numeric\nparameters.</p>\n</section>\n<section id=\"union\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Union</span></code><a class=\"heading-anchor\" href=\"#union\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.Union\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Union</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expr2</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.Union\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Availability</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-union\">MySQL</a>,\n<a class=\"reference external\" href=\"https://postgis.net/docs/ST_Union.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Accepts two geographic fields or expressions and returns the union of both\ngeometries.</p>\n</section>","rootId":"module-django.contrib.gis.db.models.functions","toc":[{"title":"Area","anchor":"area","children":[]},{"title":"AsGeoJSON","anchor":"asgeojson","children":[]},{"title":"AsGML","anchor":"asgml","children":[]},{"title":"AsKML","anchor":"askml","children":[]},{"title":"AsSVG","anchor":"assvg","children":[]},{"title":"AsWKB","anchor":"aswkb","children":[]},{"title":"AsWKT","anchor":"aswkt","children":[]},{"title":"Azimuth","anchor":"azimuth","children":[]},{"title":"BoundingCircle","anchor":"boundingcircle","children":[]},{"title":"Centroid","anchor":"centroid","children":[]},{"title":"Difference","anchor":"difference","children":[]},{"title":"Distance","anchor":"distance","children":[]},{"title":"Envelope","anchor":"envelope","children":[]},{"title":"ForcePolygonCW","anchor":"forcepolygoncw","children":[]},{"title":"FromWKB","anchor":"fromwkb","children":[]},{"title":"FromWKT","anchor":"fromwkt","children":[]},{"title":"GeoHash","anchor":"geohash","children":[]},{"title":"GeometryDistance","anchor":"geometrydistance","children":[]},{"title":"Intersection","anchor":"intersection","children":[]},{"title":"IsEmpty","anchor":"isempty","children":[]},{"title":"IsValid","anchor":"isvalid","children":[]},{"title":"Length","anchor":"length","children":[]},{"title":"LineLocatePoint","anchor":"linelocatepoint","children":[]},{"title":"MakeValid","anchor":"makevalid","children":[]},{"title":"MemSize","anchor":"memsize","children":[]},{"title":"NumGeometries","anchor":"numgeometries","children":[]},{"title":"NumPoints","anchor":"numpoints","children":[]},{"title":"Perimeter","anchor":"perimeter","children":[]},{"title":"PointOnSurface","anchor":"pointonsurface","children":[]},{"title":"Reverse","anchor":"reverse","children":[]},{"title":"Scale","anchor":"scale","children":[]},{"title":"SnapToGrid","anchor":"snaptogrid","children":[]},{"title":"SymDifference","anchor":"symdifference","children":[]},{"title":"Transform","anchor":"transform","children":[]},{"title":"Translate","anchor":"translate","children":[]},{"title":"Union","anchor":"union","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API Reference","url":"/en/4.2/ref/"},{"docname":"ref/contrib/index","title":"contrib packages","url":"/en/4.2/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/en/4.2/ref/contrib/gis/"}],"prev":{"docname":"ref/contrib/gis/geoquerysets","title":"GIS QuerySet API Reference","url":"/en/4.2/ref/contrib/gis/geoquerysets/"},"next":{"docname":"ref/contrib/gis/measure","title":"Measurement Objects","url":"/en/4.2/ref/contrib/gis/measure/"},"formats":{"html":"/en/4.2/ref/contrib/gis/functions/","markdown":"/en/4.2/ref/contrib/gis/functions.md","json":"/en/4.2/ref/contrib/gis/functions.json"},"source":"https://github.com/django/django/blob/stable/4.2.x/docs/ref/contrib/gis/functions.txt","official":"https://docs.djangoproject.com/en/4.2/ref/contrib/gis/functions/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}