ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Daten verwalten
  • Werkzeuge
  • Erweiterungen

ST_Relate

  • Definition
  • Syntax
  • Rückgabetyp
  • Beispiele

Definition

"ST_Relate" vergleicht zwei Geometrien und gibt 1 (Oracle und SQLite) oder t (PostgreSQL) zurück, wenn die beiden Geometrien die Bedingungen erfüllen, die in der Zeichenfolge DE-9IM-Mustermatrix festgelegt worden sind. Andernfalls wird 0 (Oracle und SQLite) oder f (PostgreSQL) zurückgegeben.

Bei Verwendung mit SQLite gibt es eine Option, wenn "ST_Relate" in SQLite verwendet wird: Sie können zwei Geometrien vergleichen, damit sie eine Zeichenfolge zurückgeben, die die DE-9IM-Mustermatrix darstellen, mit der die Beziehung der Geometrien zueinander definiert wird.

Syntax

Oracle und PostgreSQL

sde.st_relate (geometry1 sde.st_geometry, geometry2 sde.st_geometry, patternMatrix string)

SQLite

Option 1

st_relate (geometry1 st_geometry, geometry2 st_geometry, patternMatrix string)

Option 2

patternMatrix string st_relate (geometry1 st_geometry, geometry2 st_geometry)

Rückgabetyp

Boolescher Wert

Mit Option 2 für SQLite wird eine Zeichenfolge zurückgegeben.

Beispiele

Eine DE-9IM-Mustermatrix ist ein Hilfsmittel zum Vergleichen von Geometrien. Es gibt verschiedene Typen solcher Matrizen. Beispielsweise können Sie mit der Mustermatrix (T*F**FFF*) herausfinden, ob zwei beliebige Geometrien gleich sind.

In diesen Beispielen wird die Tabelle "relate_test" mit drei räumlichen Spalten erstellt, in die jeweils Punkt-Features eingefügt werden. Die ST_Relate-Funktion wird in der SELECT-Anweisung verwendet, um zu testen, ob die Punkte gleich sind. Beachten Sie, dass empfohlen wird, stattdessen die Funktion ST_Equals zu verwenden, falls Sie ermitteln möchten, ob Geometrien gleich sind.

Oracle

CREATE TABLE relate_test (
 g1 sde.st_geometry,
 g2 sde.st_geometry,
 g3 sde.st_geometry
);
INSERT INTO relate_test (g1, g2, g3) VALUES (
 sde.st_geometry ('point (10.02 20.01)', 4326),
 sde.st_geometry ('point (10.02 20.01)', 4326),
 sde.st_geometry ('point (30.01 20.01)', 4326)
);
SELECT sde.st_relate (g1, g2, 'T*F**FFF*') g1_equals_g2, 
 sde.st_relate (g1, g3, 'T*F**FFF*') g1_equals_g3, 
 sde.st_relate (g2, g3, 'T*F**FFF*') g2_equals_g3 
 FROM RELATE_TEST;

Daraufhin wird Folgendes zurückgegeben:

g1_equals_g2     g1_equals_g3      g2_equals_g3
1                0                 0

PostgreSQL

CREATE TABLE relate_test (
 g1 sde.st_geometry,
 g2 sde.st_geometry,
 g3 sde.st_geometry
);
INSERT INTO relate_test (g1, g2, g3) VALUES (
 sde.st_geometry ('point (10.02 20.01)', 4326),
 sde.st_geometry ('point (10.02 20.01)', 4326),
 sde.st_geometry ('point (30.01 20.01)', 4326)
);
SELECT st_relate (g1, g2, 'T*F**FFF*') AS "g1=g2", 
 st_relate (g1, g3, 'T*F**FFF*') AS "g1=g3",
 st_relate (g2, g3, 'T*F**FFF*') AS "g2=g3" 
 FROM relate_test;

Daraufhin wird Folgendes zurückgegeben:

g1=g2     g1=g3     g2=g3
t          f         f

SQLite

In diesem ersten Beispiel wird die erste ST_Relate-Option angezeigt, in der zwei Geometrien basierend auf einer DE-9IM-Mustermatrix verglichen werden, damit sie 1 zurückgeben, wenn die Geometrien die in der Matrix definierten Anforderungen erfüllen, oder 0, wenn die Geometrien dies nicht tun.

CREATE TABLE relate_test (id integer primary key autoincrement not null);
SELECT AddGeometryColumn(
 NULL,
 'relate_test',
 'g1',
 4326,
 'point',
 'xy',
 'null'
);
CREATE TABLE relate_test2 (id integer primary key autoincrement not null);
SELECT AddGeometryColumn(
 NULL,
 'relate_test2',
 'g2',
 4326,
 'point',
 'xy',
 'null'
);
CREATE TABLE relate_test3 (id integer primary key autoincrement not null);
SELECT AddGeometryColumn(
 NULL,
 'relate_test3',
 'g3',
 4326,
 'point',
 'xy',
 'null'
);
INSERT INTO relate_test (g1) VALUES (
 st_geometry ('point (10.02 20.01)', 4326)
);
INSERT INTO relate_test2 (g2) VALUES (
 st_geometry ('point (10.02 20.01)', 4326)
);
INSERT INTO relate_test3 (g3) VALUES (
 st_geometry ('point (30.01 20.01)', 4326)
);
SELECT st_relate (relate_test.g1, relate_test2.g2, 'T*F**FFF*') AS "g1=g2", 
 st_relate (relate_test.g1, relate_test3.g3, 'T*F**FFF*') AS "g1=g3",
 st_relate (relate_test2.g2, relate_test3.g3, 'T*F**FFF*') AS "g2=g3" 
 FROM relate_test, relate_test2, relate_test3;

Daraufhin wird Folgendes zurückgegeben:

g1=g2     g1=g3     g2=g3
1          0         0

In diesem Beispiel werden zwei Geometrien verglichen und die DE-9IM-Mustermatrix zurückgegeben.

SELECT st_relate (g1,g3)
 FROM relate_test;

Daraufhin wird Folgendes zurückgegeben:

st_relate (g1,g3)
FF0FFF0F2

Verwandte Themen

  • Laden der SQLite-Bibliothek "ST_Geometry"

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2021 Esri. | Datenschutz | Rechtliches