API GEOSLink to this heading

Latar belakangLink to this heading

Apa itu GEOS?Link to this heading

GEOS kepanjangan untuk Geometry Engine - Open Source, dan adalah sebuah pustaka C++, dihubungkan dari Java Topology Suite. GEOS menerapkan OpenGIS Simple Features for SQL fungsi predikat spasial dan penghubung spasial. GEOS, sekarang sebuah proyek OSGeo, yang aslinya dikembangkan dan dirawat oleh Refractions Research dari Victoria, Canada.

FiturLink to this heading

GeoDjango menerapkan pembungkus Python tingkat-tinggi untuk pustaka GEOS, fitur-fiturnya termasuk:

  • Sebuah antarmuka berlisensi-BSD pada rutin geometri GEOS, diterapkan sepenuhnya dalam Python menggunakan ctypes.

  • Loosely-coupled to GeoDjango. For example, GEOSGeometry objects may be used outside of a Django project/application. In other words, no need to have DJANGO_SETTINGS_MODULE set or use a database, etc.

  • Berubah-ubah: obyek GEOSGeometry mungkin dirubah.

  • Lintas-serambi dan teruji; cocok dengan serambi Windows, Linux, Solaris, dan macOS.

Pengajaran tambahanLink to this heading

Bagian ini mengandung perkenalan singkat dan pengajaran tambahan menggunakan obyek GEOSGeometry.

Membuat GeometriLink to this heading

Obyek GEOSGeometry mungkin dibuat dalam beberapa cara. Pertama cukup menginstansiasi obyek pada beberapa masukan spasial -- berikut adalah contoh dari membuat geometri sama dari WKT, HEX, WKB, dan GeoJSON:

Code
>>> from django.contrib.gis.geos import GEOSGeometry
>>> pnt = GEOSGeometry('POINT(5 23)') # WKT
>>> pnt = GEOSGeometry('010100000000000000000014400000000000003740') # HEX
>>> pnt = GEOSGeometry(memoryview(b'\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14@\x00\x00\x00\x00\x00\x007@')) # WKB
>>> pnt = GEOSGeometry('{ "type": "Point", "coordinates": [ 5.000000, 23.000000 ] }') # GeoJSON

Pilihan lain adalah menggunakan pembangun untuk jenis geometri khusus yang anda harap dibuat. Sebagai contoh, obyek Point mungkin dibuat dengan melewatkan dalam kordinat X dan Y kedalam pembangunnya:

Code
>>> from django.contrib.gis.geos import Point
>>> pnt = Point(5, 23)

Semua pembangun ini mengambil argumen kata kunci srid. Sebagai contoh:

Code
>>> from django.contrib.gis.geos import GEOSGeometry, LineString, Point
>>> print(GEOSGeometry('POINT (0 0)', srid=4326))
SRID=4326;POINT (0 0)
>>> print(LineString((0, 0), (1, 1), srid=4326))
SRID=4326;LINESTRING (0 0, 1 1)
>>> print(Point(0, 0, srid=32140))
SRID=32140;POINT (0 0)

Akhirnya, ada metode pabrik fromfile() yang mengembalikan obyek GEOSGeometry dari sebuah berkas:

Code
>>> from django.contrib.gis.geos import fromfile
>>> pnt = fromfile('/path/to/pnt.wkt')
>>> pnt = fromfile(open('/path/to/pnt.wkt'))

Geometri adalah PythonicLink to this heading

Obyek-obyek GEOSGeometry adalah 'Pythonic', dengan kata lain komponen-komponen dapat diakses, dirubah, dan diperulangkan menggunakan kebiasaan Python standar. Sebagai contoh, anda dapat mengulangi kordinat dalam Point:

Code
>>> pnt = Point(5, 23)
>>> [coord for coord in pnt]
[5.0, 23.0]

Dengan obyek geometri apapun, sifat GEOSGeometry.coords mungkin digunakan untuk mendapatkan kordinat geometri sebagai sebuah tuple Python:

Code
>>> pnt.coords
(5.0, 23.0)

Anda dapat mendapatkan/menyetel komponen geometri menggunakan teknik-teknik pengindeksan Python standar. bagaimanapun, apa yang dikembalikan bergantung pada jenis geometri dari obyek. Sebagai contoh, pengindeksan pada LineString mengembalikan sebuah kordinat tuple:

Code
>>> from django.contrib.gis.geos import LineString
>>> line = LineString((0, 0), (0, 50), (50, 50), (50, 0), (0, 0))
>>> line[0]
(0.0, 0.0)
>>> line[-2]
(50.0, 0.0)

Dimana pengindeksan pada Polygon akan mengembalikan lingkaran (sebuah obyek LinearRing) berhubungan pada index:

Code
>>> from django.contrib.gis.geos import Polygon
>>> poly = Polygon( ((0.0, 0.0), (0.0, 50.0), (50.0, 50.0), (50.0, 0.0), (0.0, 0.0)) )
>>> poly[0]
<LinearRing object at 0x1044395b0>
>>> poly[0][-2] # second-to-last coordinate of external ring
(50.0, 0.0)

Sebagai tambahan, kordinat/komponen dari geometri mungkin ditambahkan atau dirubah, seperti list Python:

Code
>>> line[0] = (1.0, 1.0)
>>> line.pop()
(0.0, 0.0)
>>> line.append((1.0, 1.0))
>>> line.coords
((1.0, 1.0), (0.0, 50.0), (50.0, 50.0), (50.0, 0.0), (1.0, 1.0))

Geometri mendukung penghubung set-like:

Code
>>> from django.contrib.gis.geos import LineString
>>> ls1 = LineString((0, 0), (2, 2))
>>> ls2 = LineString((1, 1), (3, 3))
>>> print(ls1 | ls2)  # equivalent to `ls1.union(ls2)`
MULTILINESTRING ((0 0, 1 1), (1 1, 2 2), (2 2, 3 3))
>>> print(ls1 & ls2)  # equivalent to `ls1.intersection(ls2)`
LINESTRING (1 1, 2 2)
>>> print(ls1 - ls2)  # equivalent to `ls1.difference(ls2)`
LINESTRING(0 0, 1 1)
>>> print(ls1 ^ ls2)  # equivalent to `ls1.sym_difference(ls2)`
MULTILINESTRING ((0 0, 1 1), (2 2, 3 3))

Obyek GeometriLink to this heading

GEOSGeometryLink to this heading

class GEOSGeometry(geo_input, srid=None)Link to this definition
Parameter:
  • geo_input -- Nilai masukan geometri (string atau buffer)

  • srid (int) -- penciri acuan spasial

Ini adalah kelas dasar untuk semua obyek geometri GEOS. Itu menginisialisasikan pada argumen geo_input yang diberikan, dan kemudian mengganggap subkelas geometri sesuai (misalnya, GEOSGeometry('POINT(1 1)') akan membuat sebuah obyek Point).

Parameter srid, jika diberikan, disetel sebagai SRID dari geometri dibuat jika geo_input tidak memiliki SRID. Jika SRID berbeda disediakan melalui geo_input dan parameter srid, ValueError dimunculkan:

Code
>>> from django.contrib.gis.geos import GEOSGeometry
>>> GEOSGeometry('POINT EMPTY', srid=4326).ewkt
'SRID=4326;POINT EMPTY'
>>> GEOSGeometry('SRID=4326;POINT EMPTY', srid=4326).ewkt
'SRID=4326;POINT EMPTY'
>>> GEOSGeometry('SRID=1;POINT EMPTY', srid=4326)
Traceback (most recent call last):
...
ValueError: Input geometry already has SRID: 1.

Bentuk-bentuk masukan berikut, bersama dengan jenis-jenis Python yang sesuai, adalah diterima:

Bentuk

Jenis Masukan

WKT / EWKT

str

HEX / HEXEWKB

str

WKB / EWKB

buffer

GeoJSON

str

Untuk bentuk GeoJSON, SRID disetel berdasarkan pada anggota crs. jika crs tidak disediakan, SRID awalan pada 4326.

classmethod GEOSGeometry.from_gml(gml_string)Link to this definition

Membangun sebuah GEOSGeometry dari string GML yang diberikan.

Sifat-sifatLink to this heading

GEOSGeometry.coordsLink to this definition

Mengembalikan kordinat dari geometri sebagai tuple.

GEOSGeometry.dimsLink to this definition

Mengembalikan dimensi dari geometri:

GEOSGeometry.emptyLink to this definition

Mengembalikan apakah atau tidak disetel dari titik-titik dalam geometri adalah kosong.

GEOSGeometry.geom_typeLink to this definition

Mengembalikan string sesuai pada jenis dari geometri. Sebagai contoh:

Code
>>> pnt = GEOSGeometry('POINT(5 23)')
>>> pnt.geom_type
'Point'
GEOSGeometry.geom_typeidLink to this definition

Mengembalikan angka penciri jenis geometri GEOS. Tabel berikut menunjukkan nilai untuk setipa jenis geometri:

GEOSGeometry.num_coordsLink to this definition

Mengembalikan angka dari kordinat di geometri.

GEOSGeometry.num_geomLink to this definition

Mengembalikan sejumlah geometri dalam geometri ini. Dengan kata lain, akan mengembalikan 1 pada apapun kecuali kumpulan geometri.

GEOSGeometry.haszLink to this definition

Mengembalikan sebuah boolean menunjukkan apalah geometri adalah tiga-dimensi.

GEOSGeometry.ringLink to this definition

Mengembalikan sebuah boolean menunjukkan apakah geometri adalah LinearRing.

GEOSGeometry.simpleLink to this definition

Mengembalikan sebuah boolean menunjukkan apakah geometri adalah 'simple'. Sebuah geometri adalah sederhana jika dan hanya jika itu tidak menyilang itu sendiri (kecuali pada titik batasan). Sebagai contoh, sebuah obyek LineString tidak sederhana jika itu bersilangan itu sendiri. Dengan demikian, obyek LinearRing dan Polygon selalu sederhana karena mereka tidak dapat melakukan bersilangan mereka sendiri, menurut pengertian.

GEOSGeometry.validLink to this definition

Mengembalikan sebuah boolean menunjukkan apakah geometri adalah sah.

GEOSGeometry.valid_reasonLink to this definition

Mengembalikan deretan kalimat menggambarkan alasan mengapa geometri sah.

GEOSGeometry.sridLink to this definition

Sifat yang mungkin digunakan untuk mengambil atau menyetel SRID berkaitan dengan geometri. Sebagai contoh:

Code
>>> pnt = Point(5, 23)
>>> print(pnt.srid)
None
>>> pnt.srid = 4326
>>> pnt.srid
4326

Sifat-sifat KeluaranLink to this heading

Sifat dalam bagian ini mengexpor obyek GEOSGeometry menjadi sebuah yang berbeda. Keluaran ini mungkin dalam bentuk string, penyangga, atau bahkan obyek lain.

GEOSGeometry.ewktLink to this definition

Mengembalikan "extended" Well-Known Text dari geometri ini. Perwakilan ini khusus untuk PostGIS dan superset dari standar WKT OGC. [1] Pada dasarnya SRID ditambahkan pada perwakilan WKT, sebagai contoh SRID=4326;POINT(5 23).

GEOSGeometry.hexLink to this definition

Mengembalikan WKB dari Geometri dalam bentuk heksadesimal. Harap catat bahwa nilai SRID tidak disertakan dalam perwakilan ini karena itu bukan bagian dari spesifikasi OGC (gunakan sifat GEOSGeometry.hexewkb sebagai gantinya).

GEOSGeometry.hexewkbLink to this definition

Mengembalikan WKB dari Geometri dalam bentuk heksadesimal. Ini adalah sebuah tambahan dari spesifikasi WKB yang menyertakan nilai SRID yang merupakan bagian dari geometri ini.

GEOSGeometry.jsonLink to this definition

Mengembalikan perwakilan GeoJSON dari geometri. Catat bahwa ahsiladalah bukan struktur GeoJSON lengkap tetapi hanya isi kunci geometry dari struktur GeoJSON. Lihat juga Penserial GeoJSON.

GEOSGeometry.geojsonLink to this definition

Nama lain dari GEOSGeometry.json.

GEOSGeometry.kmlLink to this definition

Mengembalikan perwakilan KML (Keyhole Markup Language) dari geometri. Ini jangan hanya digunakan untuk geometri dengan SRID dari 4326 (WGS84), tetapi pembatasan ini tidak dilaksanakan.

GEOSGeometry.ogrLink to this definition

Mengembalikan obyek OGRGeometry terkait pada permintaan pada geometri GEOS.

GEOSGeometry.wkbLink to this definition

Mengembalikan perwakilan WKB (Well-Known Binary) dari Geometry ini sebagai sebuah penyangga Python. Nilai SRID tidak disertakan, gunakan sifat GEOSGeometry.ewkb sebagai gantinya.

GEOSGeometry.ewkbLink to this definition

Mengembalikan perwakilan EWKB dari Geometry sebagai sebuah penyangga Python. Ini adalah sebuah tambahan dari spesifikasi WKB yang menyertakan nilai SRID apapun yang bagian dari geometri ini.

GEOSGeometry.wktLink to this definition

Mengembalikan Well-Known Text dari geometri (sebuah standar OGC).

Metode Predikat SpasialLink to this heading

Semua dari metode-metode predikat spasial berikut mengambil contoh GEOSGeometry lain (other) sebagai sebuah parameter, dan mengembalikan boolean.

GEOSGeometry.contains(other)Link to this definition

Mengembalikan True jika other.within(this) mengembalikan True.

GEOSGeometry.covers(other)Link to this definition

Mengembalikan True jika geometri mencangkup geometri tertentu.

Sebutan covers mempunyai pengertian kesetaraan berikut:

  • Setiap titik dari geometri lain adalah sebuah titik dari geometri ini.

  • The DE-9IM Intersection Matrix for the two geometries is T*****FF*, *T****FF*, ***T**FF*, or ****T*FF*.

Jika salah satu geometri adalah kosong, kembalikan False.

Prediakt ini mirip pada GEOSGeometry.contains(), tetapi lebih termasuk (yaitu mengembalikan True untuk kasus-kasus lebih). Khususnya, tidak seperti contains() itu tidak membedakan diantara titik-titik dalam batasan dan dalam interior dari geometri. Untuk kebanyakan situasi, covers() harus dipilih pada contains(). Sebagai sebuah keuntungan tambahan, covers() lebih menerima untuk optimalisasi dan karena itu harus mengungguli contains().

GEOSGeometry.crosses(other)Link to this definition

Mengembalikan True jika matriks persimpangan DE-9IM untuk dua geometri adalah T*T****** (untuk titik dan kurva, titik dan kawasan atau baris dan kawasan) 0******** (untuk dua kurva).

GEOSGeometry.disjoint(other)Link to this definition

Mengembalikan True jika matriks persimpangan DE-9IM untuk dua geometri adalah FF*FF****.

GEOSGeometry.equals(other)Link to this definition

Mengembalikan True jika matriks persimpangan DE-9IM untuk dua geometri adalah T*F**FFF*.

GEOSGeometry.equals_exact(other, tolerance=0)Link to this definition

Mengembalikan true jika dua geometri tepatnya setara, sampai toleransi yang ditentukan. Nilai tolerance harus berupa angka floating point mewakili toleransi kesalahan dalam perbandingan, misalnya, poly1.equals_exact(poly2, 0.001) akan membandingkan kesetaraan dalam ribuan dari sebuah satuan.

GEOSGeometry.intersects(other)Link to this definition

Mengembalikan True jika GEOSGeometry.disjoint() adalah False.

GEOSGeometry.overlaps(other)Link to this definition

Mengembalikan True jika matriks persimpangan DE-9IM untuk dua geometri adalah T*T***T** (untuk titik dan kurva, titik dan kawasan atau baris dan kawasan) 1*T***T** (untuk dua kurva).

GEOSGeometry.relate_pattern(other, pattern)Link to this definition

Mengembalikan True jika matriks persimpangan DE-9IM untuk geometri ini dah lainnya cocok pada pattern yang diberikan -- string dari sembilan karakter dari alfabet: {T, F, *, 0}.

GEOSGeometry.touches(other)Link to this definition

Mengembalikan True jika matriks persimpangan DE-9IM untuk dua geometri adalah FT*******, F**T***** or F***T****.

GEOSGeometry.within(other)Link to this definition

Mengembalikan True jika matriks persimpangan DE-9IM untuk dua geometri adalah T*F**F***.

Metode-metode TopologiLink to this heading

GEOSGeometry.buffer(width, quadsegs=8)Link to this definition

Mengembalikan sebuah GEOSGeometry yang mewakili semua titik-titik yang jaraknya dari geometri ini kurang dari atau setara pada width yang diberikan. Kata kunci quadsegs pilihan mensetel angka dari bagian-bagian digunakan untuk memperkirakan seperempat lingkaran (awalan adalah 8).

GEOSGeometry.buffer_with_style(width, quadsegs=8, end_cap_style=1, join_style=1, mitre_limit=5.0)Link to this definition

Sama seperti buffer(), tetapi mengizinkan gaya dari penyangga.

  • end_cap_style dapat berupa round (1), flat (2), atau square (3).

  • join_style dapat berupa round (1), mitre (2), atau bevel (3).

  • Batas rasio siku (mitre_limit) hanya mempengaruhi gaya gabungan sudut.

GEOSGeometry.difference(other)Link to this definition

Mengembalikan GEOSGeometry mewakili titik-titik membuat geometri ini yang tidak membuat lain.

GEOSGeometry.interpolate(distance)Link to this definition
GEOSGeometry.interpolate_normalized(distance)Link to this definition

Diberikan sebuah jarak (float), mengembalikan titik (atau titik terdekat) dalam geometri (LineString atau MultiLineString) pada jarak itu. Versi biasa mengambil jarak sebagai sebuah float diantara 0 (asli) dan 1 (titik akhir).

Membalikkan dari GEOSGeometry.project().

GEOSGeometry.intersection(other)Link to this definition

Mengembalikan GEOSGeometry mewakili titik-titik dibgi oleh geometri ini dan lainnya.

GEOSGeometry.project(point)Link to this definition
GEOSGeometry.project_normalized(point)Link to this definition

Mengembalikan jarak (float) dari asli geometri (LineString atau MultiLineString) ke titik diproyeksikan pada geometri (yaitu pada titik dari baris terdekat pada titik yang diberikan). Versi biasa mengembalikan jarak sebagai sebuah float diantara 0 (asli) dan 1 (titik akhir).

Membalikkan dari GEOSGeometry.interpolate().

GEOSGeometry.relate(other)Link to this definition

Mengembalikan matriks (string) persimpangan DE-9IM mewakili hubungan topologi diantara geometri ini dan lainnya.

GEOSGeometry.simplify(tolerance=0.0, preserve_topology=False)Link to this definition

Mengembalikan sebuah GEOSGeometry baru, disederhanakan pada toleransi yang ditentukan menggunakan algoritma Douglas-Peucker. Nilai toleransi lebih tinggi mengartikan sedikit titik dalam keluaran. Jika toleransi tidak disediakan, awalan itu pada 0.

Secara awalan, fungsi ini tidak mempertahankan topologi. Sebagai contoh, obyek-obyek Polygon dapat dipisah, dirobohkan menjadi baris-baris, atau hilang. Lubang-lubang Polygon dapat dibuat atau hilang, dan baris-baris mungkin bersilangan. Dengan menentukan preserve_topology=True, hasil akan mempunyai dimensi sama dan jumlah komponen sebagai masukan; ini secara signifikan lebih lama, bagaimanapun.

GEOSGeometry.sym_difference(other)Link to this definition

Mengembalikan GEOSGeometry menggabungkan titik-titik dalam geometri ini bukan yang lain, dan titik-titik di lainnya bukan dalam geometri ini.

GEOSGeometry.union(other)Link to this definition

Mengembalikan GEOSGeometry mewakili semua titik dalam geometri ini dan lainnya.

Sifat-sifat TopologiLink to this heading

GEOSGeometry.boundaryLink to this definition

Mengembalikan batasan sebagai sebuah obyek Geometri baru dialokasikan.

GEOSGeometry.centroidLink to this definition

Mengembalikan obyek Point mewakili pusat geometri dari geometri. Titik tidak menjamin menjadi interior dari geometri.

GEOSGeometry.convex_hullLink to this definition

Mengembalikan Polygon terkecil yang mengandung semua titik dalam geometri.

GEOSGeometry.envelopeLink to this definition

Mengembalikan sebuah Polygon yang meakili batasan bungkus dari geometri. Catat bahwa itu dapat juga mengembalikan sebuah Point jika masukan geometri adalah sebuah titik.

GEOSGeometry.point_on_surfaceLink to this definition

Menghitung dan mengembalikan jaminan Point untuk berada dalam interior dari geometri ini.

GEOSGeometry.unary_unionLink to this definition

Menghitung gabungan dari semua unsur dari geometri ini.

Hasil mematuhi kontrak berikut:

  • Unioning a set of LineStrings has the effect of fully noding and dissolving the linework.

  • Menyatukan kumpulan dari Polygon akan selalu mengembalikan geometri Polygon atau MultiPolygon (tidak seperti GEOSGeometry.union(), yang mungkin mengembalikan geometri dari dimensi terendah jika topologi runtuh timbul).

Sifat dan Metode lainLink to this heading

GEOSGeometry.areaLink to this definition

Sifat ini mengembalikan kawasan dari Geometri.

GEOSGeometry.extentLink to this definition

Sifat ini mengembalikan jangkauan dari geometri ini sebagai 4-tuple, terdiri dari (xmin, ymin, xmax, ymax).

GEOSGeometry.clone()Link to this definition

Metode ini mengembalikan GEOSGeometry yaitu sebuah kloningan dari asli.

GEOSGeometry.distance(geom)Link to this definition

Mengembalikan jarak diantara titik-titik terdekat pada geometri ini dan geom yang diberikan (obyek GEOSGeometry lain).

GEOSGeometry.lengthLink to this definition

Mengembalikan panjang dari geometri (misalnya, 0 untuk sebuah Point, panjang dari sebuah LineString, atau lingkaran dari sebuah Polygon).

GEOSGeometry.preparedLink to this definition

Mengembalikan PreparedGeometry GEOS untuk isi dari geometri ini. Obyek-obyek PreparedGeometry dioptimalkan untuk mengandung, bersimpangan, menutupi, bersilangan, menguraikan, tumpang tindih, menyentuh dan dalam tindakan-tindakan. Mengacu pada dokumentasi Prepared Geometry untuk informasi lebih.

GEOSGeometry.srsLink to this definition

Mengembalikan obyek SpatialReference yang sesuai pada SRID dari geometri atau None.

GEOSGeometry.transform(ct, clone=False)Link to this definition

Transforms the geometry according to the given coordinate transformation parameter (ct), which may be an integer SRID, spatial reference WKT string, a PROJ string, a SpatialReference object, or a CoordTransform object. By default, the geometry is transformed in-place and nothing is returned. However if the clone keyword is set, then the geometry is not modified and a transformed clone of the geometry is returned instead.

GEOSGeometry.make_valid()Link to this definition

Returns a valid GEOSGeometry equivalent, trying not to lose any of the input vertices. If the geometry is already valid, it is returned untouched. This is similar to the MakeValid database function. Requires GEOS 3.8.

GEOSGeometry.normalize(clone=False)Link to this definition

Converts this geometry to canonical form. If the clone keyword is set, then the geometry is not modified and a normalized clone of the geometry is returned instead:

Code
>>> g = MultiPoint(Point(0, 0), Point(2, 2), Point(1, 1))
>>> print(g)
MULTIPOINT (0 0, 2 2, 1 1)
>>> g.normalize()
>>> print(g)
MULTIPOINT (2 2, 1 1, 0 0)

PointLink to this heading

class Point(x=None, y=None, z=None, srid=None)Link to this definition

Obyek point dipakai menggunakan argumen-argumen yang mewakili komponen kordinat dari titik atau dengan kordinat urutan tunggal. Sebagai contoh, berikut adalah setara:

Code
>>> pnt = Point(5, 23)
>>> pnt = Point([5, 23])

Obyek-obyek Point Empty mungkin dipakai dengan melewatkan tidak ada argumen atau urutan kosong. Berikut adalah setara:

Code
>>> pnt = Point()
>>> pnt = Point([])

LineStringLink to this heading

class LineString(*args, **kwargs)Link to this definition

Obyek-obyek LineString dipakai menggunakan argumen-argumen yang baik urutan dari kordinat atau obyek Point. Sebagai contoh, berikut adalah setara:

Code
>>> ls = LineString((0, 0), (1, 1))
>>> ls = LineString(Point(0, 0), Point(1, 1))

Sebagai tambahahan, obyek LineString mungkin juga dibuat dengan melewatkan dalam urutan tunggal dari kordinat atau obyek Point.

Code
>>> ls = LineString( ((0, 0), (1, 1)) )
>>> ls = LineString( [Point(0, 0), Point(1, 1)] )

Obyek-obyek LineString Empty mungkin dipakai dengan melewatkan tidak ada argumen atau urutan kosong. Berikut adalah setara:

Code
>>> ls = LineString()
>>> ls = LineString([])
closedLink to this definition

Mengembalikan apakah atau tidak LineString ini ditutup.

LinearRingLink to this heading

class LinearRing(*args, **kwargs)Link to this definition

Obyek-obyek LinearRing dibangun dalam cara sama yang tepat seperti obyek-obyek LineString, bagaimanapun kordinat-kordinat harus tertutup, dengan kata lain, kordinat pertama harus sama seperti kordinat terakhir. Sebagai contoh:

Code
>>> ls = LinearRing((0, 0), (0, 1), (1, 1), (0, 0))

Perhatikan bahwa (0, 0) adalah kordinat pertama dan terakhir -- jika mereka tidak setara, sebuah kesalahan akan dimunculkan.

is_counterclockwiseLink to this definition

Returns whether this LinearRing is counterclockwise.

PolygonLink to this heading

class Polygon(*args, **kwargs)Link to this definition

Obyek-obyek Polygon mungkin digunakan dengan melewatkan parameter yang mewakili lingkaran dari poligon. Parameters harus berupa salah satu instance LinearRing, atau urutan yang mungkin digunakan untuk membangun sebuah LinearRing:

Code
>>> ext_coords = ((0, 0), (0, 1), (1, 1), (1, 0), (0, 0))
>>> int_coords = ((0.4, 0.4), (0.4, 0.6), (0.6, 0.6), (0.6, 0.4), (0.4, 0.4))
>>> poly = Polygon(ext_coords, int_coords)
>>> poly = Polygon(LinearRing(ext_coords), LinearRing(int_coords))
classmethod from_bbox(bbox)Link to this definition

Mengembalikan sebuah obyek poligon dari kotak-dikelilingi diberikan, 4-tuple meliputi (xmin, ymin, xmax, ymax).

num_interior_ringsLink to this definition

Mengembalikan sejumlah lingkaran interior di geometri ini.

Kumpulan GeometriLink to this heading

MultiPointLink to this heading

class MultiPoint(*args, **kwargs)Link to this definition

Obyek-obyek MultiPoint mungkin digunakan dengan melewatkan obyek-obyek Point sebagai argumen, atau urutan tunggal dari obyek-obyek Point:

Code
>>> mp = MultiPoint(Point(0, 0), Point(1, 1))
>>> mp = MultiPoint( (Point(0, 0), Point(1, 1)) )

MultiLineStringLink to this heading

class MultiLineString(*args, **kwargs)Link to this definition

Obyek-obyek MultiLineString mungkin digunakan dengan melewatkan dalam obyek-obyek LineString sebagai argumen, atau urutan tunggal dari obyek-obyek LineString:

Code
>>> ls1 = LineString((0, 0), (1, 1))
>>> ls2 = LineString((2, 2), (3, 3))
>>> mls = MultiLineString(ls1, ls2)
>>> mls = MultiLineString([ls1, ls2])
mergedLink to this definition

Mengembalikan sebuah LineString mewakili baris menggabungkan semua komponen di MultiLineString ini.

closedLink to this definition

Returns True if and only if all elements are closed.

MultiPolygonLink to this heading

class MultiPolygon(*args, **kwargs)Link to this definition

Obyek-obyek MultiPolygon mungkin digunakan dengan melewatkan obyek-obyek Polygon sebagai argumen, atau urutan tunggal dari obyek-obyek Polygon:

Code
>>> p1 = Polygon( ((0, 0), (0, 1), (1, 1), (0, 0)) )
>>> p2 = Polygon( ((1, 1), (1, 2), (2, 2), (1, 1)) )
>>> mp = MultiPolygon(p1, p2)
>>> mp = MultiPolygon([p1, p2])

GeometryCollectionLink to this heading

class GeometryCollection(*args, **kwargs)Link to this definition

Obyek-obyek GeometryCollection mungkin digunakan dengan melewatkan GEOSGeometry lain sebagai argumen, atau urutan tunggal dari obyek-obyek GEOSGeometry:

Code
>>> poly = Polygon( ((0, 0), (0, 1), (1, 1), (0, 0)) )
>>> gc = GeometryCollection(Point(0, 0), MultiPoint(Point(0, 0), Point(1, 1)), poly)
>>> gc = GeometryCollection((Point(0, 0), MultiPoint(Point(0, 0), Point(1, 1)), poly))

Prepared GeometryLink to this heading

In order to obtain a prepared geometry, access the GEOSGeometry.prepared property. Once you have a PreparedGeometry instance its spatial predicate methods, listed below, may be used with other GEOSGeometry objects. An operation with a prepared geometry can be orders of magnitude faster -- the more complex the geometry that is prepared, the larger the speedup in the operation. For more information, please consult the GEOS wiki page on prepared geometries.

Sebagai contoh:

Code
>>> from django.contrib.gis.geos import Point, Polygon
>>> poly = Polygon.from_bbox((0, 0, 5, 5))
>>> prep_poly = poly.prepared
>>> prep_poly.contains(Point(2.5, 2.5))
True

PreparedGeometryLink to this heading

class PreparedGeometryLink to this definition

Semua metode pada PreparedGeometry mengambil sebuah argumen other, yang harus berupa instance GEOSGeometry.

contains(other)Link to this definition
contains_properly(other)Link to this definition
covers(other)Link to this definition
crosses(other)Link to this definition
disjoint(other)Link to this definition
intersects(other)Link to this definition
overlaps(other)Link to this definition
touches(other)Link to this definition
within(other)Link to this definition

Pabrik GeometriLink to this heading

fromfile(file_h)Link to this definition
Parameter:

file_h (a Python file object or a string path to the file) -- masukan berkas yang mengandung data spasial

Jenis Kembalian:

GEOSGeometry berhubungan ke data spasial dalam berkas

Contoh:

Code
>>> from django.contrib.gis.geos import fromfile
>>> g = fromfile('/home/bob/geom.wkt')
fromstr(string, srid=None)Link to this definition
Parameter:
  • string (str) -- deretan karakter yang mengandung data spasial

  • srid (int) -- penciri acuan spasial

Jenis Kembalian:

GEOSGeometry terkait pada data spasial di deretan karakter

fromstr(string, srid) setara dengan GEOSGeometry(string, srid).

Contoh:

Code
>>> from django.contrib.gis.geos import fromstr
>>> pnt = fromstr('POINT(-90.5 29.5)', srid=4326)

Obyek I/OLink to this heading

Obyek PembacaLink to this heading

The reader I/O classes return a GEOSGeometry instance from the WKB and/or WKT input given to their read(geom) method.

class WKBReaderLink to this definition

Contoh:

Code
>>> from django.contrib.gis.geos import WKBReader
>>> wkb_r = WKBReader()
>>> wkb_r.read('0101000000000000000000F03F000000000000F03F')
<Point object at 0x103a88910>
class WKTReaderLink to this definition

Contoh:

Code
>>> from django.contrib.gis.geos import WKTReader
>>> wkt_r = WKTReader()
>>> wkt_r.read('POINT(1 1)')
<Point object at 0x103a88b50>

Obyek PenulisLink to this heading

Semua penulis obyek-obyek memiliki sebuah metode write(geom) yang mengembalikan salah satu WKB atau WKT dari geometri diberikan. Sebagai tambahan, obyek-obyek WKBWriter juga memiliki sifat yang mungkin digunakan untuk merubah urutan byte, dan atau menyertakan nilai SRID (dengan kata lain, EWKB).

class WKBWriter(dim=2)Link to this definition

WKBWriter menyediakan kendali kebanyakan terhadap keluarannya. Secara awalan itu mengembalikan WKB sesuai-OGC ketika metode write nya dipanggil. Bagaimanapun, itu mempunyai sifat yang mengizinkan untuk pembuatan dari EWKB, sebuah superset dari standar WKB yang menyertakan informasi tambahan. Lihat dokumentasi WKBWriter.outdim untuk lebih rinci tentang argumen dim.

write(geom)Link to this definition

Mengembalikan WKB dari geometri yang diberikan sebagai obyek buffer Python. Contoh:

Code
>>> from django.contrib.gis.geos import Point, WKBWriter
>>> pnt = Point(1, 1)
>>> wkb_w = WKBWriter()
>>> wkb_w.write(pnt)
<read-only buffer for 0x103a898f0, size -1, offset 0 at 0x103a89930>
write_hex(geom)Link to this definition

Mengembalikan WKB dari geometri di heksadesimal. Contoh:

Code
>>> from django.contrib.gis.geos import Point, WKBWriter
>>> pnt = Point(1, 1)
>>> wkb_w = WKBWriter()
>>> wkb_w.write_hex(pnt)
'0101000000000000000000F03F000000000000F03F'
byteorderLink to this definition

Milik ini mungkin disetel untuk merubah urutan-byte dari perwakilan geometri.

Nilai Byteorder

Deskripsi

0

Big Endian (misalnya, cocok dengan sistem RISC)

1

Little Endian (misalnya, cocok dengan sistem x86)

Contoh:

Code
>>> from django.contrib.gis.geos import Point, WKBWriter
>>> wkb_w = WKBWriter()
>>> pnt = Point(1, 1)
>>> wkb_w.write_hex(pnt)
'0101000000000000000000F03F000000000000F03F'
>>> wkb_w.byteorder = 0
'00000000013FF00000000000003FF0000000000000'
outdimLink to this definition

Sifat ini mungkin disetel untuk merubah dimensi keluaran dari perwakilan geometri. Dengan kata lain, jika anda memiliki geometri 3D kemudian disetel menjadi 3 sehingga nilai Z disertakan dalam WKB.

Nilai Outdim

Deskripsi

2

Awalan, keluaran 2D WKB.

3

Keluaran 3D WKB.

Contoh:

Code
>>> from django.contrib.gis.geos import Point, WKBWriter
>>> wkb_w = WKBWriter()
>>> wkb_w.outdim
2
>>> pnt = Point(1, 1, 1)
>>> wkb_w.write_hex(pnt) # By default, no Z value included:
'0101000000000000000000F03F000000000000F03F'
>>> wkb_w.outdim = 3 # Tell writer to include Z values
>>> wkb_w.write_hex(pnt)
'0101000080000000000000F03F000000000000F03F000000000000F03F'
sridLink to this definition

Setel sifat ini dengan sebuah boolean untuk menunjukkan apakah SRID dari geometri harus disertakan dengan perwakilan WKB.

Code
>>> from django.contrib.gis.geos import Point, WKBWriter
>>> wkb_w = WKBWriter()
>>> pnt = Point(1, 1, srid=4326)
>>> wkb_w.write_hex(pnt) # By default, no SRID included:
'0101000000000000000000F03F000000000000F03F'
>>> wkb_w.srid = True # Tell writer to include SRID
>>> wkb_w.write_hex(pnt)
'0101000020E6100000000000000000F03F000000000000F03F'
class WKTWriter(dim=2, trim=False, precision=None)Link to this definition

Kelas ini mengeizinkan pengeluaran perwakilan WKT dari geometri. Lihat atribut WKBWriter.outdim, trim, dan precision untuk rincian tentang argumen pembangun.

write(geom)Link to this definition

Mengembalikan WKT dari geometri diberikan. Contoh:

Code
>>> from django.contrib.gis.geos import Point, WKTWriter
>>> pnt = Point(1, 1)
>>> wkt_w = WKTWriter()
>>> wkt_w.write(pnt)
'POINT (1.0000000000000000 1.0000000000000000)'
outdimLink to this definition

Lihat WKBWriter.outdim.

trimLink to this definition

Sifat ini digunakan untuk mengadakan atau meniadakan memangkas dari desimal yang tidak diperlukan.

Code
>>> from django.contrib.gis.geos import Point, WKTWriter
>>> pnt = Point(1, 1)
>>> wkt_w = WKTWriter()
>>> wkt_w.trim
False
>>> wkt_w.write(pnt)
'POINT (1.0000000000000000 1.0000000000000000)'
>>> wkt_w.trim = True
>>> wkt_w.write(pnt)
'POINT (1 1)'
precisionLink to this definition

Sifat ini mengendalikan ketelitian pembulatan dari kordinat; jika disetel menjadi None pembulatan adalah ditiadakan.

Code
>>> from django.contrib.gis.geos import Point, WKTWriter
>>> pnt = Point(1.44, 1.66)
>>> wkt_w = WKTWriter()
>>> print(wkt_w.precision)
None
>>> wkt_w.write(pnt)
'POINT (1.4399999999999999 1.6599999999999999)'
>>> wkt_w.precision = 0
>>> wkt_w.write(pnt)
'POINT (1 2)'
>>> wkt_w.precision = 1
>>> wkt_w.write(pnt)
'POINT (1.4 1.7)'

Catatan kaki

PengaturanLink to this heading

GEOS_LIBRARY_PATHLink to this heading

Sebuah string menentukan tempat dari pustaka C GEOS. Khususnya, pengaturan ini hanya digunakan jika pustaka C GEOS adalah di tempat bukan-standar (misalnya, /home/bob/lib/libgeos_c.so).

PengecualianLink to this heading

exception GEOSExceptionLink to this definition

Pengecualian GEOS dasar, menunjukkan kesalahan terkait-GEOS.