Tagairt API GIS QuerySetLink to this heading
Cuardaigh SpásúlaLink to this heading
Tá na cuardaigh spásúla sa chuid seo ar fáil le haghaidh: aicme: GeometryField agus:class: Rasterfield.
For an introduction, see the spatial lookups introduction. For an overview of what lookups are compatible with a particular spatial backend, refer to the spatial lookup compatibility table.
Cuardaigh le rastersLink to this heading
Tugtar na samplaí go léir sa tagairt thíos do réimsí geoiméadrachta agus ionchuir, ach is féidir na cuardaigh a úsáid ar an mbealach céanna le rasters ar an dá thaobh. < https://postgis.net/docs/RT_ST_Polygon.html>Aon uair nach dtacaíonn cuardach le hionchur raster, déantar an t-ionchur a thiontú go géiméadracht go huathoibríoch nuair is gá ag baint úsáide as an bhfeidhm ST_Polygon. <spatial-lookup-raster>Féach freis:ref: `réamhrá ar chuardach raster `.
Is féidir na hoibreoirí bunachar sonraí a úsáideann na cuardaigh a roinnt ina thrí chatagóir:
Tacaíocht raster dúchasach
N: glacann an t-oibreoir le rastrí go dúchasach ar an dá thaobh den chuardach, agus is féidir ionchur raster a mheascadh le hionchuir geoiméadrachta.Tacaíocht raster déthaobhach
B: ní thacaíonn an t-oibreoir le rasters ach amháin má fhaigheann an dá thaobh den chuardach ionchuir raster. Déantar sonraí raster a thiontú go huathoibríoch go geoiméadraí le haghaidh cuardaigh meascthaTacaíocht tiontaithe geoiméadais
C. Níl tacaíocht raster dúchasach ag an lorg, déantar na sonraí raster go léir a thiontú go geoiméadraí go huathoibríoch.
Taispeánann na samplaí thíos an coibhéis SQL do na cuardaigh sna cineálacha éagsúla tacaíochta raster. Baineann an patrún céanna le gach cuardach spásúil.
Cás |
Cuardaigh |
Coibhéis SQL |
|---|---|---|
N, B |
|
``ST_Contains (réidh, an chéad) `` |
N, B |
``rast__1__contains= (an chéad, 2) `` |
``ST_Contains (ceart, 1, an chéad, 2) `` |
B, C |
|
``ST_Contains (ST_polygon (ar dheis), geom) `` |
B, C |
|
``ST_Contains (ST_polygon (ceart, 1), geom) `` |
B, C |
|
``ST_Contains (poly, ST_polygon (rst)) `` |
B, C |
``poly__contains= (an chéad, 1) `` |
``ST_Contains (poly, ST_polygon (rst, 1)) `` |
C |
|
``ST_Crosses (ST_polygon (ar dheis), ST_polygon (an chéad)) `` |
C |
``rast__1__crosses= (an chéad, 2) `` |
``ST_Crosses (ST_polygon (ceart, 1), ST_polygon (an chéad, 2)) `` |
C |
|
``ST_Crosses (ST_polygon (ar dheis), geom) `` |
C |
|
``ST_Crosses (poli, ST_polygon (rst)) `` |
Ní thacaítear le cuardaigh spásúla le rasters ach le cúltaca PostGIS (ainmnítear mar PGraster sa chuid seo).
bbcontainsLink to this heading
Infhaighteacht: `PostGIS`__ < https://postgis.net/docs/ST_Geometry_Contain.html>, MariaDB, MySQL, Spatialite, PGraster (Dúchasach)
Tástálacha má tá bosca teorainneacha an geoiméadra cuardaigh go hiomlán i mbosca teorainneacha an ghéimseadra nó sa réimse raster.
Sampla:
Zipcode.objects.filter(poly__bbcontains=geom)
bboverlapsLink to this heading
Infhaighteacht: `PostGIS`__ < https://postgis.net/docs/geometry_overlaps.html>, MariaDB, MySQL, Spatialite, PGraster (Dúchasach)
Déanann tástálacha má fhorluíonn bosca teorainneacha an réimse geoiméadachta bosca teorainneacha an choiméadra cuardaigh.
Sampla:
Zipcode.objects.filter(poly__bboverlaps=geom)
CoimeádaíLink to this heading
Infhaighteacht: `PostGIS`__ < https://postgis.net/docs/ST_Geometry_Contained.html>, MariaDB, MySQL, Spatialite, PGraster (Dúchasach)
Tástálacha má tá bosca teorainneacha an réimse geoiméadachta cuardaigh go hiomlán i mbosca teorainneacha an réimse geoiméadrach.
Sampla:
Zipcode.objects.filter(poly__contained=geom)
CoimeádLink to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Bilateral)
Tástálacha má tá an geoiméadracht cuardaigh sa réimse geoiméadrach spásúil.
Sampla:
Zipcode.objects.filter(poly__contains=geom)
``coinníomhaíon_ceart ``Link to this heading
< https://postgis.net/docs/ST_ContainsProperly.html>*Infhaighteacht*: `PostGIS`__, PGraster (Déthaobhach)
Filleann sé fíor má thrasnaíonn an geoiméadracht cuardaigh taobh istigh den réimse geoiméadrach, ach ní an teorainn (nó an taobh amuigh).
Sampla:
Zipcode.objects.filter(poly__contains_properly=geom)
Cúltaca |
Coibhéis SQL |
|---|---|
PostGIS |
``ST_CONTAINSProperly (poly, geom) `` |
``clúdaithe ag ``Link to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, PGRaster (Bilateral), SpatiaLite
Tástálacha mura bhfuil aon phointe sa réimse geoiméadrach lasmuigh den ghéimseadracht cuardaigh [#fncovers] _
Sampla:
Zipcode.objects.filter(poly__coveredby=geom)
``clúdaithe ``Link to this heading
Availability: PostGIS, Oracle, MySQL, PGRaster (Bilateral), SpatiaLite
Tástálacha mura bhfuil aon phointe sa ghéimseadracht cuardaigh lasmuigh den réimse geoiméadachta [#fncovers] _
Sampla:
Zipcode.objects.filter(poly__covers=geom)
trasnaLink to this heading
Infhaighteacht: `PostGIS`__ < https://postgis.net/docs/ST_Crosses.html>, MariaDB, MySQL, Spatialite, PGraster (Comhshó)
Tástálacha má thrasnaíonn an réimse geoiméadrachta an geoiméadracht cuardaigh
Sampla:
Zipcode.objects.filter(poly__crosses=geom)
dícheangailtiLink to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Bilateral)
Tástálacha má tá an réimse geoiméadrachta neamhspleách go spásúil ón gcéimseadra cuardaigh.
Sampla:
Zipcode.objects.filter(poly__disjoint=geom)
comhionannaiLink to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Conversion)
Tástálacha má tá an réimse geoiméadrach cothrom go spásúil leis an gcéiméadra cuardaigh
Sampla:
Zipcode.objects.filter(poly__equals=geom)
`cruth, ``an gcéann_mar ``Link to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Bilateral)
Tástálacha má tá an réimse geoiméadrach “comhionann” leis an gcéiméadra cuardaigh. Ar Oracle, MySQL, agus SpatiaLite, déanann sé tástáil ar chomhionannas spásúil, agus ar PostGIS déanann sé tástáil ar chomhionannas boscaí teorainneacha.
Sampla:
Zipcode.objects.filter(poly=geom)
CraitheangairLink to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Bilateral)
Tástálacha má thrasnaíonn an réimse geoiméadrach an geoiméadracht cuardaigh go spásúil.
Sampla:
Zipcode.objects.filter(poly__intersects=geom)
isemptyLink to this heading
< https://postgis.net/docs/ST_IsEmpty.html>*Infhaighteacht*: `PostGis`__
Tástálacha má tá an geoiméadracht folamh.
Sampla:
Zipcode.objects.filter(poly__isempty=True)
“Is bailí”Link to this heading
Availability: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite
Tástálacha má tá an geoiméadracht bailí.
Sampla:
Zipcode.objects.filter(poly__isvalid=True)
Cúltaca |
Coibhéis SQL |
|---|---|
MariaDB, MySQL, PostGIS, SpatiaLite |
``St_IsValid (poli) `` |
Oracle |
|
cineál_geomLink to this heading
Availability: PostGIS, Oracle 23c+, MariaDB, MySQL, SpatiaLite
Returns the geometry type of the geometry field.
Sampla:
Zipcode.objects.filter(poly__geom_type="POLYGON")
Cúltaca |
Coibhéis SQL |
|---|---|
PostGIS |
|
MariaDB |
|
MySQL |
|
Oracle |
|
Spatialite |
|
forlapsLink to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Bilateral)
Tástálacha má fhorluíonn an réimse geoiméadrachta go spásúil ar an gcéiméadra
``gaolmhar ``Link to this heading
Availability: PostGIS, MariaDB, Oracle, SpatiaLite, PGRaster (Conversion)
Tests if the geometry field is spatially related to the lookup geometry by the
values given in the given pattern. This lookup requires a tuple parameter,
(geom, pattern); the form of pattern will depend on the spatial
backend:
MariaDB, PostGIS, agus SpatialiteLink to this heading
On these spatial backends the intersection pattern is a string comprising nine
characters, which define intersections between the interior, boundary, and
exterior of the geometry field and the lookup geometry. The intersection
pattern matrix may only use the following characters: 1, 2, T,
F, or *. This lookup type allows users to "fine tune" a specific
geometric relationship consistent with the DE-9IM model. [1]
Sampla geoiméadair:
# 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*"))
Coibhéis PostGIS agus MariaDB SQL:
SELECT ... WHERE ST_Relate(poly, geom, 'T*T***FF*')
Coibhéis SQL SpatialITE:
SELECT ... WHERE Relate(poly, geom, 'T*T***FF*')
Sampla raster:
Zipcode.objects.filter(poly__relate=(rast, 1, "T*T***FF*"))
Zipcode.objects.filter(rast__2__relate=(rast, 1, "T*T***FF*"))
Coibhéis PostGIS SQL:
SELECT ... WHERE ST_Relate(poly, ST_Polygon(rast, 1), 'T*T***FF*')
SELECT ... WHERE ST_Relate(ST_Polygon(rast, 2), ST_Polygon(rast, 1), 'T*T***FF*')
OracleLink to this heading
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.
Sampla:
Zipcode.objects.filter(poly__relate=(geom, "anyinteract"))
Coibhéis Oracle SQL:
SELECT ... WHERE SDO_RELATE(poly, geom, 'anyinteract')
teagmhálachaLink to this heading
< https://postgis.net/docs/ST_Touches.html>*Infhaighteacht*: `PostGIS`__, Oracle, MariaDB, MySQL, Spatialite
Tástálacha má théann an réimse geoiméadrachta i dteagmháil go spásúil leis an
Sampla:
Zipcode.objects.filter(poly__touches=geom)
``laistigh de ``Link to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Bilateral)
Tástálacha má tá an réimse geoiméadrachta go spásúil laistigh den ghéimseadracht
Sampla:
Zipcode.objects.filter(poly__within=geom)
``chlé `Link to this heading
< https://postgis.net/docs/ST_Geometry_Left.html>*Infhaighteacht*: `PostGIS`__, PGraster (Comhshó)
Tástálacha má tá bosca teorainneacha an réimse geoiméadrachta go docht ar thaobh clé de bhosca teorainneacha an geoiméadrachta cuardaigh.
Sampla:
Zipcode.objects.filter(poly__left=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly << geom
ceartLink to this heading
< https://postgis.net/docs/ST_Geometry_Right.html>*Infhaighteacht*: `PostGIS`__, PGraster (Comhshó)
Tástálacha má tá bosca teorainneacha an réimse geoiméadrachta go docht ar dheis de bhosca teorainneacha an geoiméadrachta cuardaigh.
Sampla:
Zipcode.objects.filter(poly__right=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly >> geom
``overlaps_chlé ``Link to this heading
< https://postgis.net/docs/ST_Geometry_Overleft.html>*Infhaighteacht*: `PostGIS`__, PGraster (Déthaobhach)
Tástálacha má théann bosca teorainneacha an réimse geoiméadrachta forluí nó má tá sé ar thaobh clé de bhosca teorainneacha an geoiméadrachta cuardaigh.
Sampla:
Zipcode.objects.filter(poly__overlaps_left=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly &< geom
overlaps_rightLink to this heading
< https://postgis.net/docs/ST_Geometry_Overright.html>*Infhaighteacht*: `PostGIS`__, PGraster (Déthaobhach)
Tástálacha má théann bosca teorainneacha an réimse geoiméadrachta forluí nó má tá sé ar dheis de bhosca teorainneacha an geoiméadrachta cuardaigh.
Sampla:
Zipcode.objects.filter(poly__overlaps_right=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly &> geom
overlaps_thuasLink to this heading
< https://postgis.net/docs/ST_Geometry_Overabove.html>*Infhaighteacht*: `PostGIS`__, PGraster (Comhshó)
Tástálacha má théann bosca teorainneacha an réimse geoiméadachta forluí nó má tá sé os cionn bosca teorainneacha an geoiméadrachta cuardaigh
Sampla:
Zipcode.objects.filter(poly__overlaps_above=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly |&> geom
overlaps_thíosLink to this heading
< https://postgis.net/docs/ST_Geometry_Overbelow.html>*Infhaighteacht*: `PostGIS`__, PGraster (Comhshó)
Tástálacha má théann bosca teorainneacha an réimse geoiméadrachta forluí nó má tá sé faoi bhun bosca teorainneacha an ghéimseadrachta cu
Sampla:
Zipcode.objects.filter(poly__overlaps_below=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly &<| geom
docht thuasLink to this heading
< https://postgis.net/docs/ST_Geometry_Above.html>*Infhaighteacht*: `PostGIS`__, PGraster (Comhshó)
Tástálacha má tá bosca teorainneacha an réimse geoiméadachta go docht os cionn bosca teorainneacha an ghéimseadra cuardaigh.
Sampla:
Zipcode.objects.filter(poly__strictly_above=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly |>> geom
``docht thíos ``Link to this heading
< https://postgis.net/docs/ST_Geometry_Below.html>*Infhaighteacht*: `PostGIS`__, PGraster (Comhshó)
Tástálacha má tá bosca teorainneacha an réimse geoiméadrach faoi bhun bosca teorainneacha an ghéimseadrachta cuardaigh.
Sampla:
Zipcode.objects.filter(poly__strictly_below=geom)
Coibhéis PostGIS:
SELECT ... WHERE poly <<| geom
Cuardaigh FadLink to this heading
Availability: PostGIS, Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Native)
<distance-queries>Le haghaidh forbhreathnú ar cheisteanna achair a dhéanamh, féach le do thoil faoir:ref: `réamhrá ceisteanna achair `.
Tá an fhoirm seo a leanas ag cuardach achair:
<field>__<distance lookup>=(<geometry/raster>, <distance value>[, "spheroid"])
<field>__<distance lookup>=(<raster>, <band_index>, <distance value>[, "spheroid"])
<field>__<band_index>__<distance lookup>=(<raster>, <band_index>, <distance value>[, "spheroid"])
Is é an luach a chuirtear isteach i gcuardach achair; tá an chéad dá luach éigeantach, agus is iad an geoiméadra chun achair a ríomh, agus luach achair (uimhir in aonaid den réimse, a: aicme: ~django.contrib.gis.Measure.distance réad, nó a:doc: `</ref/models/expressions> léiriú fiosraithe'). Chun innéacs banna a chur chuig an lorg, bain úsáid as 3-tuple ina bhfuil an dara iontráil an t-innéacs banna.
Ar gach cuardach achair ach amháin: lookup: dwithin, féadfar eilimint roghnach, spheroid, a chur san áireamh chun na feidhmeanna ríofa achair spheroid níos cruinne a úsáid ar réimsí le córas comhordaithe geodéiseach.
< https://postgis.net/docs/ST_Distance_Spheroid.html> < https://postgis.net/docs/ST_DistanceSphere.html>Ar PostgreSQL, úsáideann an rogha 'spheroid' `ST_distanceSpheroid`__ in ionad `ST_distanceSphere`__. Úsáidtear an fheidhm `ST_distance`__ níos simplí le córais chomhordaithe ré< https://postgis.net/docs/ST_Distance.html> amh-mheasta. Déantar rasters a thiontú go geoiméadraí le haghaidh cuardaigh bunaithe ar spheroid.
Fachad_gtLink to this heading
Tugann samhlacha ar ais ina bhfuil an fad chuig an réimse geoiméadais ón gcéimseadra cuardaigh níos mó ná an luach achair a thugtar.
Sampla:
Zipcode.objects.filter(poly__distance_gt=(geom, D(m=5)))
Cúltaca |
Coibhéis SQL |
|---|---|
PostGIS |
|
MariaDB |
|
MySQL |
|
Oracle |
|
Spatialite |
|
achtar_gteLink to this heading
Tugann samhlacha ar ais ina bhfuil an fad chuig an réimse geoiméadais ón gcéimseadra cuardaigh níos mó ná nó cothrom leis an luach achair ar leith.
Sampla:
Zipcode.objects.filter(poly__distance_gte=(geom, D(m=5)))
Cúltaca |
Coibhéis SQL |
|---|---|
PostGIS |
|
MariaDB |
|
MySQL |
|
Oracle |
|
Spatialite |
|
Fachad_ltLink to this heading
Tugann samhlacha ar ais ina bhfuil an fad go réimse an geoiméadais ón gcéimseadra cuardaigh níos lú ná an luach achair a thugtar.
Sampla:
Zipcode.objects.filter(poly__distance_lt=(geom, D(m=5)))
Cúltaca |
Coibhéis SQL |
|---|---|
PostGIS |
|
MariaDB |
|
MySQL |
|
Oracle |
|
Spatialite |
|
Fachad_lteLink to this heading
Tugann samhlacha ar ais ina bhfuil an fad chuig an réimse geoiméadais ón gcéimseadra cuardaigh níos lú ná nó cothrom leis an luach achair ar leith.
Sampla:
Zipcode.objects.filter(poly__distance_lte=(geom, D(m=5)))
Cúltaca |
Coibhéis SQL |
|---|---|
PostGIS |
|
MariaDB |
|
MySQL |
|
Oracle |
|
Spatialite |
|
``thíníLink to this heading
Tuairisceáin samhlacha ina bhfuil an fad go réimse an geoiméadais ón gcéimseadra cuardaigh laistigh den achar sonraithe óna chéile. Tabhair faoi deara nach féidir leat rudaí:class: ~django.contrib.gis.Measure.distance a sholáthar ach má tá na geoiméadrachtaí spriocdhírithe i gcóras réamh-mheasta. Maidir le geoiméadraí geografacha, ba chóir duit aonaid den réimse geoiméadrach a úsáid (m.sh. céimeanna do WGS84`).
Sampla:
Zipcode.objects.filter(poly__dwithin=(geom, D(m=5)))
Feidhmeanna ChomLink to this heading
Soláthraíonn Django roinnt feidhmeanna comhiomlán atá sonrach le GIS. Le haghaidh sonraí maidir le conas na feidhmeanna comhiomlána seo a úsáid, féach:doc: `an treoir ábhair ar chomhiomlán' </topics/db/aggregation>.
Argóint Eochairfho |
Cur síos |
|---|---|
``lamháltas `` |
This keyword is for Oracle only. It is for the
tolerance value used by the |
Sampla:
>>> from django.contrib.gis.db.models import Extent, Union
>>> WorldBorder.objects.aggregate(Extent("mpoly"), Union("mpoly"))
BailiúchLink to this heading
- class Collect(geo_field, filter=None)Link to this definition
Availability: PostGIS, MariaDB, MySQL, SpatiaLite
Filleann sé réad geoiméadachta GEOMETRYCOLLECTION nó réad geoiméadais MULTI ón gcolún geoiméadrach. Tá sé seo cosúil le leagan simplithe den chomhiomlán: aicme: Union, ach amháin gur féidir leis a bheith roinnt orduithe méide níos tapa ná aontas a dhéanamh toisc go rollaíonn sé geoiméadraí i mbailiúchán nó ilréad, gan cúram faoi theorainneacha a thuaslagadh.
Faoi láimhseLink to this heading
- class Extent(geo_field, filter=None)Link to this definition
< https://postgis.net/docs/ST_Extent.html>*Infhaighteacht*: `PostGIS`__, Oracle, Spatialite
Tugann sé ar ais méid na geo_field` go léir sa QuerySet mar 4-tuple, lena n-áirítear an comhordanáid íochtarach ar chlé agus an comhordanáid uachtarach ar dheis.
Sampla:
>>> qs = City.objects.filter(name__in=("Houston", "Dallas")).aggregate(Extent("poly"))
>>> print(qs["poly__extent"])
(-96.8016128540039, 29.7633724212646, -95.3631439208984, 32.782058715820)
Extent3DLink to this heading
- class Extent3D(geo_field, filter=None)Link to this definition
< https://postgis.net/docs/ST_3DExtent.html>*Infhaighteacht*: `PostGis`__
Filleann sé méid 3D gach geo_field sa QuerySet` mar thúpla 6, lena n-áirítear an comhordanáid íochtarach ar chlé agus an comhordanáid uachtarach ar dheis (gach ceann acu le comhordanáidí x, y, agus z).
Sampla:
>>> 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)
MakelineLink to this heading
- class MakeLine(geo_field, filter=None)Link to this definition
< https://postgis.net/docs/ST_MakeLine.html>*Infhaighteacht*: `PostGis`__, Spatialite
Filleann sé Linestring a tógadh ó na geoiméadrachtaí réimse pointe sa QuerySet. Faoi láthair, níl aon éifeacht ag ordú an tacar fiosrúcháin.
Sampla:
>>> qs = City.objects.filter(name__in=("Houston", "Dallas")).aggregate(MakeLine("poly"))
>>> print(qs["poly__makeline"])
LINESTRING (-95.3631510000000020 29.7633739999999989, -96.8016109999999941 32.7820570000000018)
AontasLink to this heading
- class Union(geo_field, filter=None)Link to this definition
< https://postgis.net/docs/ST_Union.html>*Infhaighteacht*: `PostGIS`__, Oracle, Spatialite
Tugann an modh seo a: aicme: ~django.contrib.gis.geos.geosgeometry réad a chuimsíonn aontas gach geoiméadair sa tacar fiosrúcháin. Tabhair faoi deara le do thoil go bhfuil úsáid “Union” dian ar phróiseálaí agus go bhféadfadh sé go dtógfadh sé go leor ama ar cheisteanna móra.
Sampla:
>>> 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.
Fonótaí