Topik ini menjelaskan fungsi-fungsi yang didukung oleh Lindorm GanosBase untuk memeriksa hubungan spasial antara objek geometri.
Mesin dan versi yang berlaku
Fungsi hubungan spasial yang dijelaskan dalam topik ini hanya berlaku untuk LindormTable. Semua versi LindormTable mendukung fungsi-fungsi ini.
Fungsi
Tabel berikut menjelaskan fungsi hubungan spasial yang didukung oleh Lindorm GanosBase.
Fungsi | Deskripsi |
Anda dapat memanggil fungsi | |
Anda dapat memanggil fungsi | |
Anda dapat memanggil fungsi | |
Anda dapat memanggil fungsi ST_Intersects untuk memeriksa apakah dua objek geometri berpotongan. Jika dua objek geometri memiliki ruang spasial bersama, | |
Anda dapat memanggil objek | |
Anda dapat memanggil fungsi |
ST_Contains
Gunakan fungsi ST_Contains untuk memeriksa apakah objek geometri pertama mencakup objek geometri kedua. Jika ya, fungsi ini mengembalikan nilai true.
Sintaksis
Periksa apakah objek geometri mencakup objek geometri lain.
boolean ST_Contains(geometry geomA,geometry geomB)Periksa apakah objek geometri mencakup objek titik tertentu.
boolean ST_Contains(geometry geom,double x,double y)
Parameter
Parameter | Deskripsi |
geomA | Objek geometri pertama yang ingin Anda tentukan. |
geomB | Objek geometri kedua yang ingin Anda tentukan. |
geom | Objek geometri yang ingin Anda tentukan. |
x | Bujur dari objek titik. |
y | Lintang dari objek titik. |
Jika semua titik geomB terletak di dalam atau pada batas geomA, maka geomA mencakup geomB.
ST_Containsadalah fungsi invers dariST_Within. Hasil dari ST_Contains(A,B) dan ST_Within(B,A) identik.
Contoh
Contoh 1:
SELECT ST_Contains(ST_GeomFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'), ST_GeomFromText('POINT(5 5)')) AS iscontain;Hasil berikut dikembalikan:
+-----------+ | iscontain | +-----------+ | true | +-----------+Contoh 2:
SELECT ST_Contains(ST_GeomFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'),5,5) AS iscontain;Hasil berikut dikembalikan:
+-----------+ | iscontain | +-----------+ | true | +-----------+Contoh 3:
SELECT ST_Contains(ST_GeomFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'), ST_GeomFromText('POINT(180 23)')) AS iscontain;Hasil berikut dikembalikan:
+-----------+ | iscontain | +-----------+ | false | +-----------+Contoh 4:
SELECT ST_Contains(ST_GeomFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'),180,23) AS iscontain;Hasil berikut dikembalikan:
+-----------+ | iscontain | +-----------+ | false | +-----------+
ST_DWithin
Gunakan fungsi ST_DWithin untuk memeriksa apakah jarak 2D antara dua objek geometri berada dalam rentang tertentu. Jika ya, fungsi ini mengembalikan nilai true.
Sintaksis
Periksa apakah jarak 2D antara dua objek geometri berada dalam rentang tertentu.
boolean ST_DWithin(geometry geomA, geometry geomB, double distanceOfSrid)Periksa apakah jarak 2D antara objek geometri dan objek titik tertentu berada dalam rentang tertentu.
boolean ST_DWithin(geometry geom, double x, double y, double distanceOfSrid)
Parameter
Parameter | Deskripsi |
geomA | Objek geometri pertama yang ingin Anda tentukan. |
geomB | Objek geometri kedua yang ingin Anda tentukan. |
distanceOfSrid | Jarak dalam Spatial Reference System Identifier (SRID) 4326. Satuan: derajat. |
geom | Objek geometri yang ingin Anda tentukan. |
x | Bujur dari objek titik. |
y | Lintang dari objek titik. |
Anda dapat menentukan objek geometri dengan jenis berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, dan GeometryCollection.
Contoh
Contoh 1:
SELECT ST_DWithin(ST_GeomFromText('POINT(5 5)'), ST_GeomFromText('POINT(6 6)'), 10) AS iswithin;Hasil berikut dikembalikan:
+----------+ | iswithin | +----------+ | true | +----------+Contoh 2:
SELECT ST_DWithin(ST_GeomFromText('POINT(5 5)'),6,6,10) AS iswithin;Hasil berikut dikembalikan:
+----------+ | iswithin | +----------+ | true | +----------+
ST_DWithinSphere
Gunakan fungsi ST_DWithinSphere untuk memeriksa apakah jarak bola antara dua objek geometri berada dalam rentang tertentu. Jika ya, fungsi ini mengembalikan nilai true.
Sintaksis
Periksa apakah jarak bola antara dua objek geometri berada dalam rentang tertentu.
boolean ST_DWithinSphere(geometry geomA, geometry geomB, double distance)Periksa apakah jarak bola antara objek geometri dan objek titik tertentu berada dalam rentang tertentu.
boolean ST_DWithinSPhere(geometry geom, double x, double y, double distance)
Parameter
Parameter | Deskripsi |
geomA | Objek geometri pertama yang ingin Anda tentukan. |
geomB | Objek geometri kedua yang ingin Anda tentukan. |
distance | Jarak yang ingin Anda tentukan. Satuan: meter. Fungsi ini mungkin memiliki kesalahan sentimeter saat menentukan jarak bola. |
geom | Objek geometri yang ingin Anda tentukan. |
x | Bujur dari objek titik. |
y | Lintang dari objek titik. |
Anda dapat menentukan objek geometri dengan jenis berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, dan GeometryCollection.
Contoh
Contoh 1:
SELECT ST_DWithinSphere(ST_GeomFromText('POINT(120 36)'), ST_GeomFromText('POINT(116 40)'), 570000) AS iswithin;Dalam contoh ini, jarak bola antara titik (120,36) dan titik (116,40) adalah 566034.7930717631 meter, yang berada dalam rentang tertentu. Oleh karena itu, fungsi ST_DWithinSphere mengembalikan nilai true, seperti yang ditunjukkan dalam hasil berikut:
+----------+ | iswithin | +----------+ | true | +----------+Contoh 2:
SELECT ST_DWithinSphere(ST_GeomFromText('POINT(120 36)'),116,40,570000) AS iswithin;Hasil berikut dikembalikan:
+----------+ | iswithin | +----------+ | true | +----------+
ST_Intersects
Gunakan fungsi ST_Intersects untuk memeriksa apakah dua objek geometri berpotongan. Jika kedua objek memiliki ruang spasial bersama, fungsi ini mengembalikan nilai true.
Sintaksis
Periksa apakah dua objek geometri berpotongan.
boolean ST_ Intersects(geometry geomA, geometry geomB)Periksa apakah objek geometri dan objek titik tertentu berpotongan.
boolean ST_ Intersects(geometry geom, double x, double y)
Parameter
Parameter | Deskripsi |
geomA | Objek geometri pertama yang ingin Anda tentukan. |
geomB | Objek geometri kedua yang ingin Anda tentukan. |
geom | Objek geometri yang ingin Anda tentukan. |
x | Bujur dari objek titik. |
y | Lintang dari objek titik. |
Anda dapat menentukan objek geometri dengan jenis berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, dan GeometryCollection.
Contoh
Contoh 1:
SELECT ST_Intersects(ST_GeomFromText('POINT(0 0)'), ST_GeomFromText('LINESTRING ( 2 0, 0 2 )')) AS isinter;Hasil berikut dikembalikan:
+---------+ | isinter | +---------+ | false | +---------+Contoh 2:
SELECT ST_Intersects(ST_GeomFromText('LINESTRING ( 2 0, 0 2 )'), 0, 0) AS isinter;Hasil berikut dikembalikan:
+---------+ | isinter | +---------+ | false | +---------+Contoh 3:
SELECT ST_Intersects(ST_GeomFromText('POINT(0 0)'), ST_GeomFromText('LINESTRING ( 0 0, 0 2 )')) AS isinter;Hasil berikut dikembalikan:
+---------+ | isinter | +---------+ | true | +---------+Contoh 4:
SELECT ST_Intersects(ST_GeomFromText('LINESTRING ( 0 0, 0 2 )'), 0, 0) AS isinter;Hasil berikut dikembalikan:
+---------+ | isinter | +---------+ | true | +---------+
ST_Overlaps
Gunakan fungsi ST_Overlaps untuk memeriksa apakah dua objek geometri tumpang tindih secara spasial tetapi satu tidak sepenuhnya terkandung dalam yang lain. Jika ya, fungsi ini mengembalikan nilai true.
Sintaksis
Periksa apakah dua objek geometri tumpang tindih secara spasial.
boolean ST_Overlaps(geometry geomA, geometry geomB)Periksa apakah objek geometri dan objek titik tertentu tumpang tindih.
boolean ST_Overlaps(geometry geom, double x, double y)
Parameter
Parameter | Deskripsi |
geomA | Objek geometri pertama yang ingin Anda tentukan. |
geomB | Objek geometri kedua yang ingin Anda tentukan. |
geom | Objek geometri yang ingin Anda tentukan. |
x | Bujur dari objek titik. |
y | Lintang dari objek titik. |
Anda dapat menentukan objek geometri dengan jenis berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, dan GeometryCollection.
Contoh
Contoh 1:
SELECT ST_Overlaps(ST_GeomFromText('LINESTRING(0 0,0 2)'),ST_GeomFromText('LINESTRING(0 1,0 3)')) as overlaps;Hasil berikut dikembalikan:
+----------+ | overlaps | +----------+ | true | +----------+Contoh 2:
SELECT ST_Overlaps(ST_GeomFromText('LINESTRING(0 0,0 2)'),ST_GeomFromText('POINT(0 1)')) as overlaps;Hasil berikut dikembalikan:
+----------+ | overlaps | +----------+ | false | +----------+Contoh 3:
SELECT ST_Overlaps(ST_GeomFromText('LINESTRING(0 0,0 2)'), 0, 1) as overlaps;Hasil berikut dikembalikan:
+----------+ | overlaps | +----------+ | false | +----------+
ST_Within
Gunakan fungsi ST_Within untuk memeriksa apakah objek geometri kedua sepenuhnya berada di dalam objek geometri pertama. Jika ya, fungsi ini mengembalikan nilai true.
Sintaksis
Periksa apakah objek geometri sepenuhnya berada di dalam objek geometri lain.
boolean ST_Within(geometry geomA, geometry geomB)Periksa apakah objek titik tertentu sepenuhnya berada di dalam objek geometri.
bboolean ST_Within(double x, double y, geometry geom)
Parameter
Parameter | Deskripsi |
geomA | Objek geometri pertama yang ingin Anda tentukan. |
geomB | Objek geometri kedua yang ingin Anda tentukan. |
geom | Objek geometri yang ingin Anda tentukan. |
x | Bujur dari objek titik. |
y | Lintang dari objek titik. |
Anda dapat menentukan objek geometri dengan jenis berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, dan GeometryCollection.
Jika
ST_Within(A,B)danST_Within(B,A)mengembalikan nilai true, A dan B adalah objek geometri yang sama secara spasial.
Contoh
Contoh 1:
SELECT ST_Within(ST_GeomFromText('POINT(5 5)'), ST_GeomFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')) AS iswithin;Hasil berikut dikembalikan:
+----------+ | iswithin | +----------+ | true | +----------+Contoh 2:
SELECT ST_Within(5, 5, ST_GeomFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')) AS iswithin;Hasil berikut dikembalikan:
+----------+ | iswithin | +----------+ | true | +----------+