Référence des API GeoQuerySetLien vers cette rubrique
- class GeoQuerySet(model=None)Lien vers cette définition
Recherches spatialesLien vers cette rubrique
The spatial lookups in this section are available for GeometryField.
Pour une vue générale, consultez l”introduction sur les recherches spatiales. Pour un aperçu sur la compatibilité des diverses requêtes en fonction du moteur spatial utilisé, référez-vous au tableau de compatibilité des recherches spatiales.
bbcontainsLien vers cette rubrique
Disponibilité : PostGIS, MySQL, SpatiaLite
Teste si le rectangle englobant du champ géométrique contient complètement le rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__bbcontains=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
MySQL |
|
SpatiaLite |
|
bboverlapsLien vers cette rubrique
Disponibilité : PostGIS, MySQL, SpatiaLite
Teste si le rectangle englobant du champ géométrique recouvre partiellement le rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__bboverlaps=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
MySQL |
|
SpatiaLite |
|
containedLien vers cette rubrique
Disponibilité : PostGIS, MySQL, SpatiaLite
Teste si le rectangle englobant du champ géométrique est complètement contenu dans le rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__contained=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
MySQL |
|
SpatiaLite |
|
containsLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
Teste si le champ géométrique contient spatialement l’objet géométrique de la recherche.
Exemple :
Zipcode.objects.filter(poly__contains=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
MySQL |
|
SpatiaLite |
|
contains_properlyLien vers cette rubrique
Disponibilité : PostGIS
Renvoie True 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). [4]
Exemple :
Zipcode.objects.filter(poly__contains_properly=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
coveredbyLien vers cette rubrique
Disponibilité : PostGIS, Oracle
Teste si aucun point du champ géométrique n’est en dehors de l’objet géométrique de la recherche. [3]
Exemple :
Zipcode.objects.filter(poly__coveredby=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
coversLien vers cette rubrique
Disponibilité : PostGIS, Oracle
Teste si aucun point de l’objet géométrique de la recherche n’est en dehors du champ géométrique. [3]
Exemple :
Zipcode.objects.filter(poly__covers=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
crossesLien vers cette rubrique
Disponibilité : PostGIS, SpatiaLite
Teste si le champ géométrique se croise spatialement avec l’objet géométrique de la recherche.
Exemple :
Zipcode.objects.filter(poly__crosses=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
SpatiaLite |
|
disjointLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
Teste si le champ géométrique est spatialement distinct de l’objet géométrique de la recherche.
Exemple :
Zipcode.objects.filter(poly__disjoint=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
MySQL |
|
SpatiaLite |
|
equalsLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
exact, same_asLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
intersectsLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
Teste si le champ géométrique possède une intersection spatiale avec l’objet géométrique de la recherche.
Exemple :
Zipcode.objects.filter(poly__intersects=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
MySQL |
|
SpatiaLite |
|
overlapsLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
relateLien vers cette rubrique
Disponibilité : PostGIS, Oracle, SpatiaLite
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 (géom, motif); la forme de motif dépend du moteur spatial :
PostGIS et SpatiaLiteLien vers cette rubrique
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 : 1, 2, T, F ou *. Ce type de recherche permet d’affiner une relation géométrique spécifique en cohérence avec le modèle DE-9IM. [1]
Exemple :
# A tuple lookup parameter is used to specify the geometry and
# the intersection pattern (the pattern here is for 'contains').
Zipcode.objects.filter(poly__relate=(geom, 'T*T***FF*'))
Équivalent SQL PostGIS :
SELECT ... WHERE ST_Relate(poly, geom, 'T*T***FF*')
Équivalent SQL SpatiaLite :
SELECT ... WHERE Relate(poly, geom, 'T*T***FF*')
OracleLien vers cette rubrique
Here the relation pattern is comprised of at least one of the nine relation
strings: TOUCH, OVERLAPBDYDISJOINT, OVERLAPBDYINTERSECT,
EQUAL, INSIDE, COVEREDBY, CONTAINS, COVERS, ON, and
ANYINTERACT. Multiple strings may be combined with the logical Boolean
operator OR, for example, 'inside+touch'. [2] The relation
strings are case-insensitive.
Exemple :
Zipcode.objects.filter(poly__relate=(geom, 'anyinteract'))
Équivalent SQL Oracle :
SELECT ... WHERE SDO_RELATE(poly, geom, 'anyinteract')
touchesLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
Teste si le champ géométrique touche spatialement l’objet géométrique de la recherche.
Exemple :
Zipcode.objects.filter(poly__touches=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
MySQL |
|
Oracle |
|
SpatiaLite |
|
withinLien vers cette rubrique
Disponibilité : PostGIS, Oracle, MySQL, SpatiaLite
Teste si le champ géométrique est spatialement à l’intérieur de l’objet géométrique de la recherche.
Exemple :
Zipcode.objects.filter(poly__within=geom)
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
MySQL |
|
Oracle |
|
SpatiaLite |
|
leftLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique est strictement à gauche du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__left=geom)
Équivalent PostGIS :
SELECT ... WHERE poly << geom
rightLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique est strictement à droite du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__right=geom)
Équivalent PostGIS :
SELECT ... WHERE poly >> geom
overlaps_leftLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique recouvre ou est à gauche du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__overlaps_left=geom)
Équivalent PostGIS :
SELECT ... WHERE poly &< geom
overlaps_rightLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique recouvre ou est à droite du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__overlaps_right=geom)
Équivalent PostGIS :
SELECT ... WHERE poly &> geom
overlaps_aboveLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique recouvre ou est au-dessus du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__overlaps_above=geom)
Équivalent PostGIS :
SELECT ... WHERE poly |&> geom
overlaps_belowLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique recouvre ou est au-dessous du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__overlaps_below=geom)
Équivalent PostGIS :
SELECT ... WHERE poly &<| geom
strictly_aboveLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique est strictement au-dessus du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__strictly_above=geom)
Équivalent PostGIS :
SELECT ... WHERE poly |>> geom
strictly_belowLien vers cette rubrique
Disponibilité : PostGIS
Teste si le rectangle englobant du champ géométrique est strictement au-dessous du rectangle englobant de la recherche géométrique.
Exemple :
Zipcode.objects.filter(poly__strictly_below=geom)
Équivalent PostGIS :
SELECT ... WHERE poly <<| geom
Recherches de distanceLien vers cette rubrique
Disponibilité : PostGIS, Oracle, SpatiaLite
Pour un aperçu sur la construction de requêtes de distance, référez-vous à l”introduction sur les requêtes de distance.
Les requêtes de distance se font sous la forme suivante :
<field>__<distance lookup>=(<geometry>, <distance value>[, 'spheroid'])
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 en nombre dans l’unité du champ ou un objet Distance). Pour toutes les recherches de distance à l’exception de dwithin, une troisième valeur facultative, 'spheroid', peut être ajoutée pour dire à GeoDjango d’utiliser les fonctions de calcul de distance sphéroïde pour les champs ayant un système de coordonnées géodétique (par ex. ST_Distance_Spheroid serait utilisé à la place de ST_Distance_Sphere ). Dans le cas d’un système de coordonnées projeté, c’est la fonction plus simple ST_Distance qui sera utilisée.
distance_gtLien vers cette rubrique
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.
Exemple :
Zipcode.objects.filter(poly__distance_gt=(geom, D(m=5)))
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
SpatiaLite |
|
distance_gteLien vers cette rubrique
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.
Exemple :
Zipcode.objects.filter(poly__distance_gte=(geom, D(m=5)))
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
SpatiaLite |
|
distance_ltLien vers cette rubrique
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.
Exemple :
Zipcode.objects.filter(poly__distance_lt=(geom, D(m=5)))
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
SpatiaLite |
|
distance_lteLien vers cette rubrique
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.
Exemple :
Zipcode.objects.filter(poly__distance_lte=(geom, D(m=5)))
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
SpatiaLite |
|
dwithinLien vers cette rubrique
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 Distance 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 WGS84).
Exemple :
Zipcode.objects.filter(poly__dwithin=(geom, D(m=5)))
Moteur |
Équivalent SQL |
|---|---|
PostGIS |
|
Oracle |
|
Méthodes GeoQuerySetLien vers cette rubrique
Les méthodes de GeoQuerySet appliquent une opération spatiale sur chaque champ géographique du jeu de requête et stockent le résultat dans un nouvel attribut du modèle (qui correspond généralement au nom de la méthode GeoQuerySet).
Il existe également des méthodes GeoQuerySet d’agrégation qui renvoient une valeur unique au lieu d’un jeu de requête. Cette section documente l’API et la disponibilité de chaque méthode de GeoQuerySet dans GeoDjango.
À quelques exceptions près, les paramètres nommés suivants peuvent être utilisés avec toutes les méthodes de GeoQuerySet:
Paramètre nommé |
Description |
|---|---|
|
Par défaut, les méthodes de Avec PostGIS, le paramètre |
|
Par défaut, les méthodes de Ce paramètre est obligatoire quand un nom de modèle entre en conflit avec une méthode |
MesuresLien vers cette rubrique
Disponibilité : PostGIS, Oracle, SpatiaLite
areaLien vers cette rubrique
- GeoQuerySet.area(**kwargs)Lien vers cette définition
Écrit l’aire du champ géométrique dans un attribut area de chaque élément du GeoQuerySet.
distanceLien vers cette rubrique
- GeoQuerySet.distance(geom, **kwargs)Lien vers cette définition
Cette méthode accepte un objet géométrique en paramètre et ajoute un attribut distance à chaque modèle du jeu de requête, attribut contenant la distance entre le champ concerné du modèle et l’objet géométrique donné (sous forme d’objet Distance).
Dans l’exemple suivant (tiré des tests de distance de GeoDjango), on calcule la distance entre la ville tasmanienne de Hobart vers tous les autres champs PointField du jeu de requête AustraliaCity:
>>> pnt = AustraliaCity.objects.get(name='Hobart').point
>>> for city in AustraliaCity.objects.distance(pnt): print(city.name, city.distance)
Wollongong 990071.220408 m
Shellharbour 972804.613941 m
Thirroul 1002334.36351 m
Mittagong 975691.632637 m
Batemans Bay 834342.185561 m
Canberra 598140.268959 m
Melbourne 575337.765042 m
Sydney 1056978.87363 m
Hobart 0.0 m
Adelaide 1162031.83522 m
Hillsdale 1049200.46122 m
lengthLien vers cette rubrique
- GeoQuerySet.length(**kwargs)Lien vers cette définition
Écrit la longueur du champ géométrique dans un attribut length de chaque élément du jeu de requête (un objet Distance).
perimeterLien vers cette rubrique
- GeoQuerySet.perimeter(**kwargs)Lien vers cette définition
Écrit le périmètre du champ géométrique dans un attribut perimeter de chaque élément du jeu de requête (un objet Distance).
Relations géométriquesLien vers cette rubrique
Les méthodes suivantes ne demandent aucun paramètre et ajoutent un objet géométrique à chaque élément du jeu de requête GeoQuerySet , objet qui est le résultat d’une fonction de relation évaluée sur le champ géométrique.
centroidLien vers cette rubrique
- GeoQuerySet.centroid(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite
Écrit la valeur de centroïde du champ géométrique dans un attribut centroid de chaque élément du GeoQuerySet.
envelopeLien vers cette rubrique
- GeoQuerySet.envelope(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, SpatiaLite
Écrit un objet géométrique représentant le rectangle englobant du champ géométrique dans un attribut envelope de chaque élément du GeoQuerySet.
point_on_surfaceLien vers cette rubrique
- GeoQuerySet.point_on_surface(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite
Écrit un objet géométrique Point se trouvant de manière certaine dans la surface du champ géométrique dans un attribut point_on_surface de chaque élément du jeu de requête.
Éditeurs géométriquesLien vers cette rubrique
force_rhrLien vers cette rubrique
- GeoQuerySet.force_rhr(**kwargs)Lien vers cette définition
Disponibilité : PostGIS
Calcule une version modifiée du (multi)polygone pour lequel toutes les arêtes suivent la « règle de la main droite » et place cet objet dans un attribut force_rhr pour chaque élément du jeu de requête.
reverse_geomLien vers cette rubrique
- GeoQuerySet.reverse_geom(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, Oracle
Inverse l’ordre des coordonnées du champ géométrique et place l’objet résultant dans un attribut reverse pour chaque élément du jeu de requête.
scaleLien vers cette rubrique
- GeoQuerySet.scale(x, y, z=0.0, **kwargs)Lien vers cette définition
Disponibilité : PostGIS, SpatiaLite
snap_to_gridLien vers cette rubrique
- GeoQuerySet.snap_to_grid(*args, **kwargs)Lien vers cette définition
Fait glisser tous les points du champ géométrique selon une grille. La manière d’ajuster l’objet géométrique à la grille dépend du nombre de paramètres numériques fournis (des nombres à virgule, entiers ou entiers longs).
Nombre de paramètres |
Description |
|---|---|
1 |
Une seule taille de cellule de grille (à la fois pour la taille X et Y). |
2 |
Tailles X et Y de cellule de grille. |
4 |
Tailles de cellule X et Y ainsi que coordonnées X et Y de l’origine de la grille. |
transformLien vers cette rubrique
- GeoQuerySet.transform(srid=4326, **kwargs)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite
La méthode transform transforme le champ géométrique d’un modèle dans le système de référence spatiale indiqué par le paramètre srid. Si ce paramètre est absent, c’est le SRID 4326 (WGS84) qui est utilisé par défaut.
Exemple :
>>> qs = Zipcode.objects.all().transform() # Transforms to WGS84
>>> qs = Zipcode.objects.all().transform(32140) # Transforming to "NAD83 / Texas South Central"
>>> print(qs[0].poly.srid)
32140
>>> print(qs[0].poly)
POLYGON ((234055.1698884720099159 4937796.9232223574072123 ...
translateLien vers cette rubrique
- GeoQuerySet.translate(x, y, z=0.0, **kwargs)Lien vers cette définition
Disponibilité : PostGIS, SpatiaLite
Effectue une translation du champ géométrique vers un nouvel emplacement en utilisant les paramètres numériques donnés comme vecteurs.
Opérations géométriquesLien vers cette rubrique
Disponibilité : PostGIS, Oracle, SpatiaLite
Les méthodes suivantes demandent toutes un objet géométrique en paramètre et ajoutent un objet géométrique à chaque élément du jeu de requête GeoQuerySet résultant de l’opération.
differenceLien vers cette rubrique
- GeoQuerySet.difference(geom)Lien vers cette définition
Effectue la différence spatiale entre le champ géométrique et l’objet géométrique donné et écrit le résultat dans un attribut difference de chaque élément du GeoQuerySet.
intersectionLien vers cette rubrique
- GeoQuerySet.intersection(geom)Lien vers cette définition
Effectue l’intersection spatiale entre le champ géométrique et l’objet géométrique donné et écrit le résultat dans un attribut intersection de chaque élément du GeoQuerySet.
sym_differenceLien vers cette rubrique
- GeoQuerySet.sym_difference(geom)Lien vers cette définition
Effectue la différence symétrique entre le champ géométrique et l’objet géométrique donné et écrit le résultat dans un attribut sym_difference de chaque élément du GeoQuerySet.
unionLien vers cette rubrique
- GeoQuerySet.union(geom)Lien vers cette définition
Effectue l’union du champ géométrique avec l’objet géométrique donné et écrit le résultat dans un attribut union de chaque élément du GeoQuerySet.
Sorties géométriquesLien vers cette rubrique
Les méthodes GeoQuerySet suivantes créent pour chaque modèle un nouvel attribut contenant la valeur du champ géométrique converti dans le format de sortie demandé.
geohashLien vers cette rubrique
- GeoQuerySet.geohash(precision=20, **kwargs)Lien vers cette définition
Ajoute pour chaque modèle du jeu de requête un attribut geohash contenant la représentation GeoHash du champ géométrique.
geojsonLien vers cette rubrique
- GeoQuerySet.geojson(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, SpatiaLite
Ajoute pour chaque modèle du jeu de requête un attribut geojson contenant la représentation GeoJSON du champ géométrique.
Paramètre nommé |
Description |
|---|---|
|
Peut être utilisé pour indiquer le nombre de chiffres significatifs des coordonnées de la représentation GeoJSON, la valeur par défaut étant 8. |
|
À définir à |
|
À définir à |
gmlLien vers cette rubrique
- GeoQuerySet.gml(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite
Ajoute pour chaque modèle du jeu de requête un attribut gml contenant la représentation Geographic Markup Language (GML) du champ géométrique.
Exemple :
>>> qs = Zipcode.objects.all().gml()
>>> print(qs[0].gml)
<gml:Polygon srsName="EPSG:4326"><gml:OuterBoundaryIs>-147.78711,70.245363 ... -147.78711,70.245363</gml:OuterBoundaryIs></gml:Polygon>
Paramètre nommé |
Description |
|---|---|
|
Ce paramètre n’est valable que pour PostGIS. Il peut être utilisé pour indiquer le nombre de chiffres significatifs des coordonnées de la représentation GML, la valeur par défaut étant 8. |
|
Ce paramètre n’est valable que pour PostGIS. Il peut être utilisé pour indiquer la version GML utilisée (2 ou 3). La valeur par défaut est 2. |
kmlLien vers cette rubrique
- GeoQuerySet.kml(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, SpatiaLite
Ajoute pour chaque modèle du jeu de requête un attribut kml contenant la représentation Keyhole Markup Language (KML) du champ géométrique. Il faut relever que le contenu KML est transformé en WGS84 si nécessaire.
Exemple :
>>> qs = Zipcode.objects.all().kml()
>>> print(qs[0].kml)
<Polygon><outerBoundaryIs><LinearRing><coordinates>-103.04135,36.217596,0 ... -103.04135,36.217596,0</coordinates></LinearRing></outerBoundaryIs></Polygon>
Paramètre nommé |
Description |
|---|---|
|
Ce paramètre peut être utilisé pour indiquer le nombre de chiffres significatifs des coordonnées de la représentation KML, la valeur par défaut étant 8. |
svgLien vers cette rubrique
- GeoQuerySet.svg(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, SpatiaLite
Ajoute pour chaque modèle du jeu de requête un attribut svg contenant les données de chemin Scalable Vector Graphics (SVG) du champ géométrique.
Paramètre nommé |
Description |
|---|---|
|
Si défini à |
|
Ce paramètre peut être utilisé pour indiquer le nombre de chiffres significatifs des coordonnées de la représentation SVG, la valeur par défaut étant 8. |
DiversLien vers cette rubrique
mem_sizeLien vers cette rubrique
- GeoQuerySet.mem_size(**kwargs)Lien vers cette définition
Disponibilité : PostGIS
Calcule la taille mémoire (nombre d’octets) consommée par le champ géométrique et écrit le résultat dans un attribut mem_size de chaque élément du GeoQuerySet.
num_geomLien vers cette rubrique
- GeoQuerySet.num_geom(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite
Écrit le nombre d’éléments géométriques dans un attribut num_geom de chaque élément du GeoQuerySet, pour autant que le champ géométrique soit une collection (par ex. un champ GEOMETRYCOLLECTION ou MULTI*) ; sinon, l’attribut contiendra None.
num_pointsLien vers cette rubrique
- GeoQuerySet.num_points(**kwargs)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite
Calcule le nombre de points du premier élément ligne (linestring) du champ géométrique et écrit le résultat dans un attribut num_points de chaque élément du GeoQuerySet. L’attribut contiendra None s’il n’y a pas de ligne.
Agrégations spatialesLien vers cette rubrique
Méthodes d’agrégationLien vers cette rubrique
collectLien vers cette rubrique
- GeoQuerySet.collect(**kwargs)Lien vers cette définition
Raccourci pour aggregate(Collect(<champ>)).
extentLien vers cette rubrique
- GeoQuerySet.extent(**kwargs)Lien vers cette définition
Raccourci pour aggregate(Extent(<champ>)).
extent3dLien vers cette rubrique
- GeoQuerySet.extent3d(**kwargs)Lien vers cette définition
Raccourci pour aggregate(Extent3D(<champ>)).
make_lineLien vers cette rubrique
- GeoQuerySet.make_line(**kwargs)Lien vers cette définition
Raccourci pour aggregate(MakeLine(<champ>)).
unionaggLien vers cette rubrique
- GeoQuerySet.unionagg(**kwargs)Lien vers cette définition
Raccourci pour aggregate(Union(<champ>)).
Fonctions d’agrégationLien vers cette rubrique
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 guide thématique sur l’agrégation.
Paramètre nommé |
Description |
|---|---|
|
Ce paramètre n’est valable que pour Oracle. Il s’agit de la valeur de tolérance utilisée par la procédure |
Exemple :
>>> from django.contrib.gis.db.models import Extent, Union
>>> WorldBorder.objects.aggregate(Extent('mpoly'), Union('mpoly'))
CollectLien vers cette rubrique
- class Collect(geo_field)Lien vers cette définition
Disponibilité : PostGIS, SpatiaLite (≥3.0)
Renvoie un objet géométrique GEOMETRYCOLLECTION ou MULTI à partir de la colonne géométrique. C’est un peu comme une version simplifiée de l’agrégation Union, sauf qu’elle peut être vraiment plus rapide qu’une union car elle ne fait qu’accumuler les objets géométriques dans une collection ou une géométrie multiple sans se préoccuper de fusionner les objets.
ExtentLien vers cette rubrique
- class Extent(geo_field)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite (≥3.0)
Renvoie l’étendue de tous les champs geo_field du QuerySet sous forme de tuple à 4 éléments formé des coordonnées inférieure gauche et supérieure droite.
Exemple :
>>> qs = City.objects.filter(name__in=('Houston', 'Dallas')).aggregate(Extent('poly'))
>>> print(qs['poly__extent'])
(-96.8016128540039, 29.7633724212646, -95.3631439208984, 32.782058715820)
Extent3DLien vers cette rubrique
- class Extent3D(geo_field)Lien vers cette définition
Disponibilité : PostGIS
Renvoie l’étendue 3D de tous les champs geo_field du QuerySet 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).
Exemple :
>>> qs = City.objects.filter(name__in=('Houston', 'Dallas')).aggregate(Extent3D('poly'))
>>> print(qs['poly__extent3d'])
(-96.8016128540039, 29.7633724212646, 0, -95.3631439208984, 32.782058715820, 0)
MakeLineLien vers cette rubrique
- class MakeLine(geo_field)Lien vers cette définition
Disponibilité : PostGIS
Renvoie une ligne LineString construite à partir des champs de type point du QuerySet. Actuellement, le tri du jeu de requête n’a pas d’effet.
Exemple :
>>> print(City.objects.filter(name__in=('Houston', 'Dallas')
... ).aggregate(MakeLine('poly'))['poly__makeline']
LINESTRING (-95.3631510000000020 29.7633739999999989, -96.8016109999999941 32.7820570000000018)
UnionLien vers cette rubrique
- class Union(geo_field)Lien vers cette définition
Disponibilité : PostGIS, Oracle, SpatiaLite
Cette méthode renvoie un objet GEOSGeometry formé de l’union de tous les objets géométriques du jeu de requête. Sachez que l’emploi de Union est très consommateur de ressources et peut prendre un temps considérable pour de gros jeux de requête.
Exemple :
>>> u = Zipcode.objects.aggregate(Union(poly)) # This may take a long time.
>>> u = Zipcode.objects.filter(poly__within=bbox).aggregate(Union(poly)) # A more sensible approach.
Notes de bas de page