السياج الجغرافي: كيفية العثور على ما إذا كانت نقطة أو شكل داخل مضلع باستخدام Oracle Spatial
-
25-09-2019 - |
سؤال
كيف أجد ما إذا كانت نقطة أو مضلع داخل مضلع آخر باستخدام استعلام Oracle Spatial SQL
ها هو السيناريو.
لدي جدول (state_table) يحتوي على نوع مكاني (SDO_Geometry) وهو مضلع (قول حالة) ، لدي جدول آخر (University_Table) يحتوي على بيانات مكانية (SDO_Geometry) (نقطة/مضلع) تحتوي على جامعات ؛
الآن كيف أجد ما إذا كانت جامعة (الجامعة) المحددة في حالة معينة باستخدام عبارة SQL Select.
في المقام الأول ، أريد تحديد موقع وجود كائنات (كائنات) محددة في الجغرافية.
شكرًا.
المحلول
ستحتاج إلى استخدام إما sdo_contains أو sdo_relate مع قناع "يحتوي على"
يرجى الاطلاع على الوثائق الموجودة في
sdo_containshttp://download.oracle.com/docs/cd/e11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064 ل
أو
SDO_RELATEhttp://download.oracle.com/docs/cd/e11882_01/appdev.112/e11830/sdo_operat.htm#i78531
أي من هذه الأشياء التي ستفعل شيئًا مثل ما يلي (على افتراض أن معلوماتك المكانية موجودة في عمود يسمى "Geom" مفهرس مكانيًا):
select
ST.NAME, UT.UNIVERSITY_NAME
from
STATE_TABLE ST
INNER JOIN UNIVERSITY_TABLE UT
ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'
سيتعين عليك أن تسامحني لأنني لا أتذكر على وجه التحديد بناء الجملة الصحيح لهذا ولا أعرف ما إذا كان الانضمام أعلاه سيعمل بشكل صحيح على الإطلاق. يجب أن يكون هذا كافياً لتوجيهك في الاتجاه الصحيح.