全部产品
Search
文档中心

Lindorm:Fungsi untuk hubungan spasial

更新时间:Jul 02, 2025

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

ST_Contains

Anda dapat memanggil fungsi ST_Contains untuk memeriksa apakah objek geometri pertama yang Anda tentukan mengandung objek geometri kedua yang Anda tentukan. Jika objek geometri pertama mengandung objek geometri kedua, fungsi ini mengembalikan nilai true.

ST_DWithin

Anda dapat memanggil fungsi ST_DWithin untuk memeriksa apakah jarak 2D antara dua objek geometri berada dalam rentang yang ditentukan. Jika jarak 2D antara objek berada dalam rentang yang ditentukan, fungsi ini mengembalikan nilai true.

ST_DWithinSphere

Anda dapat memanggil fungsi ST_DWithinSphere untuk memeriksa apakah jarak bola antara dua objek geometri berada dalam rentang yang ditentukan. Jika jarak bola antara objek berada dalam rentang yang ditentukan, fungsi ini mengembalikan nilai true.

ST_Intersects

Anda dapat memanggil fungsi ST_Intersects untuk memeriksa apakah dua objek geometri berpotongan. Jika dua objek geometri memiliki ruang spasial bersama, ST_Intersects menentukan bahwa kedua objek berpotongan dan mengembalikan nilai true.

ST_Overlaps

Anda dapat memanggil objek ST_Overlaps untuk memeriksa apakah dua objek geometri tumpang tindih secara spasial tetapi satu tidak terkandung dalam yang lain. Jika dua objek geometri tumpang tindih secara spasial tetapi satu tidak terkandung dalam yang lain, fungsi ini mengembalikan nilai true.

ST_Within

Anda dapat memanggil fungsi ST_Within untuk memeriksa apakah objek geometri kedua yang Anda tentukan sepenuhnya berada di dalam objek geometri pertama yang Anda tentukan. Jika objek geometri kedua sepenuhnya berada di dalam objek geometri pertama, fungsi ini mengembalikan nilai true.

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.

Catatan
  • Jika semua titik geomB terletak di dalam atau pada batas geomA, maka geomA mencakup geomB.

  • ST_Contains adalah fungsi invers dari ST_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.

Catatan

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.

Catatan

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.

Catatan

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.

Catatan

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.

Catatan
  • Anda dapat menentukan objek geometri dengan jenis berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, dan GeometryCollection.

  • Jika ST_Within(A,B) dan ST_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     |
    +----------+