Topik ini menjelaskan sintaks dasar dan contoh fungsi geospasial.
Konsep geospasial
Fungsi geospasial dengan awalan ST_ mematuhi standar SQL/MM dan spesifikasi OpenGIS dari Open Geospatial Consortium (OGC). Fungsi-fungsi ini menggunakan format Well-Known Text (WKT) untuk merepresentasikan geometri, seperti point, line string, dan polygon. Tabel berikut mencantumkan geometri yang didukung beserta format WKT-nya.
|
Geometry |
WKT format |
|
Point |
POINT (0 0) |
|
Line string |
LINESTRING (0 0, 1 1, 1 2) |
|
Polygon |
POLYGON((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) |
|
Multipoint |
MULTIPOINT(0 0, 1 2) |
|
Multilinestring |
MULTILINESTRING((0 0, 1 1, 1 2), (2 3, 3 2, 5 4)) |
|
Multipolygon |
MULTIPOLYGON(((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1))) |
|
Geometry collection |
GEOMETRYCOLLECTION(POINT(2 3), LINESTRING(2 3, 3 4)) |
Fungsi
|
Type |
Function |
Syntax |
Description |
SQL |
SPL |
|
Constructors |
ST_AsText(x) |
Mengembalikan representasi Well-Known Text (WKT) dari suatu geometry. |
√ |
× |
|
|
ST_GeometryFromText(x) |
Membuat geometry dari representasi WKT. |
√ |
× |
||
|
ST_LineFromText(x) |
Membuat line string dari representasi WKT. |
√ |
× |
||
|
ST_Polygon(x) |
Membuat polygon dari representasi WKT. |
√ |
× |
||
|
ST_Point(x, y) |
Membuat point dari koordinat X dan Y. |
√ |
× |
||
|
Operators |
ST_Boundary(x) |
Mengembalikan batas (boundary) suatu geometry. |
√ |
× |
|
|
ST_Buffer(x, distance) |
Mengembalikan geometry yang mencakup semua titik dalam jarak tertentu dari geometry input. |
√ |
× |
||
|
ST_Difference(x, y) |
Mengembalikan bagian dari geometry pertama yang tidak berpotongan dengan geometry kedua. |
√ |
× |
||
|
ST_Envelope(x) |
Mengembalikan kotak pembatas (bounding box) suatu geometry. |
√ |
× |
||
|
ST_ExteriorRing(x) |
Mengembalikan line string yang merepresentasikan cincin luar (exterior ring) suatu polygon. |
√ |
× |
||
|
ST_Intersection(x, y) |
Mengembalikan geometry yang merepresentasikan irisan dua geometry. |
√ |
× |
||
|
ST_SymDifference(x, y) |
Mengembalikan geometry yang merepresentasikan bagian dari geometry input yang tidak saling berpotongan. |
√ |
× |
||
|
Spatial relationship tests |
ST_Contains(x, y) |
Mengembalikan |
√ |
× |
|
|
ST_Crosses(x, y) |
Mengembalikan |
√ |
× |
||
|
ST_Disjoint(x, y) |
Mengembalikan |
√ |
× |
||
|
ST_Equals(x, y) |
Mengembalikan |
√ |
× |
||
|
ST_Intersects(x, y) |
Mengembalikan |
√ |
× |
||
|
ST_Overlaps(x, y) |
Mengembalikan |
√ |
× |
||
|
ST_Relate(x, y, patternMatrix string) |
Mengembalikan |
√ |
× |
||
|
ST_Touches(x, y) |
Mengembalikan |
√ |
× |
||
|
ST_Within(x, y) |
Mengembalikan |
√ |
× |
||
|
Accessors |
ST_Area(x) |
Mengembalikan luas Cartesian 2D dari suatu geometry. |
√ |
× |
|
|
ST_Centroid(x) |
Mengembalikan pusat geometris suatu geometry. |
√ |
× |
||
|
ST_CoordDim(x) |
Mengembalikan dimensi koordinat suatu geometry. |
√ |
× |
||
|
ST_Dimension(x) |
Mengembalikan dimensi inheren suatu geometry, yang harus kurang dari atau sama dengan dimensi koordinatnya. |
√ |
× |
||
|
ST_Distance(x, y) |
Mengembalikan jarak minimum antara dua geometry. |
√ |
× |
||
|
ST_EndPoint(x) |
Mengembalikan titik terakhir dari suatu line string. |
√ |
× |
||
|
ST_IsClosed(x) |
Mengembalikan |
√ |
× |
||
|
ST_IsEmpty(x) |
Mengembalikan |
√ |
× |
||
|
ST_IsRing(x) |
Mengembalikan |
√ |
× |
||
|
ST_Length(x) |
Mengembalikan panjang Cartesian 2D dari suatu line string. Jika input berupa multilinestring, mengembalikan jumlah panjang elemennya. |
√ |
× |
||
|
ST_NumPoints(x) |
Mengembalikan jumlah titik (vertices) dalam suatu geometry. |
√ |
× |
||
|
ST_NumInteriorRing(x) |
Mengembalikan jumlah cincin dalam (interior rings) dalam suatu polygon. |
√ |
× |
||
|
ST_StartPoint(x) |
Mengembalikan titik pertama dari suatu line string. |
√ |
× |
||
|
ST_X(x) |
Mengembalikan koordinat X dari suatu point. |
√ |
× |
||
|
ST_XMax(x) |
Mengembalikan koordinat X maksimum dari suatu geometry. |
√ |
× |
||
|
ST_XMin(x) |
Mengembalikan koordinat X minimum dari suatu geometry. |
√ |
× |
||
|
ST_Y(x) |
Mengembalikan koordinat Y dari suatu point. |
√ |
× |
||
|
ST_YMax(x) |
Mengembalikan koordinat Y maksimum dari suatu geometry. |
√ |
× |
||
|
ST_YMin(x) |
Mengembalikan koordinat Y minimum dari suatu geometry. |
√ |
× |
||
|
Bing tiles |
bing_tile(x, y, zoom_level) |
Mengembalikan Bing tile dari koordinat X dan Y serta tingkat zoom yang ditentukan. |
√ |
× |
|
|
bing_tile(quadKey) |
Mengembalikan Bing tile dari quadtree key yang ditentukan. |
√ |
× |
||
|
bing_tile_at(x, y, zoom_level) |
Mengembalikan Bing tile dari lintang, bujur, dan tingkat zoom yang ditentukan. |
√ |
× |
||
|
bing_tile_coordinates(x) |
Mengembalikan koordinat X dan Y dari suatu Bing tile. |
√ |
× |
||
|
bing_tile_polygon(x) |
Mengembalikan representasi polygon dari suatu Bing tile. |
√ |
× |
||
|
bing_tile_quadkey(x) |
Mengembalikan quadtree key dari suatu Bing tile. |
√ |
× |
||
|
bing_tile_zoom_level(x) |
Mengembalikan tingkat zoom dari suatu Bing tile. |
√ |
× |
ST_AsText function
Mengembalikan representasi WKT dari suatu geometry.
Sintaks
ST_AsText(x)
Parameter
|
Parameter |
Description |
|
x |
Geometry input. |
Tipe nilai kembalian
Tipe kembalian adalah varchar.
Contoh
Contoh ini mengembalikan WKT dari suatu point.
-
Pernyataan kueri
* | SELECT ST_AsText(ST_Point(1,1)) -
Hasil kueri dan analisis adalah
POINT (1 1).
ST_GeometryFromText function
Membuat geometry dari representasi Well-Known Text (WKT).
Sintaks
ST_GeometryFromText(x)
Parameter
|
Parameter |
Description |
|
x |
Parameter harus bertipe varchar. |
Tipe nilai kembalian
geometry
Contoh
Membuat multipolygon.
-
Pernyataan kueri
* | SELECT ST_GeometryFromText('multipolygon(((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))') -
Kueri mengembalikan
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40))).
ST_LineFromText function
Membuat line string dari teks WKT.
Sintaks
ST_LineFromText(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai bertipe varchar. |
Tipe nilai kembalian
tipe linestring
Contoh
Membuat line string.
-
Pernyataan kueri
* | SELECT ST_LineFromText('linestring(10 10,20 20)') -
Hasil kueri:
LINESTRING (10 10, 20 20).
ST_Polygon function
Fungsi ST_Polygon membuat polygon dari representasi WKT.
Sintaks
ST_Polygon(x)
Parameter
|
Parameter |
Description |
|
x |
Harus berupa nilai varchar. |
Tipe nilai kembalian
polygon
Contoh
Membuat polygon.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))') -
Hasilnya adalah
POLYGON ((10 10, 20 15, 20 20, 10 20, 10 10)).
ST_Point function
Membuat point dari koordinat X dan Y yang ditentukan.
Sintaks
ST_Point(x, y)
Parameter
|
Parameter |
Description |
|
x |
Koordinat X dari point. Tipe data harus DOUBLE. |
|
y |
Koordinat Y dari point. Tipe data harus DOUBLE. |
Tipe nilai kembalian
point
Contoh
Membuat point.
-
Pernyataan kueri
* | SELECT ST_Point(0,0) -
Hasil kueri dalam format WKT:
POINT (0 0).
ST_Boundary function
Fungsi ST_Boundary mengembalikan batas (boundary) suatu geometry.
-
Batas suatu point kosong. Fungsi mengembalikan POINT EMPTY.
-
Batas suatu line string terdiri atas titik-titik ujungnya.
-
Batas suatu polygon terdiri atas line string yang membentuk cincin luarnya dan semua cincin dalamnya.
Sintaks
ST_Boundary(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai bertipe geography. |
Tipe nilai kembalian
tipe geography
Contoh
Gunakan fungsi ST_Polygon untuk membuat polygon, lalu kembalikan batasnya dengan fungsi ST_Boundary.
-
Pernyataan kueri
* | SELECT ST_Boundary(ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))')) -
Kueri mengembalikan
LINESTRING (10 10, 20 15, 20 20, 10 20, 10 10).
ST_Buffer function
Fungsi ST_Buffer mengembalikan geometry yang mencakup semua titik dalam jarak tertentu dari geometry input.
Sintaks
ST_Buffer(x, distance)
Parameter
|
Parameter |
Description |
|
x |
Geometry input. |
|
distance |
Jarak buffer. |
Tipe nilai kembalian
geometry
Contoh
Contoh ini menggunakan fungsi ST_Point untuk membuat point dan fungsi ST_Buffer untuk membuat polygon pada jarak tertentu dari point tersebut.
-
Pernyataan kueri
* | SELECT ST_Buffer(ST_Point(1,1),1) -
Kueri mengembalikan nilai POLYGON yang mendekati lingkaran. Polygon ini terdiri atas banyak titik koordinat, dimulai dengan
(2 1, 1.9978589232386...).
ST_Difference function
Mengembalikan geometry yang merepresentasikan selisih himpunan titik dua geometry.
Sintaks
ST_Difference(x, y)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
|
y |
Nilai geometry. |
Tipe nilai kembalian
Nilai geometry.
Contoh
Membuat dua geometry dengan fungsi ST_GeometryFromText, lalu menghitung selisih himpunan titiknya dengan fungsi ST_Difference.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_Difference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,0 15,0 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) AS "Difference" -
Kueri mengembalikan hasil berikut:
MULTIPOLYGON (((0 10, 10 10, 10 17.5, 0 15, 0 10)), ((50 40, 60 40, 50 50, 50 40))).
ST_Envelope function
Mengembalikan kotak pembatas (bounding box) suatu geometry.
Sintaks
ST_Envelope(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
Tipe nilai kembalian
geometry
Contoh
Contoh ini membuat geometry dengan fungsi ST_GeometryFromText dan mengembalikan kotak pembatasnya dengan fungsi ST_Envelope.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_Envelope( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Kueri mengembalikan
POLYGON ((10 10, 60 10, 60 50, 10 50, 10 10)).
ST_ExteriorRing function
Mengembalikan cincin luar (exterior ring) suatu geometry sebagai linestring.
Sintaks
ST_ExteriorRing(x)
Parameter
|
Parameter |
Description |
|
x |
Geometry polygon atau multipolygon input. |
Tipe nilai kembalian
geometry
Contoh
Contoh ini menggunakan ST_GeometryFromText untuk membuat geometry dan ST_ExteriorRing untuk mengembalikan cincin luarnya.
-
Pernyataan kueri
* | SELECT ST_ExteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Kueri mengembalikan
LINESTRING (10 10, 10 20, 20 20, 20 15, 10 10).
ST_Intersection
Mengembalikan irisan dua geometry.
Sintaks
ST_Intersection(x, y)
Parameter
|
Parameter |
Description |
|
x |
Geometry pertama. |
|
y |
Geometry kedua. |
Tipe nilai kembalian
geometry
Contoh
Contoh ini menggunakan fungsi ST_GeometryFromText untuk membuat dua geometry dan fungsi ST_Intersection untuk menghitung irisannya.
-
Pernyataan kueri
* | SELECT ST_Intersection( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Hasil kueri:
MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((50 40, 50 50, 60 50, 60 40, 50 40))).
ST_SymDifference function
Mengembalikan geometry yang merepresentasikan selisih simetris dua geometry.
Sintaks
ST_SymDifference(x, y)
Parameter
|
Parameter |
Description |
|
x |
Geometry. |
|
y |
Geometry. |
Tipe nilai kembalian
geometry
Contoh
Contoh ini menggunakan fungsi ST_GeometryFromText untuk membuat dua geometry dan fungsi ST_SymDifference untuk menghitung selisih simetrisnya.
-
Pernyataan kueri
* | SELECT ST_SymDifference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Kueri mengembalikan
GEOMETRYCOLLECTION EMPTY.
ST_Contains function
ST_Contains mengembalikan true jika geometry pertama memuat geometry kedua. Kedua geometry dapat berpotongan pada batasnya.
Sintaks
ST_Contains(x, y)
Parameter
|
Parameter |
Description |
|
x |
Geometry input pertama. |
|
y |
Geometry input kedua. |
Tipe nilai kembalian
boolean
Contoh
Contoh ini memeriksa apakah suatu polygon memuat suatu point.
-
Pernyataan kueri
* | SELECT ST_Contains( ST_GeometryFromText( 'polygon((10 10,10 20,20 20,20 15,10 10))' ), ST_GeometryFromText( 'point(11 11)' ) ) -
Kueri mengembalikan
true.
ST_Crosses function
Fungsi ST_Crosses mengembalikan true jika dua geometry memiliki titik interior yang sama.
Sintaks
ST_Crosses(x, y)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
|
y |
Nilai geometry. |
Tipe nilai kembalian
Nilai boolean.
Contoh
Contoh ini menggunakan fungsi ST_GeometryFromText untuk membuat dua geometry dan fungsi ST_Crosses untuk menentukan apakah keduanya memiliki titik interior yang sama.
-
Pernyataan kueri
* | SELECT ST_Crosses( ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 50)))' ) ) -
Kueri mengembalikan
false.
ST_Disjoint
Fungsi ST_Disjoint memeriksa apakah dua geometry saling lepas (disjoint). Fungsi ini mengembalikan true jika geometry tersebut tidak berpotongan.
Sintaks
ST_Disjoint(x, y)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
|
y |
Nilai geometry. |
Tipe nilai kembalian
boolean
Contoh
Contoh ini membuat dua geometry dengan ST_GeometryFromText lalu menggunakan ST_Disjoint untuk memeriksa apakah keduanya berpotongan.
-
Pernyataan kueri
* | SELECT ST_Disjoint( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) -
Kueri mengembalikan
false.
ST_Equals function
Fungsi ST_Equals menentukan apakah dua geometry identik, mengembalikan true jika iya.
Sintaks
ST_Equals(x, y)
Parameter
|
Parameter |
Description |
|
x |
Geometry pertama. |
|
y |
Geometry kedua. |
Tipe nilai kembalian
boolean
Contoh
Contoh ini menggunakan fungsi ST_GeometryFromText untuk membuat dua geometry dan fungsi ST_Equals untuk memeriksa apakah keduanya identik.
-
Pernyataan kueri
* | SELECT ST_Equals( ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 50)))' ) ) -
Kueri mengembalikan
false.
ST_Intersects function
Mengembalikan true jika proyeksi planar dua geometry berpotongan.
Sintaks
ST_Intersects(x, y)
Parameter
|
Parameter |
Description |
|
x |
Nilai bertipe geometry. |
|
y |
Nilai bertipe geometry. |
Tipe nilai kembalian
boolean
Contoh
Gunakan fungsi ST_GeometryFromText untuk membuat dua geometry, lalu gunakan fungsi ST_Intersects untuk memeriksa apakah keduanya berpotongan.
-
Kueri contoh
* | SELECT ST_Intersects( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) -
Hasil kueri adalah
true.
ST_Overlaps function
Fungsi ST_Overlaps mengembalikan true jika dua geometry dengan dimensi yang sama tumpang tindih, tetapi tidak ada yang sepenuhnya memuat yang lain.
Sintaks
ST_Overlaps(x, y)
Parameter
|
Parameter |
Description |
|
x |
Geometry input pertama. |
|
y |
Geometry input kedua. |
Tipe nilai kembalian
boolean
Contoh
Contoh ini membuat dua geometry menggunakan fungsi ST_GeometryFromText lalu memeriksa apakah keduanya tumpang tindih menggunakan fungsi ST_Overlaps.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_Overlaps( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) -
Kueri mengembalikan
false.
ST_Relate function
Fungsi ST_Relate menentukan apakah dua geometry saling berhubungan dengan memeriksa apakah interior atau batasnya berpotongan. Fungsi ini mengembalikan true jika iya.
Sintaks
ST_Relate(x, y, patternMatrix string)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
|
y |
Nilai geometry. |
|
patternMatrix string |
String matriks pola DE-9IM. Nilainya bertipe varchar. |
Tipe nilai kembalian
boolean
Contoh
Contoh ini membuat dua geometry dengan fungsi ST_GeometryFromText lalu menggunakan fungsi ST_Relate untuk memeriksa apakah keduanya saling berhubungan secara spasial.
-
Pernyataan kueri
* | SELECT ST_Relate( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), '****T****' ) -
Kueri mengembalikan
true.
ST_Touches function
Fungsi ST_Touches mengembalikan true jika dua geometry saling bersentuhan pada batasnya tetapi interior keduanya tidak berpotongan.
Sintaks
ST_Touches(x, y)
Parameter
|
Parameter |
Description |
|
x |
Geometry pertama. |
|
y |
Geometry kedua. |
Tipe nilai kembalian
Mengembalikan nilai boolean.
Contoh
Kueri berikut menggunakan fungsi ST_GeometryFromText untuk membuat dua geometry dan fungsi ST_Touches untuk memeriksa apakah keduanya saling bersentuhan.
-
Pernyataan kueri
* | SELECT ST_Touches( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) -
Kueri mengembalikan
false.
ST_Within function
Fungsi ST_Within mengembalikan true jika geometry pertama sepenuhnya berada di dalam geometry kedua dan batas keduanya tidak berpotongan.
Sintaks
ST_Within(x, y)
Parameter
|
Parameter |
Description |
|
x |
Geometry input pertama. |
|
y |
Geometry input kedua. |
Tipe nilai kembalian
boolean
Contoh
Contoh ini membuat dua geometry menggunakan fungsi ST_GeometryFromText lalu menggunakan fungsi ST_Within untuk menentukan apakah geometry pertama sepenuhnya berada di dalam geometry kedua.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_Within( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) -
Kueri mengembalikan
false.
ST_Area function
Fungsi ST_Area menghitung luas proyeksi suatu geometry pada bidang dua dimensi menggunakan Jarak Euclidean.
Sintaks
ST_Area(x)
Parameter
|
Parameter |
Description |
|
x |
Geometry input. |
Tipe nilai kembalian
double
Contoh
Contoh ini menghitung luas suatu multipolygon.
-
Pernyataan kueri
* | SELECT ST_Area( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Mengembalikan
-25.0.
ST_Centroid function
Fungsi ST_Centroid mengembalikan pusat matematis suatu geometry input sebagai point.
Sintaks
ST_Centroid(x)
Parameter
|
Parameter |
Description |
|
x |
Geometry input. |
Tipe nilai kembalian
geometry
Contoh
Contoh ini menghitung pusat suatu geometry multipolygon.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_Centroid( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Pernyataan mengembalikan
POINT (176.66666666666669 131.66666666666669).
ST_CoordDim function
Fungsi ST_CoordDim mengembalikan dimensi koordinat suatu geometry.
Sintaks
ST_CoordDim(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
Tipe nilai kembalian
bigint
Contoh
Gunakan fungsi ST_GeometryFromText untuk membuat geometry lalu gunakan fungsi ST_CoordDim untuk mengembalikan dimensi koordinatnya.
-
Pernyataan kueri
* | SELECT ST_CoordDim( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Kueri mengembalikan
2.
ST_Dimension function
Mengembalikan dimensi inheren suatu geometry, yang tidak boleh melebihi dimensi koordinatnya.
Sintaks
ST_Dimension(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry.
|
Tipe nilai kembalian
bigint
Contoh
Contoh ini menggunakan ST_Dimension untuk menemukan dimensi inheren suatu geometry yang dibuat oleh ST_GeometryFromText.
-
Pernyataan kueri
* | SELECT ST_Dimension( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Kueri mengembalikan
2.
ST_Distance function
Mengembalikan jarak minimum antara dua geometry.
Sintaks
ST_Distance(x, y)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
|
y |
Nilai geometry. |
Tipe nilai kembalian
double
Contoh
Contoh ini menggunakan fungsi ST_GeometryFromText untuk membuat dua geometry dan fungsi ST_Distance untuk menghitung jarak minimum di antara keduanya.
-
Pernyataan kueri
* | SELECT ST_Distance( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Hasil kueri adalah
0.0.
ST_EndPoint function
ST_EndPoint mengembalikan titik terakhir dari suatu line string.
Sintaks
ST_EndPoint(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai bertipe geometry. |
Tipe nilai kembalian
Nilai bertipe point.
Contoh
Membuat line string dengan ST_LineFromText, lalu menggunakan ST_EndPoint untuk mengembalikan titik terakhir.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_EndPoint( ST_LineFromText( 'linestring (10 10,20 20)' ) ) -
Mengembalikan
POINT (20 20).
ST_IsClosed
Fungsi ST_IsClosed mengembalikan true jika suatu geometry tertutup.
Sintaks
ST_IsClosed(x)
Parameter
|
Parameter |
Description |
|
x |
Geometry yang akan diperiksa. |
Tipe nilai kembalian
Nilai boolean.
Contoh
Contoh ini menggunakan ST_LineFromText untuk membuat line string dan ST_IsClosed untuk memeriksa apakah line string tersebut tertutup.
-
Pernyataan kueri
* | SELECT ST_IsClosed( ST_LineFromText( 'linestring (10.05 10.28 , 20.95 20.89 )' ) ) -
Hasil kueri:
false.
ST_IsEmpty function
Fungsi ST_IsEmpty mengembalikan true jika geometry input kosong.
Sintaks
ST_IsEmpty(x)
Parameter
|
Parameter |
Description |
|
x |
Input harus berupa nilai bertipe geometry. |
Tipe nilai kembalian
Nilai boolean.
Contoh
Gunakan fungsi ST_Point untuk membuat point, lalu fungsi ST_IsEmpty untuk memeriksa apakah point tersebut kosong.
-
Pernyataan kueri
* | SELECT ST_IsEmpty(ST_Point(1,1)) -
Hasil kueri dan analisis adalah
false.
ST_IsRing function
Fungsi ST_IsRing mengembalikan true jika geometry input berupa ring (line string yang tertutup dan simple).
Sintaks
ST_IsRing(x)
Parameter
|
Parameter |
Description |
|
x |
Parameter harus bertipe |
Tipe nilai kembalian
Boolean
Contoh
Contoh ini membuat line string dengan ST_LineFromText lalu memeriksa apakah berupa ring dengan ST_IsRing.
-
Pernyataan kueri
* | SELECT ST_IsRing( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89 )' ) ) -
Kueri mengembalikan
false.
ST_Length function
Fungsi ST_Length menghitung panjang proyeksi 2D suatu line string menggunakan Jarak Euclidean. Untuk multilinestring, fungsi ini mengembalikan jumlah panjang line string penyusunnya.
Sintaks
ST_Length(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
Tipe nilai kembalian
Nilai double.
Contoh
Gunakan ST_LineFromText untuk membuat line string dan ST_Length untuk menghitung panjangnya.
-
Pernyataan kueri
* | SELECT ST_Length( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89)' ) ) -
Kueri mengembalikan
15.211249126879752.
ST_NumPoints function
Mengembalikan jumlah titik dalam suatu geometry.
Sintaks
ST_NumPoints(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
Tipe nilai kembalian
bigint
Contoh
Contoh ini pertama-tama membuat line string dengan fungsi ST_LineFromText, lalu menggunakan fungsi ST_NumPoints untuk mengembalikan jumlah titik di dalamnya.
-
Pernyataan kueri
* | SELECT ST_NumPoints( ST_LineFromText('linestring (10 10,20 20)') ) -
Hasil kueri:
2.
ST_NumInteriorRing function
Mengembalikan jumlah cincin dalam (interior rings) dalam suatu geometry.
Sintaks
ST_NumInteriorRing(x)
Parameter
|
Parameter |
Description |
|
x |
Objek geometry. |
Tipe nilai kembalian
Nilai bigint.
Contoh
Contoh ini menggunakan ST_GeometryFromText untuk membuat geometry dan ST_NumInteriorRing untuk menghitung jumlah cincin dalamnya.
-
Pernyataan kueri
* | SELECT ST_NumInteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Kueri mengembalikan
1.
ST_StartPoint function
Mengembalikan titik pertama dari suatu line string.
Sintaks
ST_StartPoint(x)
Parameter
|
Parameter |
Description |
|
x |
Menentukan line string input. |
Tipe nilai kembalian
point
Contoh
Contoh ini membuat line string dengan fungsi ST_LineFromText lalu mengembalikan titik pertamanya menggunakan fungsi ST_StartPoint.
-
Pernyataan kueri
* | SELECT ST_StartPoint( ST_LineFromText( 'linestring (10 10,20 20 )' ) ) -
Hasil kueri:
POINT (10 10).
ST_X function
Mengembalikan koordinat X dari suatu point input.
Sintaks
ST_X(x)
Parameter
|
Parameter |
Description |
|
x |
Parameter harus berupa point. |
Tipe nilai kembalian
Tipe kembalian adalah double.
Contoh
Contoh ini menggunakan fungsi ST_Point untuk membuat point dan ST_X untuk mengembalikan koordinat X-nya.
-
Pernyataan kueri
* | SELECT ST_X(ST_Point(1,3)) -
Kueri mengembalikan
1.0.
ST_XMax function
ST_XMax mengembalikan koordinat x maksimum dari suatu geometry.
Sintaks
ST_XMax(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
Tipe nilai kembalian
Mengembalikan double.
Contoh
Gunakan fungsi ST_GeometryFromText untuk membuat geometry, lalu gunakan fungsi ST_XMax untuk mengembalikan koordinat x maksimumnya.
-
Pernyataan kueri
* | SELECT ST_XMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Kueri mengembalikan
60.0.
ST_XMin function
Fungsi ST_XMin mengembalikan koordinat x minimum dari suatu geometry.
Sintaks
ST_XMin(x)
Parameter
|
Parameter |
Description |
|
x |
Geometry input. |
Tipe nilai kembalian
double
Contoh
Contoh ini membuat geometry dengan fungsi ST_GeometryFromText lalu menggunakan fungsi ST_XMin untuk mengembalikan koordinat x minimumnya.
-
Pernyataan kueri
* | SELECT ST_XMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Hasil kueri:
10.0.
ST_Y function
Mengembalikan koordinat y dari suatu point input.
Sintaks
ST_Y(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai bertipe point. |
Tipe nilai kembalian
Nilai bertipe double.
Contoh
Contoh ini menggunakan fungsi ST_Point untuk membuat point dan fungsi ST_Y untuk mengambil koordinat y-nya.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_Y(ST_Point(1,3)) -
Hasil kueri dan analisis:
3.0
ST_YMax function
Fungsi ST_YMax mengembalikan koordinat y maksimum dari suatu geometry.
Sintaks
ST_YMax(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai geometry. |
Tipe nilai kembalian
double
Contoh
Contoh ini membuat geometry dengan fungsi ST_GeometryFromText dan mengembalikan koordinat y maksimumnya dengan fungsi ST_YMax.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_YMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Hasil kueri:
50.0.
ST_YMin function
Mengembalikan koordinat Y minimum dari suatu geometry.
Sintaks
ST_YMin(x)
Parameter
|
Parameter |
Description |
|
x |
Geometry input. |
Tipe nilai kembalian
double
Contoh
Contoh ini menggunakan fungsi ST_GeometryFromText untuk membuat geometry dan fungsi ST_YMin untuk mengembalikan koordinat Y minimumnya.
-
Pernyataan Kueri dan Analisis
* | SELECT ST_YMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) ) -
Hasilnya adalah
10.0.
bing_tile
Fungsi bing_tile membuat Bing tile.
Sintaks
-
Membuat Bing tile dari koordinat x, koordinat y, dan tingkat zoom.
bing_tile(x, y, zoom_level) -
Membuat Bing tile dari quadtree key.
bing_tile(quadKey)
Parameter
|
Parameter |
Description |
|
x |
Koordinat x. Harus berupa integer. |
|
y |
Koordinat y. Harus berupa integer. |
|
zoom_level |
Tingkat zoom. Harus berupa integer dari 1 hingga 23. |
|
quadKey |
Quadtree key. |
Tipe nilai kembalian
Mengembalikan Bing tile.
Contoh
-
Contoh 1: Membuat Bing tile dari koordinat x, koordinat y, dan tingkat zoom.
-
Pernyataan kueri
* | SELECT bing_tile(10, 20, 20) -
Hasil kueri:
{"x":10,"y":20,"zoom":20}.
-
-
Contoh 2: Membuat Bing tile dari quadtree key.
-
Pernyataan kueri
* | SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 20))) -
Hasil kueri:
{"x":10,"y":20,"zoom":20}.
-
Bing_tile_at function
Fungsi bing_tile_at membuat Bing tile dari lintang, bujur, dan tingkat zoom.
Sintaks
bing_tile_at(x, y, zoom_level)
Parameter
|
Parameter |
Description |
|
x |
Lintang, sebagai nilai double dalam rentang |
|
y |
Bujur, sebagai nilai double dalam rentang |
|
zoom_level |
Tingkat zoom, sebagai integer dari 1 hingga 23. |
Tipe nilai kembalian
Objek BingTile.
Contoh
Contoh ini membuat Bing tile.
-
Kueri
* | SELECT bing_tile_at(47.265511, -122.465691, 12) -
Kueri mengembalikan
{"x":654,"y":1436,"zoom":12}.
bing_tile_coordinates function
Mengembalikan koordinat X dan Y dari Bing tile yang ditentukan.
Sintaks
bing_tile_coordinates(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai BingTile. |
Tipe nilai kembalian
Mengembalikan array dua integer: [X, Y].
Contoh
Contoh ini mengambil koordinat untuk Bing tile yang ditentukan.
-
Pernyataan kueri
* | SELECT bing_tile_coordinates(bing_tile_at(47.265511, -122.465691, 12)) -
Hasil:
[654,1436].
bing_tile_polygon
Mengembalikan representasi polygon dari Bing tile.
Sintaks
bing_tile_polygon(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai BingTile. |
Tipe nilai kembalian
polygon
Contoh
Mengembalikan representasi polygon dari Bing tile.
-
Pernyataan kueri
* | SELECT bing_tile_polygon(bing_tile_at(30.26, 120.19, 12)) -
Hasil kueri:
POLYGON ((120.146484375 30.297017883372042, 120.146484375 30.221101852485987, 120.234375 30.221101852485987, 120.234375 30.297017883372042, 120.146484375 30.297017883372042)).
Bing_tile_quadkey
Fungsi bing_tile_quadkey mengembalikan quadtree key untuk Bing tile.
Sintaks
bing_tile_quadkey(x)
Parameter
|
Parameter |
Description |
|
x |
Nilai |
Tipe nilai kembalian
varchar
Contoh
Contoh ini mengonversi tile pada koordinat (10, 20) dan tingkat zoom 20 menjadi quadtree key-nya.
-
Pernyataan kueri
* | SELECT bing_tile_quadkey(bing_tile(10, 20, 20)) -
Kueri mengembalikan quadtree key
000000000000021210.
bing_tile_zoom_level function
Mengembalikan tingkat zoom dari Bing tile.
Sintaks
bing_tile_zoom_level(x)
Parameter
|
Parameter |
Description |
|
x |
Objek BingTile. |
Tipe nilai kembalian
double
Contoh
Contoh berikut menghitung tingkat zoom untuk Bing tile tertentu.
-
Pernyataan kueri
* | SELECT bing_tile_zoom_level(bing_tile(10, 20, 20)) -
Hasil kueri:
20.