Fungsi Basisdata GeografisLink to this heading

Fungsi-fungsi terdokumentasi pada halaman ini mengizinkan pengguna mengakses fungsi basisdata geografis untuk digunakan dalam keterangan, pengumpulan, atau penyaringan dalam Django.

Example:

Python console
>>> from django.contrib.gis.db.models.functions import Length
>>> Track.objects.annotate(length=Length("line")).filter(length__gt=100)

Tidak semua backend mendukung semua fungsi, jadi mengacu pada dokumentasi dari setiap fungsi untuk melihat jika backend basisdata anda mendukung anda ingin gunakan. Jika anda memanggil fungsi geografis pada backend yang tidak mendukung itu, anda akan mendapatkan pengecualian NotImplementedError.

MeasurementsLink to this heading

AreaLink to this heading

class Area(expression, **extra)Link to this definition

Availability: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan kawasan bidang sebagai sebuah ukuran Area.

MySQL and SpatiaLite without LWGEOM/RTTOPO don't support area calculations on geographic SRSes.

DistanceLink to this heading

class Distance(expr1, expr2, spheroid=None, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima dua bidang geografis atau pernyataan dan mengembalikan jarak diantara mereka, seperti sebuah obyek Distance, nilai float mentah dikembalikan ketika kordinat adalah geodetik.

Pada backend yang mendukung perhitungan jarak pada kordinat geodetik, fungsi backend sesuai otomatis dipilih tergantung pada nilai SRID dari geometri (misalnya ST_DistanceSphere pada PostGIS).

Ketika jarak dihitung dengan kordinat (bersiku-siku) geodetic, seperti halnya dengan awalan SRID WGS84 (4326), anda dapat menyetel argumen kata kunci spheroid untuk memutuskan jika perhitungan harus berdasarkan pada bulatan sederhana (kurang akurat, kurang sumber daya-intensif) atau pada sebuah berbentuk bola (lebih akurat, lebih sumber daya-intensif)

In the following example, the distance from the city of Hobart to every other PointField in the AustraliaCity queryset is calculated:

Python console
>>> from django.contrib.gis.db.models.functions import Distance
>>> pnt = AustraliaCity.objects.get(name="Hobart").point
>>> for city in AustraliaCity.objects.annotate(distance=Distance("point", pnt)):
...     print(city.name, city.distance)
...
Wollongong 990071.220408 m
Shellharbour 972804.613941 m
Thirroul 1002334.36351 m
...

GeometryDistanceLink to this heading

class GeometryDistance(expr1, expr2, **extra)Link to this definition

Ketersediaan: PostGIS

Accepts two geographic fields or expressions and returns the distance between them. When used in an order_by() clause, it provides index-assisted nearest-neighbor result sets.

LengthLink to this heading

class Length(expression, spheroid=True, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Menerima bidang linestring geografis tunggal atau banyak linestring atau pernyataan dan mengembalikan panjangnya sebagai ukuran Distance.

Pada PostGIS dan SpatiaLite, ketika kordinat adalah geodetik (siku), anda dapat menentukan jika perhitungan harus berdasarkan pada bidang sederhana (kurang akurat, kurang sumber-daya-intensif) atau pada sebuah bidang (lebih akurat, lebih sumber-daya-intensif) dengan argumen kata kunci spheroid.

MySQL tidak mendukung dukungan perhitungan panjang pada geografis SRS.

PerimeterLink to this heading

class Perimeter(expression, **extra)Link to this definition

Tersedia: PostGIS, Oracle, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan lingakran dari bidang geometri sebagai sebuah obyek Distance.

HubunganLink to this heading

AzimuthLink to this heading

class Azimuth(point_a, point_b, **extra)Link to this definition

Ketersediaan: PostGIS, SpatiaLite (LWGEOM/RTTOPO)

Mengembalikan azimut dalam radian dari segmen ditentukan oleh titik geometri yang diberikan, atau None jila dia titik bertemu. Azimut adalah sudut diacukan dari utara dan positif jarumg jam: utara = 0; timur= π/2; selatan = π; barat = 3π/2.

BoundingCircleLink to this heading

class BoundingCircle(expression, num_seg=48, **extra)Link to this definition

Ketersediaan: PostGIS, Oracle, SpatiaLite 5.1+

menerima bidang geografis tunggal atau pernyataan dan mengembalikan lingkaran poligon terkecil yang dapat sepenuhnya mengandung geometri.

Parameter num_seg hanya digunakan pada PostGIS.

CentroidLink to this heading

class Centroid(expression, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima bidang geografis tunggal atau mengembalikan nilai centroid dari geometri.

ClosestPointLink to this heading

class ClosestPoint(expr1, expr2, **extra)Link to this definition

Ketersediaan: PostGIS, SpatiaLite

Accepts two geographic fields or expressions and returns the 2-dimensional point on geometry A that is closest to geometry B.

EnvelopeLink to this heading

class Envelope(expression, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri mewakili kotak batasan dari geometri.

LineLocatePointLink to this heading

class LineLocatePoint(linestring, point, **extra)Link to this definition

Ketersediaan: PostGIS, SpatiaLite

Mengembalikan sebuah float diantara 0 dan 1 mewakili tempat dari titik terdekat di linestring pada point yang diberikan, sebagai sebuah pecahan dari panjang garis 2D.

PointOnSurfaceLink to this heading

class PointOnSurface(expression, **extra)Link to this definition

Ketersediaan: PostGIS, MariaDB, Oracle, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan Point geometri dijamin berbohong pada permukaan dari bidang; sebaliknya mengembalikan None.

OperasiLink to this heading

DifferenceLink to this heading

class Difference(expr1, expr2, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima dua bidang geografis atau pernyataan dan mengembalikan perbedaan geometri, yaitu bagian dari geometri A yang tidak berinteraksi dengan geometri B.

IntersectionLink to this heading

class Intersection(expr1, expr2, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima dua bidang geografi dan pernyataan dan mengembalikan persimpangan geometri diantara mereka.

SymDifferenceLink to this heading

class SymDifference(expr1, expr2, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima dua bidang geografis atau pernyataan dan mengembalikan perbedaan simetrik geografis (penyatuan tanpa persimpangan) diantara parameter diberikan.

UnionLink to this heading

class Union(expr1, expr2, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima dua bidang geografi atau pernyataan dan mengembalikan gabungan dari kedua geometri.

PenyuntingLink to this heading

ForcePolygonCWLink to this heading

class ForcePolygonCW(expression, **extra)Link to this definition

Ketersediaan: PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan versi terubah dari poligon/banyak poligon dimana semua lingkaran eksterior diorientasikan searah jarum jam dan semua lingkaran interior berorientasikan berlawanan jarum jam. Geometri bukan-geometri dikembalikan tidak berubah.

MakeValidLink to this heading

class MakeValid(expr)Link to this definition

Ketersediaan: PostGIS, SpatiaLite (LWGEOM/RTTOPO)

Menerima bidang geografis tunggal atau pernyataan dan berusaha merubah nilai menjadi geometri sah tanpakehilangan masukan simpul apapun. Geometri yang sudah sah dikembalikan tanpa perubahan. Poligon sederhana mungkin menjadi poligon banyak dan hasil mungkin berupa dimensi rendah daripada masukan.

ReverseLink to this heading

class Reverse(expression, **extra)Link to this definition

Tersedia: PostGIS, Oracle, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri dengan kordinat terbalik.

RotateLink to this heading

class Rotate(expression, angle, origin=None, **extra)Link to this definition

Availability: PostGIS

Rotates a geometry by a specified angle around the origin. Optionally, the rotation can be performed around a point, defined by the origin parameter.

ScaleLink to this heading

class Scale(expression, x, y, z=0.0, **extra)Link to this definition

Tersedia: PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri dengan kordinat ditingkatkan dengan mengalikan mereka dengan parameter x, y, dan pilihannya z.

SnapToGridLink to this heading

class SnapToGrid(expression, *args, **extra)Link to this definition

Tersedia: PostGIS, SpatiaLite

Accepts a single geographic field or expression and returns a geometry with all points snapped to the given grid. How the geometry is snapped to the grid depends on how many numeric (either float, integer, or long) arguments are given.

Jumlah Argumen

Deskripsi

1

A single size to snap both the X and Y grids to.

2

X and Y sizes to snap the grid to.

4

Ukuran X, Y dan berhubungan asli X,Y.

TransformLink to this heading

class Transform(expression, srid, **extra)Link to this definition

Tersedia: PostGIS, Oracle, SpatiaLite

Menerima sebuah bidang geografis atau pernyataan dan kode integer SRID, dan mengembalikan geometri diubah ke sistem acuan spasial ditentukan oleh parameter srid.

TranslateLink to this heading

class Translate(expression, x, y, z=0.0, **extra)Link to this definition

Tersedia: PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri dengan kordinat penyeimbangnya oleh parameter angka x, y, dan pilihannya z.

Input formatLink to this heading

FromWKBLink to this heading

class FromWKB(expression, srid=0, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Creates geometry from Well-known binary (WKB) representation. The optional srid argument allows to specify the SRID of the resulting geometry. srid is ignored on Oracle.

FromWKTLink to this heading

class FromWKT(expression, srid=0, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Creates geometry from Well-known text (WKT) representation. The optional srid argument allows to specify the SRID of the resulting geometry. srid is ignored on Oracle.

Bentuk keluaranLink to this heading

AsGeoJSONLink to this heading

class AsGeoJSON(expression, bbox=False, crs=False, precision=8, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Accepts a single geographic field or expression and returns a GeoJSON representation of the geometry. Note that the result is not a complete GeoJSON structure but only the geometry key content of a GeoJSON structure. See also Penserial GeoJSON.

Example:

Python console
>>> City.objects.annotate(json=AsGeoJSON("point")).get(name="Chicago").json
{"type":"Point","coordinates":[-87.65018,41.85039]}

Argumen Katakunci

Deskripsi

bbox

Set this to True if you want the bounding box to be included in the returned GeoJSON. Ignored on Oracle.

crs

Set this to True if you want the coordinate reference system to be included in the returned GeoJSON. Ignored on MySQL and Oracle.

ketelitian

It may be used to specify the number of significant digits for the coordinates in the GeoJSON representation -- the default value is 8. Ignored on Oracle.

AsGMLLink to this heading

class AsGML(expression, version=2, precision=8, **extra)Link to this definition

Tersedia: Oracle, PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan perwakilan Geographic Markup Language (GML) dari geometri.

Example:

Python console
>>> qs = Zipcode.objects.annotate(gml=AsGML("poly"))
>>> print(qs[0].gml)
<gml:Polygon srsName="EPSG:4326"><gml:OuterBoundaryIs>-147.78711,70.245363 ...
-147.78711,70.245363</gml:OuterBoundaryIs></gml:Polygon>

Argumen Katakunci

Deskripsi

ketelitian

Menentukan sejumlah angka penting untuk kordinat dalam perwakilan GML -- nilai awalan adalah 8. Abaikan pada Oracle.

versi

Menentukan versi GML untuk menggunakan: 2 (awalan) atau 3.

AsKMLLink to this heading

class AsKML(expression, precision=8, **extra)Link to this definition

Tersedia: PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan perwakilan Keyhole Markup Language (KML) dari geometri.

Example:

Python console
>>> qs = Zipcode.objects.annotate(kml=AsKML("poly"))
>>> print(qs[0].kml)
<Polygon><outerBoundaryIs><LinearRing><coordinates>-103.04135,36.217596,0 ...
-103.04135,36.217596,0</coordinates></LinearRing></outerBoundaryIs></Polygon>

Argumen Katakunci

Deskripsi

ketelitian

Katakunci ini mungkin digunakan untuk menentukan sejumlah angka penting untuk kordinat dalam perwakilan KML -- nilai awalan adalah 8.

AsSVGLink to this heading

class AsSVG(expression, relative=False, precision=8, **extra)Link to this definition

Tersedia: PostGIS, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan sebuah perwakilan Scalable Vector Graphics (SVG) dari geometri.

Argumen Katakunci

Deskripsi

relative

Jika disetel ke True, jalur data akan diterapkan dalam ketentuan dari pergerakan relatif. Awalan menjadi ``False11, berarti bahwa perpindahan mutlak digunakan sebagai gantinya.

ketelitian

Katakunci mungkin digunakan untuk menentukan sejumlah angka penting untuk kordinat dalam perwakilan SVG -- nilai awalan adalah 8.

AsWKBLink to this heading

class AsWKB(expression, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Accepts a single geographic field or expression and returns a Well-known binary (WKB) representation of the geometry.

Example:

Python console
>>> bytes(City.objects.annotate(wkb=AsWKB("point")).get(name="Chelyabinsk").wkb)
b'\x01\x01\x00\x00\x00]3\xf9f\x9b\x91K@\x00X\x1d9\xd2\xb9N@'

AsWKTLink to this heading

class AsWKT(expression, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite

Accepts a single geographic field or expression and returns a Well-known text (WKT) representation of the geometry.

Example:

Python console
>>> City.objects.annotate(wkt=AsWKT("point")).get(name="Chelyabinsk").wkt
'POINT (55.137555 61.451728)'

GeoHashLink to this heading

class GeoHash(expression, precision=None, **extra)Link to this definition

Availability: MariaDB, MySQL, PostGIS, SpatiaLite (LWGEOM/RTTOPO)

Menerima bidang geografi tunggal atau pernyataan dan mengembalikan perwakilan GeoHash dari geometri.

Argumen kata kunci precision mengendalikan sejumlah karakter dalam hasilnya.

Bermacam-macamLink to this heading

IsEmptyLink to this heading

class IsEmpty(expr)Link to this definition

Ketersediaan: PostGIS

Accepts a geographic field or expression and tests if the value is an empty geometry. Returns True if its value is empty and False otherwise.

IsValidLink to this heading

class IsValid(expr)Link to this definition

Availability: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima sebuah bidang geografi atau pernyataan dan percobaan jika nilai berbentuk bagus. Mengembalikan True jika nilainya adalah geometri sah dan False sebaliknya.

GeometryTypeLink to this heading

class GeometryType(expr)Link to this definition

Availability: PostGIS, Oracle 23c+, MariaDB, MySQL, SpatiaLite

Accepts a geographic field or expression and returns its geometry type.

MemSizeLink to this heading

class MemSize(expression, **extra)Link to this definition

Tersedia: PostGIS

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan ukuran memori (sejumlah byte) yang bidang geometri ambil.

NumGeometriesLink to this heading

class NumGeometries(expression, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan sejumlah geometri jika bidang geometri adalah kumpulan (misalnya, bidang GEOMETRYCOLLECTION atau MULTI*). mengembalikan 1 untuk geometri tunggal.

Pada MySQL, mengembalikan None untuk geometri tunggal.

NumPointsLink to this heading

class NumPoints(expression, **extra)Link to this definition

Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite

Menerima bidang geografis tunggal atau pernyataan dan mengembalikan sejumlah titik dalam sebuah geometri.

Pada MySQL, mengembalikan None untuk geometri bukan-LINESTRING apapun.