2010-09-06 2 views
9

MySQL (таблица)Заказ столов по близости к определенной широты/долготы (с использованием MySQL + PHP)

id | url | lat | lng 
---------------------------------- 
1 | x | 44.339565 | -101.337891 
---------------------------------- 
2 | y | 44.150681 | -101.074219 
---------------------------------- 
3 | z | 43.897892 | -100.634766 

, что я хочу сделать сейчас порядок списка в соответствии с их близостью к (43.834527, -99,140625) ,

$a = mysql_query("SELECT * FROM table ORDER BY proximity DESC"); 
while($b = mysql_fetch_assoc($a)) 
{ 
echo $b['url'].'<br />'; 
} 

ответ

11

Вы можете быть заинтересованы в проверке следующую презентацию:

автор описывает, как вы можете использовать Haversine Formula в MySQL по заказу близости и ограничьте поиск до определенного диапазона. Он также описывает, как избежать полного сканирования таблицы для таких запросов, используя традиционные индексы в столбцах широты и долготы.


PDF Version