2016-07-04 26 views
1

我有一個包含餐館的mysql表(innoDB),每個餐館都有緯度和經度字段(表中的單獨列)。Mysql - 查找具有座標視口內的項目

我使用谷歌的地方API自動完成爲客戶尋找在全球的位置,當發生這種情況我從谷歌「視口」

實例回

["viewport"]=> 
    array(2) { 
    ["northeast"]=> 
    array(2) { 
     ["lat"]=> 
     float(52.4309497) 
     ["lng"]=> 
     float(5.0683726) 
    } 
    ["southwest"]=> 
    array(2) { 
     ["lat"]=> 
     float(52.3182742) 
     ["lng"]=> 
     float(4.7288559) 
    } 

我的問題是如何與我從谷歌獲得的視口,我可以搜索裏面的所有餐館?

感謝您的幫助。

回答

2

有2種方法來做到這一點:

select * from TABLE where緯度BETWEEN [northeast lat] and [southwest lat] and經度BETWEEN [southwest lng] and [northeast lat]

  • 使用> =和< =運營商

select * from TABLE where緯度>= [northeast lat] and緯度<= [southwest lat] and經度>= [southwest lng] and經度<= [northeast lat]

注1:我的服務器上速度最快的查詢中使用是在BETWEEN

注2:已經可以看到在MYSQL文件的BETWEEN相當於(最小< = expr和expr < = max)存儲在thereory他們應該是相同的,但我還是決定sudgest的> =和< =選項指出一個事實,即它比之間選擇慢:)我希望TI有道理

乾杯