Zaun Geo: Wie zu finden, wenn ein Punkt oder eine Form innerhalb eines Polygons ist Oracle Spatial mit

StackOverflow https://stackoverflow.com/questions/4601202

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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top