Versi lambat (tanpa indeks spasial):
SELECT *
FROM mytable
WHERE MBRIntersects(mypolygon, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
Untuk memanfaatkan indeks spasial, Anda perlu mendenormalisasi tabel Anda sehingga setiap simpul poligon disimpan dalam catatannya sendiri.
Kemudian buat SPATIAL INDEX
pada bidang yang berisi koordinat simpul dan hanya mengeluarkan kueri ini:
SELECT DISTINCT polygon_id
FROM vertices
WHERE MBRContains(vertex, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
Hal-hal akan jauh lebih mudah jika Anda menyimpan UTM
koordinat di database Anda, bukan garis lintang dan garis bujur.