एक धीमा संस्करण (स्थानिक अनुक्रमणिका के बिना):
SELECT *
FROM mytable
WHERE MBRIntersects(mypolygon, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
स्थानिक अनुक्रमणिका का उपयोग करने के लिए, आपको अपनी तालिका को असामान्य बनाना होगा ताकि प्रत्येक बहुभुज शीर्ष अपने स्वयं के रिकॉर्ड में संग्रहीत हो।
फिर SPATIAL INDEX
बनाएं उस क्षेत्र पर जिसमें कोने के निर्देशांक होते हैं और बस यह प्रश्न जारी करते हैं:
SELECT DISTINCT polygon_id
FROM vertices
WHERE MBRContains(vertex, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
अगर आप UTM
. स्टोर करते हैं तो चीजें और भी आसान हो जाएंगी अक्षांश और देशांतर के बजाय आपके डेटाबेस में निर्देशांक।