Een langzame versie (zonder ruimtelijke indexen):
SELECT *
FROM mytable
WHERE MBRIntersects(mypolygon, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
Om gebruik te maken van de ruimtelijke indexen, moet u uw tabel denormaliseren, zodat elk hoekpunt van de polygoon in zijn eigen record wordt opgeslagen.
Maak vervolgens de SPATIAL INDEX
op het veld dat de coördinaten van de hoekpunten bevat en voer deze vraag uit:
SELECT DISTINCT polygon_id
FROM vertices
WHERE MBRContains(vertex, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
De dingen zullen veel gemakkelijker zijn als u UTM
opslaat coördinaten in uw database in plaats van breedte- en lengtegraad.