Eine der wichtigsten Funktionen eines GIS ist es, die räumlichen Beziehungen zwischen Features zu ermitteln. Überlappen die Features? Ist ein Feature in einem anderen enthalten? Schneiden sich die Features?
Es gibt verschiedene Arten von räumlichen Beziehungen zwischen Geometrien. Unten sind Beispiele dafür aufgeführt, wie eine Geometrie mit einer anderen in räumlicher Beziehung stehen kann:
- Geometrie A verläuft durch Geometrie B.
- Geometrie A ist vollständig in Geometrie B enthalten.
- Geometrie A enthält Geometrie B vollständig.
- Die Geometrien schneiden und berühren einander nicht.
- Die Geometrien sind vollkommen lagegleich.
- Die Geometrien überlappen einander.
- Die Geometrien berühren sich an einem Punkt.
Um zu bestimmen, ob diese Beziehungen vorhanden sind oder nicht, führen Sie Funktionen für räumliche Beziehungen aus. Diese Funktionen vergleichen die folgenden Eigenschaften der Geometrien, die Sie in der Abfrage angeben:
- Der Außenbereich (Exterior, E) der Geometrien, d. h. der gesamte Raum, der nicht von einer Geometrie in Anspruch genommen wird.
- Der Innenbereich (Interior, I) der Geometrien, d. h. der Raum, der von einer Geometrie in Anspruch genommen wird.
- Die Grenze (Boundary, B) der Geometrien, d. h. die Schnittstelle zwischen dem Innen- und Außenbereich einer Geometrie.
Wenn Sie eine räumliche Beziehungsabfrage erstellen, geben Sie den Typ der räumlichen Beziehung an, nach dem Sie suchen, sowie die Geometrien, die Sie vergleichen möchten. Die Abfragen geben entweder "true" oder "false" zurück. Entweder sind die Geometrien innerhalb der angegebenen räumlichen Beziehung aneinander beteiligt oder nicht. In den meisten Fällen verwenden Sie eine räumliche Beziehungsabfrage, um einen Ergebnissatz zu filtern, indem Sie diese in die Where-Klausel einfügen.
Wenn Sie z. B. über eine Tabelle verfügen, in der die Positionen von vorgeschlagenen Entwicklungsstandorten gespeichert sind, sowie über eine andere Tabelle, in der die Positionen archäologisch bedeutender Standorte gespeichert sind, sollten Sie sicherstellen, dass die Features in der Tabelle mit den Entwicklungsstandorten nicht die archäologischen Standorte schneiden. Sie können eine Abfrage ausgeben, um sicherzustellen, dass keine Entwicklungsstandorte die Archäologiestandorte schneiden. Falls dies doch der Fall ist, wird die ID der vorgeschlagenen Entwicklungsstandorte zurückgegeben. In diesem Beispiel wird die Funktion "ST_Disjoint" verwendet.
SELECT d.projname,a.siteid
FROM dev d, archsites a
WHERE sde.st_disjoint(d.shape,a.shape)= 'f'
projname siteid
bow wow chow A1009
Diese Abfrage gibt den Namen des Entwicklungsstandortes und die ID des Archäologiestandortes zurück, die nicht unzusammenhängend sind, sich also schneiden. Es wird das Entwicklungsprojekt "Bow Wow Chow" zurückgegeben, das den Archäologiestandort "A1009" schneidet.
Informationen zu "ST_Geometry"-Funktionen, die räumliche Beziehungen in Oracle oder PostgreSQL testen, finden Sie unter Funktionen für räumliche Beziehungen für "ST_Geometry". Informationen zur Verwendung von Funktionen für räumliche Beziehungen mit den räumlichen Typen IBM DB2, IBM Informix, Oracle Spatial, PostGIS oder Microsoft SQL Server finden Sie in der Dokumentation für diese Datenbankmanagementsysteme.