{"title":"地理数据库函数","version":"5.1","locale":"zh-hans","docname":"ref/contrib/gis/functions","url":"/zh-hans/5.1/ref/contrib/gis/functions/","canonical":"https://djangodocs.dev/zh-hans/5.1/ref/contrib/gis/functions/","summary":"本页所描述的函数允许用户访问地理数据库函数，以便在 Django 中使用注释、聚合或过滤器。","html":"<span id=\"geographic-database-functions\"></span><h1>地理数据库函数<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>本页所描述的函数允许用户访问地理数据库函数，以便在 Django 中使用注释、聚合或过滤器。</p>\n<p>例如：</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=\"nn\">django.contrib.gis.db.models.functions</span> <span class=\"kn\">import</span> Length\n<span class=\"gp\">&gt;&gt;&gt; </span>Track<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>length<span class=\"o\">=</span>Length<span class=\"p\">(</span><span class=\"s2\">&quot;line&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>filter<span class=\"p\">(</span>length__gt<span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>并非所有的后端都支持所有的函数，所以请参考每个函数的文档，看看你的数据库后端是否支持你要使用的函数。如果你在一个不支持地理函数的后台调用该函数，你会得到一个 <code class=\"docutils literal notranslate\">NotImplementedError</code> 异常。</p>\n<p>函数的摘要：</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>测量</p></th>\n<th class=\"head\"><p>关系映射</p></th>\n<th class=\"head\"><p>操作</p></th>\n<th class=\"head\"><p>编辑器</p></th>\n<th class=\"head\"><p>输入格式：</p></th>\n<th class=\"head\"><p>输出格式</p></th>\n<th class=\"head\"><p>杂项</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\">Area</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\">Azimuth</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\">Difference</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\">ForcePolygonCW</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\">AsGeoJSON</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\">IsEmpty</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\">Distance</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\">BoundingCircle</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\">Intersection</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\">MakeValid</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\">AsGML</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\">IsValid</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\">GeometryDistance</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\">Centroid</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\">SymDifference</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\">Reverse</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\">AsKML</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\">MemSize</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\">Length</code></a></p></td>\n<td><p><a class=\"reference internal\" href=\"#django.contrib.gis.db.models.functions.ClosestPoint\" title=\"django.contrib.gis.db.models.functions.ClosestPoint\"><code class=\"xref py py-class docutils literal notranslate\">ClosestPoint</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\">Union</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\">Scale</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\">AsSVG</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\">NumGeometries</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\">Perimeter</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\">Envelope</code></a>\n<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\">LineLocatePoint</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\">PointOnSurface</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\">SnapToGrid</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\">Transform</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\">Translate</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\">FromWKB</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\">FromWKT</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\">AsWKB</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\">AsWKT</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\">GeoHash</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\">NumPoints</code></a></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<section id=\"area\">\n<h2><code class=\"docutils literal notranslate\">Area</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\">class</span> </em><span class=\"sig-name descname\">Area</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-polygon-property-functions.html#function_st-area\">MySQL</a>, Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Area.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并将字段的面积作为一个 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/measure/#django.contrib.gis.measure.Area\" title=\"django.contrib.gis.measure.Area\"><code class=\"xref py py-class docutils literal notranslate\">Area</code></a> 测量返回。</p>\n<p>在没有 LWGEOM/RTTOPO 支持的情况下，MySQL 和 SpatiaLite 不支持对地理 SRS（空间参考系统）进行面积计算。</p>\n</section>\n<section id=\"asgeojson\">\n<h2><code class=\"docutils literal notranslate\">AsGeoJSON</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\">class</span> </em><span class=\"sig-name descname\">AsGeoJSON</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">bbox<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">crs<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">precision<span class=\"o\">=</span><span class=\"default_value\">8</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-geojson-functions.html#function_st-asgeojson\">MySQL</a>, Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsGeoJSON.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <a class=\"reference external\" href=\"https://geojson.org/\">GeoJSON</a> 表示。请注意，结果不是完整的 GeoJSON 结构，而只是 GeoJSON 结构中 <code class=\"docutils literal notranslate\">geometry</code> 键的内容。另请参阅 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/serializers/\"><span class=\"doc\">GeoJSON 序列化器</span></a>。</p>\n<p>例如：</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>City<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>json<span class=\"o\">=</span>AsGeoJSON<span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Chicago&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>json\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>关键字参数</p></th>\n<th class=\"head\"><p>描述</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\">bbox</code></p></td>\n<td><p>如果希望包含返回的 GeoJSON 中的边界框，请将其设置为 <code class=\"docutils literal notranslate\">True</code>。在 Oracle 中会被忽略。</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\">crs</code></p></td>\n<td><p>如果希望在返回的 GeoJSON 中包含坐标参考系统，请将其设置为 <code class=\"docutils literal notranslate\">True</code>。在 MySQL 和 Oracle 中会被忽略。</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\">precision</code></p></td>\n<td><p>可以用来指定 GeoJSON 表示中坐标的有效数字位数，其默认值为 8。在 Oracle 中会被忽略。</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"asgml\">\n<h2><code class=\"docutils literal notranslate\">AsGML</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\">class</span> </em><span class=\"sig-name descname\">AsGML</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">version<span class=\"o\">=</span><span class=\"default_value\">2</span></em>, <em class=\"sig-param\">precision<span class=\"o\">=</span><span class=\"default_value\">8</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsGML.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Geography_Markup_Language\">Geographic Markup Language (GML)</a> 表示。</p>\n<p>例如：</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>qs <span class=\"o\">=</span> Zipcode<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>gml<span class=\"o\">=</span>AsGML<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>qs<span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span>gml<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>关键字参数</p></th>\n<th class=\"head\"><p>描述</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\">precision</code></p></td>\n<td><p>指定在 GML 表示中坐标的有效数字位数，默认值为 8。在 Oracle 中会被忽略。</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\">version</code></p></td>\n<td><p>指定要使用的 GML 版本：2（默认）或 3。</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"askml\">\n<h2><code class=\"docutils literal notranslate\">AsKML</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\">class</span> </em><span class=\"sig-name descname\">AsKML</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">precision<span class=\"o\">=</span><span class=\"default_value\">8</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：<a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsKML.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <a class=\"reference external\" href=\"https://developers.google.com/kml/documentation/\">Keyhole Markup Language (KML)</a> 表示。</p>\n<p>例如：</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>qs <span class=\"o\">=</span> Zipcode<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>kml<span class=\"o\">=</span>AsKML<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>qs<span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span>kml<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>关键字参数</p></th>\n<th class=\"head\"><p>描述</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\">precision</code></p></td>\n<td><p>可以使用此关键字来指定 KML 表示中坐标的有效数字位数，其默认值为 8。</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"assvg\">\n<h2><code class=\"docutils literal notranslate\">AsSVG</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\">class</span> </em><span class=\"sig-name descname\">AsSVG</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">relative<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">precision<span class=\"o\">=</span><span class=\"default_value\">8</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：<a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsSVG.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <a class=\"reference external\" href=\"https://www.w3.org/Graphics/SVG/\">Scalable Vector Graphics (SVG)</a> 表示。</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>关键字参数</p></th>\n<th class=\"head\"><p>描述</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\">relative</code></p></td>\n<td><p>如果设置为 <code class=\"docutils literal notranslate\">True</code>，路径数据将以相对移动的方式实现。默认为 <code class=\"docutils literal notranslate\">False</code>，表示使用绝对移动。</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\">precision</code></p></td>\n<td><p>可以使用此关键字来指定 SVG 表示中坐标的有效数字位数，其默认值为 8。</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"aswkb\">\n<h2><code class=\"docutils literal notranslate\">AsWKB</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\">class</span> </em><span class=\"sig-name descname\">AsWKB</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-format-conversion-functions.html#function_st-asbinary\">MySQL</a>, Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsBinary.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\">Well-known binary (WKB)</a> 表示。</p>\n<p>例如：</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>City<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>wkb<span class=\"o\">=</span>AsWKB<span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Chelyabinsk&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>wkb<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\">AsWKT</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\">class</span> </em><span class=\"sig-name descname\">AsWKT</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-format-conversion-functions.html#function_st-astext\">MySQL</a>, Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_AsText.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry\">Well-known text (WKT)</a> 表示。</p>\n<p>例如：</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>City<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>wkt<span class=\"o\">=</span>AsWKT<span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Chelyabinsk&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>wkt\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\">Azimuth</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\">class</span> </em><span class=\"sig-name descname\">Azimuth</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">point_a</em>, <em class=\"sig-param\">point_b</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：<a class=\"reference external\" href=\"https://postgis.net/docs/ST_Azimuth.html\">PostGIS</a>, SpatiaLite (LWGEOM/RTTOPO)</p>\n<p>返回由给定点几何形状定义的线段的方位角（以弧度表示），如果两个点重合，则返回 <code class=\"docutils literal notranslate\">None</code>。方位角是以北方为参考的角度，顺时针方向为正：north = <code class=\"docutils literal notranslate\">0</code>; east = <code class=\"docutils literal notranslate\">π/2</code>; south = <code class=\"docutils literal notranslate\">π</code>; west = <code class=\"docutils literal notranslate\">3π/2</code>。</p>\n</section>\n<section id=\"boundingcircle\">\n<h2><code class=\"docutils literal notranslate\">BoundingCircle</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\">class</span> </em><span class=\"sig-name descname\">BoundingCircle</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">num_seg<span class=\"o\">=</span><span class=\"default_value\">48</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：<a class=\"reference external\" href=\"https://postgis.net/docs/ST_MinimumBoundingCircle.html\">PostGIS</a>、<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>、SpatiaLite 5.1+</p>\n<p>接受单个地理字段或表达式，并返回可以完全包含几何形状的最小圆形多边形。</p>\n<p><code class=\"docutils literal notranslate\">num_seg</code> 参数仅在 PostGIS 中使用。</p>\n<aside class=\"version-note version-changed\" data-version=\"5.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 5.1</p><p>增加了对 SpatiaLite 5.1+ 的支持。</p>\n</aside>\n</section>\n<section id=\"centroid\">\n<h2><code class=\"docutils literal notranslate\">Centroid</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\">class</span> </em><span class=\"sig-name descname\">Centroid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>：MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-polygon-property-functions.html#function_st-centroid\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Centroid.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <code class=\"docutils literal notranslate\">centroid</code> 值。</p>\n</section>\n<section id=\"closestpoint\">\n<h2><code class=\"docutils literal notranslate\">ClosestPoint</code><a class=\"heading-anchor\" href=\"#closestpoint\"><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=\"5.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 5.0</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.functions.ClosestPoint\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ClosestPoint</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr1</em>, <em class=\"sig-param\">expr2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.functions.ClosestPoint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_ClosestPoint.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受两个地理字段或表达式，并返回在几何体 A 上最接近几何体 B 的二维点。</p>\n</section>\n<section id=\"difference\">\n<h2><code class=\"docutils literal notranslate\">Difference</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\">class</span> </em><span class=\"sig-name descname\">Difference</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr1</em>, <em class=\"sig-param\">expr2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-difference\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Difference.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受两个地理字段或表达式，并返回几何差异，即几何 A 中与几何 B 不相交的部分。</p>\n</section>\n<section id=\"distance\">\n<h2><code class=\"docutils literal notranslate\">Distance</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\">class</span> </em><span class=\"sig-name descname\">Distance</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr1</em>, <em class=\"sig-param\">expr2</em>, <em class=\"sig-param\">spheroid<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</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>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Distance.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受两个地理字段或表达式，并返回它们之间的距离，作为一个 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\">Distance</code></a> 对象。在 MySQL 上，当坐标是大地测量时，会返回原始的浮点值。</p>\n<p>在支持大地测量坐标距离计算的后端上，根据几何形状的 SRID 值，会自动选择合适的后端函数（例如，在 PostGIS 上使用 <a class=\"reference external\" href=\"https://postgis.net/docs/ST_DistanceSphere.html\">ST_DistanceSphere</a>）。</p>\n<p>当使用大地测量（角度）坐标计算距离时，例如默认的 WGS84 (4326) SRID，您可以设置 <code class=\"docutils literal notranslate\">spheroid</code> 关键字参数来决定计算是基于简单球体（精度较低，资源消耗较少）还是基于椭球体（精度较高，资源消耗较多）。</p>\n<p>在以下示例中，计算了从霍巴特市到 <code class=\"docutils literal notranslate\">AustraliaCity</code> 查询集中的每个其他 <a class=\"reference internal\" href=\"/zh-hans/5.1/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\">PointField</code></a> 的距离：</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=\"nn\">django.contrib.gis.db.models.functions</span> <span class=\"kn\">import</span> Distance\n<span class=\"gp\">&gt;&gt;&gt; </span>pnt <span class=\"o\">=</span> AustraliaCity<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Hobart&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>point\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> city <span class=\"ow\">in</span> AustraliaCity<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>distance<span class=\"o\">=</span>Distance<span class=\"p\">(</span><span class=\"s2\">&quot;point&quot;</span><span class=\"p\">,</span> pnt<span class=\"p\">)):</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span>city<span class=\"o\">.</span>name<span class=\"p\">,</span> city<span class=\"o\">.</span>distance<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>因为 <code class=\"docutils literal notranslate\">distance</code> 属性是一个 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\">Distance</code></a> 对象，您可以轻松地以您选择的单位表示该值。例如，<code class=\"docutils literal notranslate\">city.distance.mi</code> 表示英里中的距离值，<code class=\"docutils literal notranslate\">city.distance.km</code> 表示千米中的距离值。有关用法详细信息和支持的单位列表，请参阅 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/measure/\"><span class=\"doc\">测量对象</span></a>。</p>\n</aside>\n</section>\n<section id=\"envelope\">\n<h2><code class=\"docutils literal notranslate\">Envelope</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\">class</span> </em><span class=\"sig-name descname\">Envelope</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-general-property-functions.html#function_st-envelope\">MySQL</a>, <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>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Envelope.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回表示几何形状的边界框的几何形状。</p>\n</section>\n<section id=\"forcepolygoncw\">\n<h2><code class=\"docutils literal notranslate\">ForcePolygonCW</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\">class</span> </em><span class=\"sig-name descname\">ForcePolygonCW</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_ForcePolygonCW.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回多边形/多多边形的修改版本，其中所有外部环都按顺时针方向排列，所有内部环都按逆时针方向排列。非多边形几何形状保持不变。</p>\n</section>\n<section id=\"fromwkb\">\n<h2><code class=\"docutils literal notranslate\">FromWKB</code><a class=\"heading-anchor\" href=\"#fromwkb\"><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.FromWKB\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">FromWKB</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">srid<span class=\"o\">=</span><span class=\"default_value\">0</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-wkb-functions.html#function_st-geomfromwkb\">MySQL</a>, Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_GeomFromWKB.html\">PostGIS</a>, SpatiaLite</p>\n<p>从 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\">Well-known binary (WKB)</a> 表示创建几何。可选的 <code class=\"docutils literal notranslate\">srid</code> 参数允许指定结果几何的 SRID。在 Oracle 上忽略 <code class=\"docutils literal notranslate\">srid</code>。</p>\n<aside class=\"version-note version-changed\" data-version=\"5.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 5.1</p><p>增加了 <code class=\"docutils literal notranslate\">srid</code> 参数。</p>\n</aside>\n</section>\n<section id=\"fromwkt\">\n<h2><code class=\"docutils literal notranslate\">FromWKT</code><a class=\"heading-anchor\" href=\"#fromwkt\"><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.FromWKT\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">FromWKT</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">srid<span class=\"o\">=</span><span class=\"default_value\">0</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-wkt-functions.html#function_st-geomfromtext\">MySQL</a>, Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_GeomFromText.html\">PostGIS</a>, SpatiaLite</p>\n<p>从 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry\">Well-known text (WKT)</a> 表示创建几何。可选的 <code class=\"docutils literal notranslate\">srid</code> 参数允许指定结果几何的 SRID。在 Oracle 上忽略 <code class=\"docutils literal notranslate\">srid</code>。</p>\n<aside class=\"version-note version-changed\" data-version=\"5.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 5.1</p><p>增加了 <code class=\"docutils literal notranslate\">srid</code> 参数。</p>\n</aside>\n</section>\n<section id=\"geohash\">\n<h2><code class=\"docutils literal notranslate\">GeoHash</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\">class</span> </em><span class=\"sig-name descname\">GeoHash</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">precision<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-geohash-functions.html#function_st-geohash\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_GeoHash.html\">PostGIS</a>, SpatiaLite (LWGEOM/RTTOPO)</p>\n<p>接受单个地理字段或表达式，并返回几何形状的 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Geohash\">GeoHash</a> 表示。</p>\n<p><code class=\"docutils literal notranslate\">precision</code> 关键字参数控制结果中的字符数。</p>\n</section>\n<section id=\"geometrydistance\">\n<h2><code class=\"docutils literal notranslate\">GeometryDistance</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\">class</span> </em><span class=\"sig-name descname\">GeometryDistance</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr1</em>, <em class=\"sig-param\">expr2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/geometry_distance_knn.html\">PostGIS</a></p>\n<p>接受两个地理字段或表达式，并返回它们之间的距离。当在 <a class=\"reference internal\" href=\"/zh-hans/5.1/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\">order_by()</code></a> 子句中使用时，它提供了辅助索引的最近邻结果集。</p>\n</section>\n<section id=\"intersection\">\n<h2><code class=\"docutils literal notranslate\">Intersection</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\">class</span> </em><span class=\"sig-name descname\">Intersection</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr1</em>, <em class=\"sig-param\">expr2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-intersection\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Intersection.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受两个地理字段或表达式，并返回它们之间的几何交集。</p>\n</section>\n<section id=\"isempty\">\n<h2><code class=\"docutils literal notranslate\">IsEmpty</code><a class=\"heading-anchor\" href=\"#isempty\"><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.IsEmpty\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">IsEmpty</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_IsEmpty.html\">PostGIS</a></p>\n<p>接受地理字段或表达式，并测试其值是否为空几何形状。如果其值为空，则返回 <code class=\"docutils literal notranslate\">True</code>，否则返回 <code class=\"docutils literal notranslate\">False</code>。</p>\n</section>\n<section id=\"isvalid\">\n<h2><code class=\"docutils literal notranslate\">IsValid</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\">class</span> </em><span class=\"sig-name descname\">IsValid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr</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>可用性</em>: <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-convenience-functions.html#function_st-isvalid\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_IsValid.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受地理字段或表达式，并测试其值是否格式正确。如果其值是有效的几何形状，则返回 <code class=\"docutils literal notranslate\">True</code>，否则返回 <code class=\"docutils literal notranslate\">False</code>。</p>\n</section>\n<section id=\"length\">\n<h2><code class=\"docutils literal notranslate\">Length</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\">class</span> </em><span class=\"sig-name descname\">Length</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">spheroid<span class=\"o\">=</span><span class=\"default_value\">True</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-linestring-property-functions.html#function_st-length\">MySQL</a>, Oracle, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Length.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理线串或多线串字段或表达式，并将其长度返回为 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\">Distance</code></a> 测量。</p>\n<p>在 PostGIS 和 SpatiaLite 上，当坐标是大地测量（角度）时，您可以使用 <code class=\"docutils literal notranslate\">spheroid</code> 关键字参数来指定计算是基于简单球体（精度较低，资源消耗较少）还是基于椭球体（精度较高，资源消耗较多）。</p>\n<p>MySQL 不支持在地理 SRS 上进行长度计算。</p>\n</section>\n<section id=\"linelocatepoint\">\n<h2><code class=\"docutils literal notranslate\">LineLocatePoint</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\">class</span> </em><span class=\"sig-name descname\">LineLocatePoint</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">linestring</em>, <em class=\"sig-param\">point</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_LineLocatePoint.html\">PostGIS</a>, SpatiaLite</p>\n<p>返回一个介于 0 和 1 之间的浮点数，表示最接近给定的 <code class=\"docutils literal notranslate\">point</code> 在 <code class=\"docutils literal notranslate\">linestring</code> 上的位置，作为 2D 线长度的一部分。</p>\n</section>\n<section id=\"makevalid\">\n<h2><code class=\"docutils literal notranslate\">MakeValid</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\">class</span> </em><span class=\"sig-name descname\">MakeValid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_MakeValid.html\">PostGIS</a>, SpatiaLite (LWGEOM/RTTOPO)</p>\n<p>接受地理字段或表达式，并尝试将值转换为有效的几何形状，同时不丢失任何输入顶点。已经有效的几何形状将保持不变。简单多边形可能会变成多重多边形，结果的维度可能比输入低。</p>\n</section>\n<section id=\"memsize\">\n<h2><code class=\"docutils literal notranslate\">MemSize</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\">class</span> </em><span class=\"sig-name descname\">MemSize</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_MemSize.html\">PostGIS</a></p>\n<p>接受单个地理字段或表达式，并返回几何字段占用的内存大小（字节数）。</p>\n</section>\n<section id=\"numgeometries\">\n<h2><code class=\"docutils literal notranslate\">NumGeometries</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\">class</span> </em><span class=\"sig-name descname\">NumGeometries</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-geometrycollection-property-functions.html#function_st-numgeometries\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_NumGeometries.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回如果几何字段是集合（例如 <code class=\"docutils literal notranslate\">GEOMETRYCOLLECTION</code> 或 <code class=\"docutils literal notranslate\">MULTI*</code> 字段）则包含的几何形状数量。对于单个几何形状，返回 1。</p>\n<p>在 MySQL 上，对于单个几何形状，返回 <code class=\"docutils literal notranslate\">None</code>。</p>\n</section>\n<section id=\"numpoints\">\n<h2><code class=\"docutils literal notranslate\">NumPoints</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\">class</span> </em><span class=\"sig-name descname\">NumPoints</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/gis-linestring-property-functions.html#function_st-numpoints\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_NPoints.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回几何形状中点的数量。</p>\n<p>在 MySQL 上，对于任何非 <code class=\"docutils literal notranslate\">LINESTRING</code> 几何形状，返回 <code class=\"docutils literal notranslate\">None</code>。</p>\n</section>\n<section id=\"perimeter\">\n<h2><code class=\"docutils literal notranslate\">Perimeter</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\">class</span> </em><span class=\"sig-name descname\">Perimeter</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Perimeter.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并将几何字段的周长返回为 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/measure/#django.contrib.gis.measure.Distance\" title=\"django.contrib.gis.measure.Distance\"><code class=\"xref py py-class docutils literal notranslate\">Distance</code></a> 对象。</p>\n</section>\n<section id=\"pointonsurface\">\n<h2><code class=\"docutils literal notranslate\">PointOnSurface</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\">class</span> </em><span class=\"sig-name descname\">PointOnSurface</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_PointOnSurface.html\">PostGIS</a>, MariaDB, Oracle, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回一个保证位于字段表面上的 <code class=\"docutils literal notranslate\">Point</code> 几何形状；否则返回 <code class=\"docutils literal notranslate\">None</code>。</p>\n</section>\n<section id=\"reverse\">\n<h2><code class=\"docutils literal notranslate\">Reverse</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\">class</span> </em><span class=\"sig-name descname\">Reverse</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Reverse.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回具有颠倒坐标的几何形状。</p>\n</section>\n<section id=\"scale\">\n<h2><code class=\"docutils literal notranslate\">Scale</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\">class</span> </em><span class=\"sig-name descname\">Scale</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">x</em>, <em class=\"sig-param\">y</em>, <em class=\"sig-param\">z<span class=\"o\">=</span><span class=\"default_value\">0.0</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Scale.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回通过将坐标与 <code class=\"docutils literal notranslate\">x</code>、<code class=\"docutils literal notranslate\">y</code> 和可选的 <code class=\"docutils literal notranslate\">z</code> 参数相乘来缩放坐标的几何形状。</p>\n</section>\n<section id=\"snaptogrid\">\n<h2><code class=\"docutils literal notranslate\">SnapToGrid</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\">class</span> </em><span class=\"sig-name descname\">SnapToGrid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_SnapToGrid.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回所有点都根据给定的网格进行捕捉的几何形状。如何将几何形状捕捉到网格取决于提供了多少个数字参数（可以是浮点数、整数或长整数）。</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>参数数量：</p></th>\n<th class=\"head\"><p>描述</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>1</p></td>\n<td><p>一个单独的大小，用于捕捉 X 和 Y 网格。</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>2</p></td>\n<td><p>捕捉网格的 X 和 Y 大小。</p></td>\n</tr>\n<tr class=\"row-even\"><td><p>4</p></td>\n<td><p>X、Y 大小以及相应的 X、Y 起始点。</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"symdifference\">\n<h2><code class=\"docutils literal notranslate\">SymDifference</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\">class</span> </em><span class=\"sig-name descname\">SymDifference</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr1</em>, <em class=\"sig-param\">expr2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-symdifference\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_SymDifference.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受两个地理字段或表达式，并返回给定参数之间的几何对称差异（联合而不包括交集）。</p>\n</section>\n<section id=\"transform\">\n<h2><code class=\"docutils literal notranslate\">Transform</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\">class</span> </em><span class=\"sig-name descname\">Transform</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">srid</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Transform.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受一个地理字段或表达式以及一个 SRID 整数代码，并将几何形状转换为由 <code class=\"docutils literal notranslate\">srid</code> 参数指定的空间参考系统。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>整数 SRID 对应的空间参考系统可能取决于使用的空间数据库。换句话说，用于 Oracle 的 SRID 号码不一定与用于 PostGIS 的相同。</p>\n</aside>\n</section>\n<section id=\"translate\">\n<h2><code class=\"docutils literal notranslate\">Translate</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\">class</span> </em><span class=\"sig-name descname\">Translate</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">x</em>, <em class=\"sig-param\">y</em>, <em class=\"sig-param\">z<span class=\"o\">=</span><span class=\"default_value\">0.0</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Translate.html\">PostGIS</a>, SpatiaLite</p>\n<p>接受单个地理字段或表达式，并返回其坐标根据 <code class=\"docutils literal notranslate\">x</code>、<code class=\"docutils literal notranslate\">y</code> 和可选的 <code class=\"docutils literal notranslate\">z</code> 数值参数进行偏移的几何形状。</p>\n</section>\n<section id=\"union\">\n<h2><code class=\"docutils literal notranslate\">Union</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\">class</span> </em><span class=\"sig-name descname\">Union</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expr1</em>, <em class=\"sig-param\">expr2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</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>可用性</em>: MariaDB, <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/spatial-operator-functions.html#function_st-union\">MySQL</a>, <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Union.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>接受两个地理字段或表达式，并返回两个几何形状的联合。</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":"ClosestPoint","anchor":"closestpoint","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 参考","url":"/zh-hans/5.1/ref/"},{"docname":"ref/contrib/index","title":"contrib 包","url":"/zh-hans/5.1/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/zh-hans/5.1/ref/contrib/gis/"}],"prev":{"docname":"ref/contrib/gis/geoquerysets","title":"GIS QuerySet API 参考","url":"/zh-hans/5.1/ref/contrib/gis/geoquerysets/"},"next":{"docname":"ref/contrib/gis/measure","title":"测量对象","url":"/zh-hans/5.1/ref/contrib/gis/measure/"},"formats":{"html":"/zh-hans/5.1/ref/contrib/gis/functions/","markdown":"/zh-hans/5.1/ref/contrib/gis/functions.md","json":"/zh-hans/5.1/ref/contrib/gis/functions.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/ref/contrib/gis/functions.txt","official":"https://docs.djangoproject.com/zh-hans/5.1/ref/contrib/gis/functions/","inVersions":["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"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}