En langsom version (uden rumlige indekser):
SELECT *
FROM mytable
WHERE MBRIntersects(mypolygon, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
For at gøre brug af de rumlige indekser, skal du denormalisere din tabel, så hver polygon vertex er gemt i sin egen post.
Opret derefter SPATIAL INDEX
på feltet, som indeholder koordinaterne for hjørnerne, og udsend bare denne forespørgsel:
SELECT DISTINCT polygon_id
FROM vertices
WHERE MBRContains(vertex, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
Tingene bliver meget nemmere, hvis du gemmer UTM
koordinater i din database i stedet for bredde- og længdegrad.