Например, скажем, у меня есть таблица:
Business(BusinessID, Lattitude, Longitude)
Все индексируются, конечно. Также есть 1 миллион записей
Скажем, я хочу найти предприятия, близкие к 106,5, например, как бы я это сделал?
Если я сделаю
SELECT *
FROM Business
WHERE (Some formula to compute distance here) < 2000
например, или если я сделаю
SELECT *
FROM Business
TOP 20
В теории компьютер должен будет вычислять расстояние для всех предприятий, в то время как на практике должны рассчитываться только те, которые имеют широту и долготу в пределах определенного диапазона.
Итак, как я могу делать то, что я хочу в PhP или SQL, например?
Я до сих пор благодарен за ответ. Я использую mysql, и у них нет ничего более эффективного, чем очевидное решение. MySQL пространственная также не имеет функции вычисления расстояния.