2012-03-02 13 views
1

mySqlデータベースにジオタグ付きの画像があります。私の写真のテーブルは次のように考えることができます:K-Nearest NeighboursとMySql地理的インデックス

create table `Pictures` (

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

SPATIAL INDEX(location) 

)ENGINE= MyISAM DEFAULT CHARSET=utf8; 

私は、写真の場所に基づいてK-Nearest Neighborアルゴリズムを実行するつもりです。 K = 10の場合、地理的にユーザーの位置に最も近い10枚の画像を選択します。

ご意見ありがとうございます。

+0

制約はありますか?それは固定された一連の写真か、追加されたり削除された写真ですか? – Tim

+0

@Tim写真はモバイルユーザーによって継続的に追加されています。 – olix20

答えて

1

下記のリンクをご覧ください。私はあなたがMySQLクエリを使用するだけで(あなたの問題がユーザーの場所に10の最も近い絵を見つけることであるならば)同じ問題を解決すると信じています。

MySQL Great Circle Distance (Haversine formula)

私はこれがあなたの問題を解決することができますことを願っています。

+0

haversineの式を使用すると、すべての点の距離を計算する必要があることを意味します。最近10ポイントしか必要ありません。 –

+0

@ジム・チオ:私が投稿したリンクを考慮して、すべてのポイントの距離を計算する必要があることに同意します。あなたはこの問題のより良い解決策を提供してください。 –

+0

私のSQLには何もないようです。私はmongodbに移動しています。小さな四角形を最初に検索することでエミュレートできます。 mysqlがそうするコマンドを持っているなら、それは私のために十分に良いでしょう。 –