{"title":"Référence des API QuerySet GIS","version":"3.0","locale":"fr","docname":"ref/contrib/gis/geoquerysets","url":"/fr/3.0/ref/contrib/gis/geoquerysets/","canonical":"https://djangodocs.dev/fr/3.0/ref/contrib/gis/geoquerysets/","summary":"Recherches spatiales Lien vers cette rubrique # Les requêtes spatiales de cette section sont disponibles à la fois pour GeometryField et RasterField . Pour une vue…","html":"<h1>Référence des API QuerySet GIS<a class=\"heading-anchor\" href=\"#gis-queryset-api-reference\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"spatial-lookups\">\n<span id=\"id1\"></span><h2>Recherches spatiales<a class=\"heading-anchor\" href=\"#spatial-lookups\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Les requêtes spatiales de cette section sont disponibles à la fois pour <a class=\"reference internal\" href=\"/fr/3.0/ref/contrib/gis/model-api/#django.contrib.gis.db.models.GeometryField\" title=\"django.contrib.gis.db.models.GeometryField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GeometryField</span></code></a> et <a class=\"reference internal\" href=\"/fr/3.0/ref/contrib/gis/model-api/#django.contrib.gis.db.models.RasterField\" title=\"django.contrib.gis.db.models.RasterField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RasterField</span></code></a>.</p>\n<p>Pour une vue générale, consultez l”<a class=\"reference internal\" href=\"/fr/3.0/ref/contrib/gis/db-api/#spatial-lookups-intro\"><span class=\"std std-ref\">introduction sur les recherches spatiales</span></a>. Pour un aperçu sur la compatibilité des diverses requêtes en fonction du moteur spatial utilisé, référez-vous au <a class=\"reference internal\" href=\"/fr/3.0/ref/contrib/gis/db-api/#spatial-lookup-compatibility\"><span class=\"std std-ref\">tableau de compatibilité des recherches spatiales</span></a>.</p>\n<section id=\"lookups-with-rasters\">\n<h3>Requêtes avec matrices<a class=\"heading-anchor\" href=\"#lookups-with-rasters\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tous les exemples dans la référence ci-dessous sont donnés pour des champs et des entrées géométriques, mais ces requêtes peuvent très bien être utilisées avec des objets matriciels des deux côtés. Chaque fois qu’une requête ne prend pas en charge les entrées matricielles, l’entrée est automatiquement convertie en objet géométrique quand c’est nécessaire en utilisant la fonction <a class=\"reference external\" href=\"https://postgis.net/docs/RT_ST_Polygon.html\">ST_Polygon</a>. Voir aussi <a class=\"reference internal\" href=\"/fr/3.0/ref/contrib/gis/db-api/#spatial-lookup-raster\"><span class=\"std std-ref\">l’introduction aux requêtes matricielles</span></a>.</p>\n<p>Les opérateurs de base de données utilisés par les requêtes peuvent être divisés en trois catégories :</p>\n<ul class=\"simple\">\n<li><p>Prise en charge matricielle native <code class=\"docutils literal notranslate\"><span class=\"pre\">N</span></code>: l’opérateur accepte nativement les objets matriciels des deux côtés de la requête et les entrées matricielles peuvent être mélangées avec des entrées géométriques.</p></li>\n<li><p>Prise en charge matricielle bilatérale <code class=\"docutils literal notranslate\"><span class=\"pre\">B</span></code>: l’opérateur ne prend en charge les objets matriciels seulement si les deux côtés de la requête reçoivent des entrées matricielles. Les données matricielles sont automatiquement converties en objets géométriques en cas de requêtes mixtes.</p></li>\n<li><p>Prise en charge par conversion géométrique <code class=\"docutils literal notranslate\"><span class=\"pre\">C</span></code>. La requête ne prend pas en charge nativement les objets matriciels, toutes les données matricielles sont automatiquement converties en objets géométriques.</p></li>\n</ul>\n<p>Les exemples ci-dessous montrent le code SQL équivalent pour les requêtes dans les différents types de prise en charge matricielle. Le même schéma s’applique pour toutes les requêtes spatiales.</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>Cas</p></th>\n<th class=\"head\"><p>Requête</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>N, B</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">rast__contains=rst</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(rast,</span> <span class=\"pre\">rst)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>N, B</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">rast__1__contains=(rst,</span> <span class=\"pre\">2)</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(rast,</span> <span class=\"pre\">1,</span> <span class=\"pre\">rst,</span> <span class=\"pre\">2)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>B, C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">rast__contains=geom</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(ST_Polygon(rast),</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>B, C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">rast__1__contains=geom</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(ST_Polygon(rast,</span> <span class=\"pre\">1),</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>B, C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">poly__contains=rst</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(poly,</span> <span class=\"pre\">ST_Polygon(rst))</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>B, C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">poly__contains=(rst,</span> <span class=\"pre\">1)</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(poly,</span> <span class=\"pre\">ST_Polygon(rst,</span> <span class=\"pre\">1))</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">rast__crosses=rst</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Crosses(ST_Polygon(rast),</span> <span class=\"pre\">ST_Polygon(rst))</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">rast__1__crosses=(rst,</span> <span class=\"pre\">2)</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Crosses(ST_Polygon(rast,</span> <span class=\"pre\">1),</span> <span class=\"pre\">ST_Polygon(rst,</span> <span class=\"pre\">2))</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">rast__crosses=geom</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Crosses(ST_Polygon(rast),</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>C</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">poly__crosses=rst</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Crosses(poly,</span> <span class=\"pre\">ST_Polygon(rst))</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>Les requêtes spatiales avec des objets matriciels ne sont prises en charge que pour le moteur PostGIS (désigné par PGRaster dans cette section).</p>\n</section>\n<section id=\"bbcontains\">\n<span id=\"std-fieldlookup-bbcontains\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">bbcontains</span></code><a class=\"heading-anchor\" href=\"#bbcontains\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Contain.html\">PostGIS</a>, MariaDB, MySQL, SpatiaLite, PGRaster (natif)</p>\n<p>Teste si le rectangle englobant du champ géométrique ou matriciel contient complètement le rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__bbcontains</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">poly</span> <span class=\"pre\">~</span> <span class=\"pre\">geom</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MBRContains(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MBRContains(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MbrContains(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"bboverlaps\">\n<span id=\"std-fieldlookup-bboverlaps\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">bboverlaps</span></code><a class=\"heading-anchor\" href=\"#bboverlaps\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/geometry_overlaps.html\">PostGIS</a>, MariaDB, MySQL, SpatiaLite, PGRaster (natif)</p>\n<p>Teste si le rectangle englobant du champ géométrique recouvre partiellement le rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__bboverlaps</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">poly</span> <span class=\"pre\">&amp;&amp;</span> <span class=\"pre\">geom</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MBROverlaps(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MBROverlaps(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MbrOverlaps(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"contained\">\n<span id=\"std-fieldlookup-contained\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">contained</span></code><a class=\"heading-anchor\" href=\"#contained\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Contained.html\">PostGIS</a>, MariaDB, MySQL, SpatiaLite, PGRaster (natif)</p>\n<p>Teste si le rectangle englobant du champ géométrique est complètement contenu dans le rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__contained</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">poly</span> <span class=\"pre\">&#64;</span> <span class=\"pre\">geom</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MBRWithin(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MBRWithin(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">MbrWithin(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"contains\">\n<span id=\"std-fieldlookup-gis-contains\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">contains</span></code><a class=\"heading-anchor\" href=\"#contains\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Contains.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (bilatéral)</p>\n<p>Teste si le champ géométrique contient spatialement l’objet géométrique de la recherche.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__contains</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_CONTAINS(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Contains(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Contains(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBRContains</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"contains-properly\">\n<span id=\"std-fieldlookup-contains_properly\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">contains_properly</span></code><a class=\"heading-anchor\" href=\"#contains-properly\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_ContainsProperly.html\">PostGIS</a>, PGRaster (bilatéral)</p>\n<p>Renvoie <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> si l’objet géométrique de la recherche a une intersection avec l’intérieur du champ géométrique, mais pas avec ses limites (ou extérieur).</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__contains_properly</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_ContainsProperly(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"coveredby\">\n<span id=\"std-fieldlookup-coveredby\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">coveredby</span></code><a class=\"heading-anchor\" href=\"#coveredby\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_CoveredBy.html\">PostGIS</a>, Oracle, PGRaster (bilatéral), SpatiaLite</p>\n<p>Teste si aucun point du champ géométrique n’est en dehors de l’objet géométrique de la recherche. <a class=\"footnote-reference brackets\" href=\"#fncovers\" id=\"id2\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>3<span class=\"fn-bracket\">]</span></a></p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__coveredby</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"version-note version-changed\" data-version=\"2.2\">\n<p class=\"version-note-title\">Changed in Django 2.2</p><p>La prise en charge de SpatiaLite a été ajoutée.</p>\n</aside>\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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_CoveredBy(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_COVEREDBY(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CoveredBy(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"covers\">\n<span id=\"std-fieldlookup-covers\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">covers</span></code><a class=\"heading-anchor\" href=\"#covers\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Covers.html\">PostGIS</a>, Oracle, PGRaster (bilatéral), SpatiaLite</p>\n<p>Teste si aucun point de l’objet géométrique de la recherche n’est en dehors du champ géométrique. <a class=\"footnote-reference brackets\" href=\"#fncovers\" id=\"id3\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>3<span class=\"fn-bracket\">]</span></a></p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__covers</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"version-note version-changed\" data-version=\"2.2\">\n<p class=\"version-note-title\">Changed in Django 2.2</p><p>La prise en charge de SpatiaLite a été ajoutée.</p>\n</aside>\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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Covers(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_COVERS(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Covers(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"crosses\">\n<span id=\"std-fieldlookup-crosses\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">crosses</span></code><a class=\"heading-anchor\" href=\"#crosses\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Crosses.html\">PostGIS</a>, MariaDB, MySQL, SpatiaLite, PGRaster (conversion)</p>\n<p>Teste si le champ géométrique se croise spatialement avec l’objet géométrique de la recherche.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__crosses</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Crosses(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Crosses(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Crosses(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Crosses(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>La prise en charge de MySQL a été ajoutée.</p>\n</aside>\n</section>\n<section id=\"disjoint\">\n<span id=\"std-fieldlookup-disjoint\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">disjoint</span></code><a class=\"heading-anchor\" href=\"#disjoint\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Disjoint.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (bilatéral)</p>\n<p>Teste si le champ géométrique est spatialement distinct de l’objet géométrique de la recherche.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__disjoint</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Disjoint(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_GEOM.RELATE(poly,</span> <span class=\"pre\">'DISJOINT',</span> <span class=\"pre\">geom,</span> <span class=\"pre\">0.05)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Disjoint(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Disjoint(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Disjoint(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBRDisjoint</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"equals\">\n<span id=\"std-fieldlookup-equals\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">equals</span></code><a class=\"heading-anchor\" href=\"#equals\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Equals.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (conversion)</p>\n<p>Teste si le champ géométrique est spatialement égal à l’objet géométrique de la recherche.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__equals</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Equals(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_EQUAL(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Equals(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Equals(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Equals(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBREquals</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"exact-same-as\">\n<span id=\"std-fieldlookup-same_as\"></span><span id=\"std-fieldlookup-exact-noindex\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">exact</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">same_as</span></code><a class=\"heading-anchor\" href=\"#exact-same-as\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Same.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (bilatéral)</p>\n<p>Teste si le champ géométrique est « égal » à l’objet géométrique donné. Avec Oracle, MySQL et Spatialite, le test se fait sur l’égalité spatiale, alors qu’avec PostGIS, le test compare l’égalité des boîtes englobantes.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">poly</span> <span class=\"pre\">~=</span> <span class=\"pre\">geom</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_EQUAL(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Equals(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Equals(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Equals(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBREquals</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"intersects\">\n<span id=\"std-fieldlookup-intersects\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">intersects</span></code><a class=\"heading-anchor\" href=\"#intersects\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em>: <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Intersects.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (bilatéral)</p>\n<p>Teste si le champ géométrique possède une intersection spatiale avec l’objet géométrique de la recherche.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__intersects</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Intersects(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_OVERLAPBDYINTERSECT(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Intersects(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Intersects(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Intersects(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBRIntersects</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"isvalid\">\n<span id=\"std-fieldlookup-isvalid\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">isvalid</span></code><a class=\"heading-anchor\" href=\"#isvalid\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : MySQL (≥ 5.7.5), <a class=\"reference external\" href=\"https://postgis.net/docs/ST_IsValid.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Teste si l’objet géométrique est valide.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__isvalid</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>MySQL, PostGIS, SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_IsValid(poly)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(poly,</span> <span class=\"pre\">0.05)</span> <span class=\"pre\">=</span> <span class=\"pre\">'TRUE'</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"overlaps\">\n<span id=\"std-fieldlookup-overlaps\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">overlaps</span></code><a class=\"heading-anchor\" href=\"#overlaps\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Overlaps.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (bilatéral)</p>\n<p>Teste si le champ géométrique chevauche l’objet géométrique de la recherche.</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Overlaps(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_OVERLAPS(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Overlaps(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Overlaps(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Overlaps(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBROverlaps</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"relate\">\n<span id=\"std-fieldlookup-relate\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">relate</span></code><a class=\"heading-anchor\" href=\"#relate\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Relate.html\">PostGIS</a>, Oracle, SpatiaLite, PGRaster (conversion)</p>\n<p>Teste si le champ géométrique possède une liaison spatiale avec l’objet géométrique de la recherche en fonction des valeurs indiquées dans le motif donné. Cette recherche nécessite un paramètre sous forme de tuple <code class=\"docutils literal notranslate\"><span class=\"pre\">(géom,</span> <span class=\"pre\">motif)</span></code>; la forme de <code class=\"docutils literal notranslate\"><span class=\"pre\">motif</span></code> dépend du moteur spatial :</p>\n<section id=\"postgis-spatialite\">\n<h4>PostGIS et SpatiaLite<a class=\"heading-anchor\" href=\"#postgis-spatialite\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Pour ces moteurs spatiaux, le motif d’intersection est une chaîne de neuf caractères qui définissent les intersections entre l’intérieur, les limites et l’extérieur du champ géométrique et de l’objet géométrique de la recherche. La matrice d’intersection ne peut utiliser que les caractères suivants : <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">2</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">T</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">F</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">*</span></code>. Ce type de recherche permet d’affiner une relation géométrique spécifique en cohérence avec le modèle DE-9IM. <a class=\"footnote-reference brackets\" href=\"#fnde9im\" id=\"id4\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>1<span class=\"fn-bracket\">]</span></a></p>\n<p>Exemple géométrique :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"c1\"># A tuple lookup parameter is used to specify the geometry and</span>\n<span class=\"c1\"># the intersection pattern (the pattern here is for &#39;contains&#39;).</span>\n<span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__relate</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"p\">,</span> <span class=\"s1\">&#39;T*T***FF*&#39;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Équivalent SQL PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">ST_Relate</span><span class=\"p\">(</span><span class=\"n\">poly</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"n\">geom</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"s1\">&#39;T*T***FF*&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent SQL SpatiaLite :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">Relate</span><span class=\"p\">(</span><span class=\"n\">poly</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"n\">geom</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"s1\">&#39;T*T***FF*&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Exemple matriciel :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__relate</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">rast</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s1\">&#39;T*T***FF*&#39;</span><span class=\"p\">))</span>\n<span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">rast__2__relate</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">rast</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s1\">&#39;T*T***FF*&#39;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Équivalent SQL PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">ST_Relate</span><span class=\"p\">(</span><span class=\"n\">poly</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"n\">ST_Polygon</span><span class=\"p\">(</span><span class=\"n\">rast</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">),</span><span class=\"w\"> </span><span class=\"s1\">&#39;T*T***FF*&#39;</span><span class=\"p\">)</span>\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">ST_Relate</span><span class=\"p\">(</span><span class=\"n\">ST_Polygon</span><span class=\"p\">(</span><span class=\"n\">rast</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"mi\">2</span><span class=\"p\">),</span><span class=\"w\"> </span><span class=\"n\">ST_Polygon</span><span class=\"p\">(</span><span class=\"n\">rast</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">),</span><span class=\"w\"> </span><span class=\"s1\">&#39;T*T***FF*&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"oracle\">\n<h4>Oracle<a class=\"heading-anchor\" href=\"#oracle\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Ici, le motif de relation comprend au moins une des neuf chaînes de relation possibles : <code class=\"docutils literal notranslate\"><span class=\"pre\">TOUCH</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">OVERLAPBDYDISJOINT</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">OVERLAPBDYINTERSECT</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">EQUAL</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">INSIDE</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">COVEREDBY</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">CONTAINS</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">COVERS</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ON</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">ANYINTERACT</span></code>. Plusieurs chaînes peuvent être combinées par l’opérateur logique booléen OR, par exemple <code class=\"docutils literal notranslate\"><span class=\"pre\">'inside+touch'</span></code>. <a class=\"footnote-reference brackets\" href=\"#fnsdorelate\" id=\"id5\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>2<span class=\"fn-bracket\">]</span></a> Les chaînes de relation sont insensibles à la casse.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__relate</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"p\">,</span> <span class=\"s1\">&#39;anyinteract&#39;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Équivalent SQL Oracle :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">SDO_RELATE</span><span class=\"p\">(</span><span class=\"n\">poly</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"n\">geom</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"s1\">&#39;anyinteract&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"touches\">\n<span id=\"std-fieldlookup-touches\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">touches</span></code><a class=\"heading-anchor\" href=\"#touches\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Touches.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite</p>\n<p>Teste si le champ géométrique touche spatialement l’objet géométrique de la recherche.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__touches</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Touches(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Touches(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Touches(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_TOUCH(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Touches(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBRTouches</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"within\">\n<span id=\"std-fieldlookup-within\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">within</span></code><a class=\"heading-anchor\" href=\"#within\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Within.html\">PostGIS</a>, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (bilatéral)</p>\n<p>Teste si le champ géométrique est spatialement à l’intérieur de l’objet géométrique de la recherche.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__within</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Within(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Within(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Within(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_INSIDE(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Within(poly,</span> <span class=\"pre\">geom)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Dans les versions précédentes, MySQL utilisait <code class=\"docutils literal notranslate\"><span class=\"pre\">MBRWithin</span></code> et n’opérait que sur les boîtes englobantes.</p>\n</aside>\n</section>\n<section id=\"left\">\n<span id=\"std-fieldlookup-left\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">left</span></code><a class=\"heading-anchor\" href=\"#left\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Left.html\">PostGIS</a>, PGRaster (conversion)</p>\n<p>Teste si le rectangle englobant du champ géométrique est strictement à gauche du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__left</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">&lt;&lt;</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n<section id=\"right\">\n<span id=\"std-fieldlookup-right\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">right</span></code><a class=\"heading-anchor\" href=\"#right\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Right.html\">PostGIS</a>, PGRaster (conversion)</p>\n<p>Teste si le rectangle englobant du champ géométrique est strictement à droite du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__right</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">&gt;&gt;</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n<section id=\"overlaps-left\">\n<span id=\"std-fieldlookup-overlaps_left\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">overlaps_left</span></code><a class=\"heading-anchor\" href=\"#overlaps-left\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Overleft.html\">PostGIS</a>, PGRaster (bilatéral)</p>\n<p>Teste si le rectangle englobant du champ géométrique recouvre ou est à gauche du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__overlaps_left</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">&amp;&lt;</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n<section id=\"overlaps-right\">\n<span id=\"std-fieldlookup-overlaps_right\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">overlaps_right</span></code><a class=\"heading-anchor\" href=\"#overlaps-right\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Overright.html\">PostGIS</a>, PGRaster (bilatéral)</p>\n<p>Teste si le rectangle englobant du champ géométrique recouvre ou est à droite du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__overlaps_right</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">&amp;&gt;</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n<section id=\"overlaps-above\">\n<span id=\"std-fieldlookup-overlaps_above\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">overlaps_above</span></code><a class=\"heading-anchor\" href=\"#overlaps-above\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Overabove.html\">PostGIS</a>, PGRaster (conversion)</p>\n<p>Teste si le rectangle englobant du champ géométrique recouvre ou est au-dessus du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__overlaps_above</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">|&amp;&gt;</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n<section id=\"overlaps-below\">\n<span id=\"std-fieldlookup-overlaps_below\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">overlaps_below</span></code><a class=\"heading-anchor\" href=\"#overlaps-below\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Overbelow.html\">PostGIS</a>, PGRaster (conversion)</p>\n<p>Teste si le rectangle englobant du champ géométrique recouvre ou est au-dessous du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__overlaps_below</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">&amp;&lt;|</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n<section id=\"strictly-above\">\n<span id=\"std-fieldlookup-strictly_above\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">strictly_above</span></code><a class=\"heading-anchor\" href=\"#strictly-above\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Above.html\">PostGIS</a>, PGRaster (conversion)</p>\n<p>Teste si le rectangle englobant du champ géométrique est strictement au-dessus du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__strictly_above</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">|&gt;&gt;</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n<section id=\"strictly-below\">\n<span id=\"std-fieldlookup-strictly_below\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">strictly_below</span></code><a class=\"heading-anchor\" href=\"#strictly-below\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Geometry_Below.html\">PostGIS</a>, PGRaster (conversion)</p>\n<p>Teste si le rectangle englobant du champ géométrique est strictement au-dessous du rectangle englobant de la recherche géométrique.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__strictly_below</span><span class=\"o\">=</span><span class=\"n\">geom</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Équivalent PostGIS :</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">poly</span><span class=\"w\"> </span><span class=\"o\">&lt;&lt;|</span><span class=\"w\"> </span><span class=\"n\">geom</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"distance-lookups\">\n<span id=\"id6\"></span><h2>Recherches de distance<a class=\"heading-anchor\" href=\"#distance-lookups\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><em>Disponibilité</em> : PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (natif)</p>\n<p>Pour un aperçu sur la construction de requêtes de distance, référez-vous à l”<a class=\"reference internal\" href=\"/fr/3.0/ref/contrib/gis/db-api/#distance-queries\"><span class=\"std std-ref\">introduction sur les requêtes de distance</span></a>.</p>\n<p>Les requêtes de distance se font sous la forme suivante :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"o\">&lt;</span><span class=\"n\">field</span><span class=\"o\">&gt;</span><span class=\"n\">__</span><span class=\"o\">&lt;</span><span class=\"n\">distance</span> <span class=\"n\">lookup</span><span class=\"o\">&gt;=</span><span class=\"p\">(</span><span class=\"o\">&lt;</span><span class=\"n\">geometry</span><span class=\"o\">/</span><span class=\"n\">raster</span><span class=\"o\">&gt;</span><span class=\"p\">,</span> <span class=\"o\">&lt;</span><span class=\"n\">distance</span> <span class=\"n\">value</span><span class=\"o\">&gt;</span><span class=\"p\">[,</span> <span class=\"s1\">&#39;spheroid&#39;</span><span class=\"p\">])</span>\n<span class=\"o\">&lt;</span><span class=\"n\">field</span><span class=\"o\">&gt;</span><span class=\"n\">__</span><span class=\"o\">&lt;</span><span class=\"n\">distance</span> <span class=\"n\">lookup</span><span class=\"o\">&gt;=</span><span class=\"p\">(</span><span class=\"o\">&lt;</span><span class=\"n\">raster</span><span class=\"o\">&gt;</span><span class=\"p\">,</span> <span class=\"o\">&lt;</span><span class=\"n\">band_index</span><span class=\"o\">&gt;</span><span class=\"p\">,</span> <span class=\"o\">&lt;</span><span class=\"n\">distance</span> <span class=\"n\">value</span><span class=\"o\">&gt;</span><span class=\"p\">[,</span> <span class=\"s1\">&#39;spheroid&#39;</span><span class=\"p\">])</span>\n<span class=\"o\">&lt;</span><span class=\"n\">field</span><span class=\"o\">&gt;</span><span class=\"n\">__</span><span class=\"o\">&lt;</span><span class=\"n\">band_index</span><span class=\"o\">&gt;</span><span class=\"n\">__</span><span class=\"o\">&lt;</span><span class=\"n\">distance</span> <span class=\"n\">lookup</span><span class=\"o\">&gt;=</span><span class=\"p\">(</span><span class=\"o\">&lt;</span><span class=\"n\">raster</span><span class=\"o\">&gt;</span><span class=\"p\">,</span> <span class=\"o\">&lt;</span><span class=\"n\">band_index</span><span class=\"o\">&gt;</span><span class=\"p\">,</span> <span class=\"o\">&lt;</span><span class=\"n\">distance</span> <span class=\"n\">value</span><span class=\"o\">&gt;</span><span class=\"p\">[,</span> <span class=\"s1\">&#39;spheroid&#39;</span><span class=\"p\">])</span>\n</code></pre></div>\n<p>La valeur transmise à une requête de distance est un tuple ; les deux premières valeurs sont obligatoires et représentent respectivement l’objet géométrique vers lequel la distance doit être calculée et la valeur de distance (soit un nombre dans l’unité du champ, un objet <a class=\"reference internal\" href=\"/fr/3.0/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> ou une <a class=\"reference internal\" href=\"/fr/3.0/ref/models/expressions/\"><span class=\"doc\">expression de requête</span></a>). Pour transmettre un indice de bande à la requête, utilisez un tuple à 3 éléments où le deuxième est l’indice de bande.</p>\n<p>Pour toutes les recherches de distance à l’exception de <a class=\"reference internal\" href=\"#std-fieldlookup-dwithin\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">dwithin</span></code></a>, une valeur facultative, <code class=\"docutils literal notranslate\"><span class=\"pre\">'spheroid'</span></code>, peut être ajoutée pour utiliser les fonctions de calcul de distance sphéroïde pour les champs ayant un système de coordonnées géodétique.</p>\n<p>Avec PostgreSQL, l’option <code class=\"docutils literal notranslate\"><span class=\"pre\">'spheroid'</span></code> utilise <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Distance_Spheroid.html\">ST_DistanceSpheroid</a> au lieu de <a class=\"reference external\" href=\"https://postgis.net/docs/ST_DistanceSphere.html\">ST_DistanceSphere</a>. La fonction plus simple <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Distance.html\">ST_Distance</a> est utilisée avec les systèmes de coordonnées projetées. Les matrices sont converties en géométries pour les requêtes basées sur la sphéroïde.</p>\n<section id=\"distance-gt\">\n<span id=\"std-fieldlookup-distance_gt\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">distance_gt</span></code><a class=\"heading-anchor\" href=\"#distance-gt\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Renvoie les objets pour lesquels la distance entre le champ géométrique et l’objet géométrique de recherche est plus grande que la valeur de distance donnée.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__distance_gt</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"p\">,</span> <span class=\"n\">D</span><span class=\"p\">(</span><span class=\"n\">m</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)))</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance/ST_Distance_Sphere(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_GEOM.SDO_DISTANCE(poly,</span> <span class=\"pre\">geom,</span> <span class=\"pre\">0.05)</span> <span class=\"pre\">&gt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"distance-gte\">\n<span id=\"std-fieldlookup-distance_gte\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">distance_gte</span></code><a class=\"heading-anchor\" href=\"#distance-gte\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Renvoie les objets pour lesquels la distance entre le champ géométrique et l’objet géométrique de recherche est plus grande ou égale à la valeur de distance donnée.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__distance_gte</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"p\">,</span> <span class=\"n\">D</span><span class=\"p\">(</span><span class=\"n\">m</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)))</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance/ST_Distance_Sphere(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_GEOM.SDO_DISTANCE(poly,</span> <span class=\"pre\">geom,</span> <span class=\"pre\">0.05)</span> <span class=\"pre\">&gt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&gt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"distance-lt\">\n<span id=\"std-fieldlookup-distance_lt\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">distance_lt</span></code><a class=\"heading-anchor\" href=\"#distance-lt\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Renvoie les objets pour lesquels la distance entre le champ géométrique et l’objet géométrique de recherche est plus petite que la valeur de distance donnée.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__distance_lt</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"p\">,</span> <span class=\"n\">D</span><span class=\"p\">(</span><span class=\"n\">m</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)))</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance/ST_Distance_Sphere(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_GEOM.SDO_DISTANCE(poly,</span> <span class=\"pre\">geom,</span> <span class=\"pre\">0.05)</span> <span class=\"pre\">&lt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"distance-lte\">\n<span id=\"std-fieldlookup-distance_lte\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">distance_lte</span></code><a class=\"heading-anchor\" href=\"#distance-lte\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Renvoie les objets pour lesquels la distance entre le champ géométrique et l’objet géométrique de recherche est plus petite ou égale à la valeur de distance donnée.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__distance_lte</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"p\">,</span> <span class=\"n\">D</span><span class=\"p\">(</span><span class=\"n\">m</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)))</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance/ST_Distance_Sphere(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>MariaDB</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>MySQL</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_GEOM.SDO_DISTANCE(poly,</span> <span class=\"pre\">geom,</span> <span class=\"pre\">0.05)</span> <span class=\"pre\">&lt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Distance(poly,</span> <span class=\"pre\">geom)</span> <span class=\"pre\">&lt;=</span> <span class=\"pre\">5</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"dwithin\">\n<span id=\"std-fieldlookup-dwithin\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">dwithin</span></code><a class=\"heading-anchor\" href=\"#dwithin\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Renvoie les objets pour lesquels la distance entre le champ géométrique et l’objet géométrique de recherche ne dépasse pas la valeur de distance donnée. Notez que vous ne pouvez fournir des objets <a class=\"reference internal\" href=\"/fr/3.0/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> que si les objets géométriques concernés sont dans un système de coordonnées projeté. Pour des objets géométriques de type géographique, il faut utiliser l’unité du champ géométrique (par exemple des degrés pour <code class=\"docutils literal notranslate\"><span class=\"pre\">WGS84</span></code>).</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__dwithin</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"p\">,</span> <span class=\"n\">D</span><span class=\"p\">(</span><span class=\"n\">m</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)))</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>Moteur</p></th>\n<th class=\"head\"><p>Équivalent SQL</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>PostGIS</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ST_DWithin(poly,</span> <span class=\"pre\">geom,</span> <span class=\"pre\">5)</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Oracle</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SDO_WITHIN_DISTANCE(poly,</span> <span class=\"pre\">geom,</span> <span class=\"pre\">5)</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>SpatiaLite</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">PtDistWithin(poly,</span> <span class=\"pre\">geom,</span> <span class=\"pre\">5)</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"aggregate-functions\">\n<h3>Fonctions d’agrégation<a class=\"heading-anchor\" href=\"#aggregate-functions\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django fournit quelques fonctions d’agrégation spécifiques aux données géographiques. Pour plus de détails sur l’usage de ces fonctions, consultez le <a class=\"reference internal\" href=\"/fr/3.0/topics/db/aggregation/\"><span class=\"doc\">guide thématique sur l’agrégation</span></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>Paramètre nommé</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\">tolerance</span></code></p></td>\n<td><p>Ce paramètre n’est valable que pour Oracle. Il s’agit de la valeur de tolérance utilisée par la procédure <code class=\"docutils literal notranslate\"><span class=\"pre\">SDOAGGRTYPE</span></code>; la <a class=\"reference external\" href=\"https://docs.oracle.com/en/database/oracle/oracle-database/18/spatl/spatial-concepts.html#GUID-CE10AB14-D5EA-43BA-A647-DAC9EEF41EE6\">documentation Oracle</a> contient plus de détails.</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code 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</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Extent</span><span class=\"p\">,</span> <span class=\"n\">Union</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">WorldBorder</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">aggregate</span><span class=\"p\">(</span><span class=\"n\">Extent</span><span class=\"p\">(</span><span class=\"s1\">&#39;mpoly&#39;</span><span class=\"p\">),</span> <span class=\"n\">Union</span><span class=\"p\">(</span><span class=\"s1\">&#39;mpoly&#39;</span><span class=\"p\">))</span>\n</code></pre></div>\n<section id=\"collect\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Collect</span></code><a class=\"heading-anchor\" href=\"#collect\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.Collect\">\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\">Collect</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">geo_field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.Collect\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Collect.html\">PostGIS</a>, SpatiaLite</p>\n<p>Renvoie un objet géométrique <code class=\"docutils literal notranslate\"><span class=\"pre\">GEOMETRYCOLLECTION</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">MULTI</span></code> à partir de la colonne géométrique. C’est un peu comme une version simplifiée de l’agrégation <a class=\"reference internal\" href=\"#django.contrib.gis.db.models.Union\" title=\"django.contrib.gis.db.models.Union\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Union</span></code></a>, sauf qu’elle peut être vraiment plus rapide qu’une union car elle accumule les objets géométriques dans une collection ou une géométrie multiple sans se préoccuper de fusionner les objets.</p>\n</section>\n<section id=\"extent\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Extent</span></code><a class=\"heading-anchor\" href=\"#extent\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.Extent\">\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\">Extent</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">geo_field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.Extent\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Extent.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Renvoie l’étendue de tous les champs <code class=\"docutils literal notranslate\"><span class=\"pre\">geo_field</span></code> du <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> sous forme de tuple à 4 éléments formé des coordonnées inférieure gauche et supérieure droite.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">qs</span> <span class=\"o\">=</span> <span class=\"n\">City</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name__in</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"s1\">&#39;Houston&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Dallas&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">aggregate</span><span class=\"p\">(</span><span class=\"n\">Extent</span><span class=\"p\">(</span><span class=\"s1\">&#39;poly&#39;</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=\"s1\">&#39;poly__extent&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">(-96.8016128540039, 29.7633724212646, -95.3631439208984, 32.782058715820)</span>\n</code></pre></div>\n</section>\n<section id=\"extent3d\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Extent3D</span></code><a class=\"heading-anchor\" href=\"#extent3d\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.Extent3D\">\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\">Extent3D</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">geo_field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.Extent3D\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_3DExtent.html\">PostGIS</a></p>\n<p>Renvoie l’étendue 3D de tous les champs <code class=\"docutils literal notranslate\"><span class=\"pre\">geo_field</span></code> du <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> sous forme de tuple à 6 éléments formé des coordonnées inférieure gauche et supérieure droite (chaque fois avec les coordonnées x, y et z).</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">qs</span> <span class=\"o\">=</span> <span class=\"n\">City</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name__in</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"s1\">&#39;Houston&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Dallas&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">aggregate</span><span class=\"p\">(</span><span class=\"n\">Extent3D</span><span class=\"p\">(</span><span class=\"s1\">&#39;poly&#39;</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=\"s1\">&#39;poly__extent3d&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">(-96.8016128540039, 29.7633724212646, 0, -95.3631439208984, 32.782058715820, 0)</span>\n</code></pre></div>\n</section>\n<section id=\"makeline\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">MakeLine</span></code><a class=\"heading-anchor\" href=\"#makeline\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.MakeLine\">\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\">MakeLine</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">geo_field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.MakeLine\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_MakeLine.html\">PostGIS</a>, SpatiaLite</p>\n<p>Renvoie une ligne <code class=\"docutils literal notranslate\"><span class=\"pre\">LineString</span></code> construite à partir des champs de type point du <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>.  Actuellement, le tri du jeu de requête n’a pas d’effet.</p>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">qs</span> <span class=\"o\">=</span> <span class=\"n\">City</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name__in</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"s1\">&#39;Houston&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;Dallas&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">aggregate</span><span class=\"p\">(</span><span class=\"n\">MakeLine</span><span class=\"p\">(</span><span class=\"s1\">&#39;poly&#39;</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=\"s1\">&#39;poly__makeline&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">LINESTRING (-95.3631510000000020 29.7633739999999989, -96.8016109999999941 32.7820570000000018)</span>\n</code></pre></div>\n</section>\n<section id=\"union\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Union</span></code><a class=\"heading-anchor\" href=\"#union\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.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\">geo_field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.Union\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Disponibilité</em> : <a class=\"reference external\" href=\"https://postgis.net/docs/ST_Union.html\">PostGIS</a>, Oracle, SpatiaLite</p>\n<p>Cette méthode renvoie un objet <a class=\"reference internal\" href=\"/fr/3.0/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSGeometry\" title=\"django.contrib.gis.geos.GEOSGeometry\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GEOSGeometry</span></code></a> formé de l’union de tous les objets géométriques du jeu de requête. Sachez que l’emploi de <code class=\"docutils literal notranslate\"><span class=\"pre\">Union</span></code> est très consommateur de ressources et peut prendre un temps considérable pour de gros jeux de requête.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Si le temps de calcul lors de l’utilisation de cette méthode est trop important, envisagez d’utiliser plutôt <a class=\"reference internal\" href=\"#django.contrib.gis.db.models.Collect\" title=\"django.contrib.gis.db.models.Collect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Collect</span></code></a>.</p>\n</aside>\n<p>Exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">u</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\">aggregate</span><span class=\"p\">(</span><span class=\"n\">Union</span><span class=\"p\">(</span><span class=\"n\">poly</span><span class=\"p\">))</span>  <span class=\"c1\"># This may take a long time.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">u</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\">filter</span><span class=\"p\">(</span><span class=\"n\">poly__within</span><span class=\"o\">=</span><span class=\"n\">bbox</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">aggregate</span><span class=\"p\">(</span><span class=\"n\">Union</span><span class=\"p\">(</span><span class=\"n\">poly</span><span class=\"p\">))</span>  <span class=\"c1\"># A more sensible approach.</span>\n</code></pre></div>\n<p class=\"rubric\">Notes de bas de page</p>\n<aside class=\"footnote-list brackets\">\n<aside class=\"footnote brackets\" id=\"fnde9im\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id4\">1</a><span class=\"fn-bracket\">]</span></span>\n<p><em>Voir</em> <a class=\"reference external\" href=\"http://www.opengis.org/docs/99-049.pdf\">OpenGIS Simple Feature Specification For SQL</a>, chap. 2.1.13.2, p. 2-13 (The Dimensionally Extended Nine-Intersection Model).</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fnsdorelate\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id5\">2</a><span class=\"fn-bracket\">]</span></span>\n<p><em>Voir</em> la <a class=\"reference external\" href=\"https://docs.oracle.com/en/database/oracle/oracle-database/18/spatl/spatial-operators-reference.html#GUID-97C17C18-F05E-49B4-BE11-E89B972E2A02\">documentation de SDO_RELATE</a> dans le guide de développement spatial et graphique d’Oracle.</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fncovers\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span>3<span class=\"fn-bracket\">]</span></span>\n<span class=\"backrefs\">(<a role=\"doc-backlink\" href=\"#id2\">1</a>,<a role=\"doc-backlink\" href=\"#id3\">2</a>)</span>\n<p>Pour une explication de cette routine, lisez <a class=\"reference external\" href=\"https://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html\">Quirks of the « Contains » Spatial Predicate</a> par Martin Davis (un développeur PostGIS).</p>\n</aside>\n</aside>\n</section>\n</section>\n</section>","rootId":"gis-queryset-api-reference","toc":[{"title":"Recherches spatiales","anchor":"spatial-lookups","children":[{"title":"Requêtes avec matrices","anchor":"lookups-with-rasters","children":[]},{"title":"bbcontains","anchor":"bbcontains","children":[]},{"title":"bboverlaps","anchor":"bboverlaps","children":[]},{"title":"contained","anchor":"contained","children":[]},{"title":"contains","anchor":"contains","children":[]},{"title":"contains_properly","anchor":"contains-properly","children":[]},{"title":"coveredby","anchor":"coveredby","children":[]},{"title":"covers","anchor":"covers","children":[]},{"title":"crosses","anchor":"crosses","children":[]},{"title":"disjoint","anchor":"disjoint","children":[]},{"title":"equals","anchor":"equals","children":[]},{"title":"exact, same_as","anchor":"exact-same-as","children":[]},{"title":"intersects","anchor":"intersects","children":[]},{"title":"isvalid","anchor":"isvalid","children":[]},{"title":"overlaps","anchor":"overlaps","children":[]},{"title":"relate","anchor":"relate","children":[{"title":"PostGIS et SpatiaLite","anchor":"postgis-spatialite","children":[]},{"title":"Oracle","anchor":"oracle","children":[]}]},{"title":"touches","anchor":"touches","children":[]},{"title":"within","anchor":"within","children":[]},{"title":"left","anchor":"left","children":[]},{"title":"right","anchor":"right","children":[]},{"title":"overlaps_left","anchor":"overlaps-left","children":[]},{"title":"overlaps_right","anchor":"overlaps-right","children":[]},{"title":"overlaps_above","anchor":"overlaps-above","children":[]},{"title":"overlaps_below","anchor":"overlaps-below","children":[]},{"title":"strictly_above","anchor":"strictly-above","children":[]},{"title":"strictly_below","anchor":"strictly-below","children":[]}]},{"title":"Recherches de distance","anchor":"distance-lookups","children":[{"title":"distance_gt","anchor":"distance-gt","children":[]},{"title":"distance_gte","anchor":"distance-gte","children":[]},{"title":"distance_lt","anchor":"distance-lt","children":[]},{"title":"distance_lte","anchor":"distance-lte","children":[]},{"title":"dwithin","anchor":"dwithin","children":[]},{"title":"Fonctions d’agrégation","anchor":"aggregate-functions","children":[{"title":"Collect","anchor":"collect","children":[]},{"title":"Extent","anchor":"extent","children":[]},{"title":"Extent3D","anchor":"extent3d","children":[]},{"title":"MakeLine","anchor":"makeline","children":[]},{"title":"Union","anchor":"union","children":[]}]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/3.0/ref/"},{"docname":"ref/contrib/index","title":"Paquets contrib","url":"/fr/3.0/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/fr/3.0/ref/contrib/gis/"}],"prev":{"docname":"ref/contrib/gis/forms-api","title":"API des formulaires GeoDjango","url":"/fr/3.0/ref/contrib/gis/forms-api/"},"next":{"docname":"ref/contrib/gis/functions","title":"Fonctions de base de données géographiques","url":"/fr/3.0/ref/contrib/gis/functions/"},"formats":{"html":"/fr/3.0/ref/contrib/gis/geoquerysets/","markdown":"/fr/3.0/ref/contrib/gis/geoquerysets.md","json":"/fr/3.0/ref/contrib/gis/geoquerysets.json"},"source":"https://github.com/django/django/blob/stable/3.0.x/docs/ref/contrib/gis/geoquerysets.txt","official":"https://docs.djangoproject.com/fr/3.0/ref/contrib/gis/geoquerysets/","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","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}