Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - Unterstützung für räumliche Daten » Verwendung räumlicher Daten » Einführung in räumliche Daten » SQL Anywhere-Unterstützung für räumliche Daten » Unterstützte räumliche Datentypen und ihre Hierarchie » Unterstützte räumliche Prädikate

 

Intuitivität räumlicher Prädikate

Das Ergebnis eines Prädikats ist manchmal nicht intuitiv. Aus diesem Grund sollten spezielle Fälle getestet werden, um sicherzustellen, dass die gewünschten Ergebnisse geliefert werden. Beispiel: Damit eine Geometrie eine andere Geometrie enthält (a.ST_Contains(b)=1) oder eine Geometrie sich innerhalb einer anderen Geometrie befindet (b.ST_Within(a)=1), müssen sich die Innenbereiche von a und b schneiden und kein Teil von b darf den Außenbereich von a schneiden. Es gibt jedoch bestimmte Fälle, in denen eine Geometrie als innerhalb einer anderen Geometrie betrachtet werden könnte, dies aber nicht wird.

Folgende Anweisung gibt z. B. für a.ST_Contains(b) und b.ST_Within(a) 0 (a ist rot) zurück:

Vier Grafiken jeweils mit rotem Quadrat. Die erste zeigt ein blaues Rechteck, das das rote Quadrat teilweise überlappt. Die zweite zeigt blaue Punkte außerhalb des roten Quadrats. Die dritte zeigt einen blauen Punkt auf der Begrenzungslinie des roten Quadrats. Die vierte zeigt eine Linie, die einem Teil der Begrenzung des roten Quadrats folgt.

Fall eins und zwei sind offensichtlich: Die lila Geometrien liegen nicht vollständig innerhalb der roten Quadrate. Fall drei und vier sind allerdings nicht so offensichtlich. In beiden Fällen liegen die lila Geometrien nur auf der Grenze der roten Quadrate. ST_Contains betrachtet die lila Geometrien als nicht innerhalb der roten Quadrate liegend, auch wenn sie es anscheinend tun.

ST_Covers und ST_CoveredBy sind Prädikate ähnlich ST_Contains und ST_Within. Der Unterschied liegt darin, dass ST_Covers und ST_CoveredBy nicht erfordern, dass das Innere der beiden Geometrien eine Schnittmenge aufweist. Außerdem haben ST_Covers und ST_CoveredBy häufig einfacher zu verstehende Ergebnisse als ST_Contains und ST_Within.

Wenn die Prädikattests nicht das erwartete Ergebnis liefern, sollten Sie die Methode ST_Relate verwenden, um die getestete Beziehung genau festzulegen.

 Siehe auch