Zaun Geo: Wie zu finden, wenn ein Punkt oder eine Form innerhalb eines Polygons ist Oracle Spatial mit
-
25-09-2019 - |
Frage
Wie finde ich, ob ein Punkt oder ein Polygon in einem anderen Polygon ist Oracle mit räumlichen SQL-Abfrage
Hier ist das Szenario;
Ich habe eine Tabelle (STATE_TABLE), die einen räumlichen Typen enthält (SDO_GEOMETRY), die ein Polygon ist (einen Staat sagen), Ich habe eine weitere Tabelle (UNIVERSITY_TABLE), die räumlichen Daten (SDO_GEOMETRY) enthält (Punkt / Polygon), die enthält Universitäten;
Wie finde ich, wenn eine ausgewählte University ( 's) ist in einem bestimmten Staat mit Hilfe von SQL-select-Anweisung.
In erster Linie möchte ich Existenz gegeben Objekt (e) in einer Geofence suchen.
Danke.
Lösung
Sie werden zu müssen gehen entweder SDO_CONTAINS oder SDO_RELATE mit einer Maske verwenden ‚enthalten‘
Bitte siehe Dokumentation unter
SDO_CONTAINS http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064
oder
SDO_RELATE http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#i78531
Entweder eine dieser Sie so etwas wie das folgende tun würde (vorausgesetzt, Ihre räumliche Information wird in einer Säule enthalten namens ‚GEOM‘, die räumlich indiziert ist):
select
ST.NAME, UT.UNIVERSITY_NAME
from
STATE_TABLE ST
INNER JOIN UNIVERSITY_TABLE UT
ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'
Sie müssen mir verzeihen, wie ich erinnere mich nicht speziell auf die korrekte Syntax für dieses und ich weiß nicht, ob die oben kommen wird ordnungsgemäß bei allen. Dies sollte wenn Sie in die richtige Richtung weisen genug.