Fungsi Basisdata GeografisΒΆ
Fungsi-fungsi terdokumentasi pada halaman ini mengizinkan pengguna mengakses fungsi basisdata geografis untuk digunakan dalam keterangan, pengumpulan, atau penyaringan dalam Django.
Example:
>>> 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.
Ringkasan fungsi:
Pengukuran |
Hubungan |
Operasi |
Penyunting |
Input format |
Bentuk keluaran |
Bermacam-macam |
|---|---|---|---|---|---|---|
AreaΒΆ
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.
AsGeoJSONΒΆ
Availability: 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:
>>> City.objects.annotate(json=AsGeoJSON("point")).get(name="Chicago").json
{"type":"Point","coordinates":[-87.65018,41.85039]}
Argumen Katakunci |
Deskripsi |
|---|---|
|
Set this to |
|
Set this to |
|
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. |
AsGMLΒΆ
Tersedia: Oracle, PostGIS, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan perwakilan Geographic Markup Language (GML)Β dari geometri.
Example:
>>> 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 |
|---|---|
|
Menentukan sejumlah angka penting untuk kordinat dalam perwakilan GML -- nilai awalan adalah 8. Abaikan pada Oracle. |
|
Menentukan versi GML untuk menggunakan: 2 (awalan) atau 3. |
AsKMLΒΆ
Tersedia: PostGIS, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan perwakilan Keyhole Markup Language (KML) dari geometri.
Example:
>>> 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 |
|---|---|
|
Katakunci ini mungkin digunakan untuk menentukan sejumlah angka penting untuk kordinat dalam perwakilan KML -- nilai awalan adalah 8. |
AsSVGΒΆ
Tersedia: PostGIS, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan sebuah perwakilan Scalable Vector Graphics (SVG) dari geometri.
Argumen Katakunci |
Deskripsi |
|---|---|
|
Jika disetel ke |
|
Katakunci mungkin digunakan untuk menentukan sejumlah angka penting untuk kordinat dalam perwakilan SVG -- nilai awalan adalah 8. |
AsWKBΒΆ
Availability: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite
Accepts a single geographic field or expression and returns a Well-known binary (WKB) representation of the geometry.
Example:
>>> 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@'
AsWKTΒΆ
Availability: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite
Accepts a single geographic field or expression and returns a Well-known text (WKT) representation of the geometry.
Example:
>>> City.objects.annotate(wkt=AsWKT("point")).get(name="Chelyabinsk").wkt
'POINT (55.137555 61.451728)'
AzimuthΒΆ
Availability: 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.
BoundingCircleΒΆ
Availability: 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.
SpatiaLite 5.1+ support was added.
CentroidΒΆ
Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite
Menerima bidang geografis tunggal atau mengembalikan nilai centroid dari geometri.
ClosestPointΒΆ
Availability: PostGIS, SpatiaLite
Accepts two geographic fields or expressions and returns the 2-dimensional point on geometry A that is closest to geometry B.
DifferenceΒΆ
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.
DistanceΒΆ
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:
>>> 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
...
Catatan
Karena atibut distance adalah sebuah obyek Distance, anda dapat dengan menudah menyatakan nilai dalam satuan dari pilihan anda. Sebagai contoh, city.distance.mi adalah jarak dalam mil dan city.distance.km adalah nilai jarak dalam kilometer. Lihat Obyek Pengukuran untuk rincian penggunaan dan daftar dari Satuan Didukung.
EnvelopeΒΆ
Availability: MariaDB, MySQL, Oracle, PostGIS, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri mewakili kotak batasan dari geometri.
ForcePolygonCWΒΆ
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.
FromWKBΒΆ
Availability: 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.
The srid argument was added.
FromWKTΒΆ
Availability: 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.
The srid argument was added.
GeoHashΒΆ
Availability: 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.
GeometryDistanceΒΆ
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.
IntersectionΒΆ
Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite
Menerima dua bidang geografi dan pernyataan dan mengembalikan persimpangan geometri diantara mereka.
IsEmptyΒΆ
Availability: 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.
IsValidΒΆ
Availability: 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.
LengthΒΆ
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.
LineLocatePointΒΆ
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.
MakeValidΒΆ
Availability: 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.
MemSizeΒΆ
Tersedia: PostGIS
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan ukuran memori (sejumlah byte) yang bidang geometri ambil.
NumGeometriesΒΆ
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.
NumPointsΒΆ
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.
PerimeterΒΆ
Tersedia: PostGIS, Oracle, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan lingakran dari bidang geometri sebagai sebuah obyek Distance.
PointOnSurfaceΒΆ
Ketersediaan: PostGIS, MariaDB, Oracle, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan Point geometri dijamin berbohong pada permukaan dari bidang; sebaliknya mengembalikan None.
ReverseΒΆ
Tersedia: PostGIS, Oracle, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri dengan kordinat terbalik.
ScaleΒΆ
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.
SnapToGridΒΆ
Tersedia: PostGIS, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri dengan semua titik diambil pada jala yang diberikan. Bagaimana geometri diambil pada jala tergantung pada seberapa banyak argumen numerik (baik itu float, integer, atau long) diberikan.
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. |
SymDifferenceΒΆ
Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite
Menerima dua bidang geografis atau pernyataan dan mengembalikan perbedaan simetrik geografis (penyatuan tanpa persimpangan) diantara parameter diberikan.
TransformΒΆ
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.
Catatan
Apa sistem acuan spasial sebuah integer SRID berhubungan mungkin bergantung pada basisdata spasial yang digunakan. Dengan kata lain, angka SRID digunakan untuk Oracle tidak perlu sama seperti itu yang digunakan oleh PostGIS.
TranslateΒΆ
Tersedia: PostGIS, SpatiaLite
Menerima bidang geografis tunggal atau pernyataan dan mengembalikan geometri dengan kordinat penyeimbangnya oleh parameter angka x, y, dan pilihannya z.
UnionΒΆ
Ketersediaan: MariaDB, MySQL, PostGIS, Oracle, SpatiaLite
Menerima dua bidang geografi atau pernyataan dan mengembalikan gabungan dari kedua geometri.