2012-03-02 57 views
1

我在mySql數據庫中有一組地理標記的圖片。你可以考慮我的照片表是:K-Nearest Neighbors和MySql地理索引

create table `Pictures` (

location Point NOT NULL, 
timeCreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 

SPATIAL INDEX(location) 

)ENGINE= MyISAM DEFAULT CHARSET=utf8; 

我打算執行基於圖片的位置,K最近鄰算法。說,如果K = 10,選擇地理位置最接近用戶位置的10張圖片。

我很感謝您的建議。

+0

那裏有什麼限制嗎?就像它是一組固定的圖片或是圖片添加和刪除? – Tim 2012-03-02 09:57:41

+0

@Tim圖片不斷被移動用戶添加。 – olix20 2012-03-02 10:06:13

回答

1

看看下面的鏈接。我相信它解決了與單獨使用MySQL查詢相同的問題(如果您的問題是找到10個最近的圖片給用戶位置)。

MySQL Great Circle Distance (Haversine formula)

我希望這可以幫助你解決你的問題。

+0

使用半正弦公式意味着你必須計算所有點的距離。即使你只需要10個最近的點。 – 2012-06-20 21:29:33

+0

@ Jim Thio:我同意你需要計算所有點的距離,並考慮我發佈的鏈接。您能否爲此問題提供更好的工作解決方案? – 2012-06-25 08:26:00

+0

似乎沒有爲我的SQL。我正在轉向mongodb。您可以通過首先在小矩形中搜索來模擬它。如果mysql有一個命令來做,它對我來說就足夠了。 – 2012-06-25 08:28:43