環境: php+mysql
既存のデータベースには、経度と緯度(100W以上)の座標点がいくつか保存されています
1つの座標点に基づいて、近隣1km以内のすべての一致情報を取得するにはどうすればよいですか?
データベース内の経度フィールド lng と緯度フィールド lat。 。
百度地図を使用します。
オンラインで待っています ありがとうございます。
Sogou は Baidu よりも優れています
同意見ですが、会社は Baidu 製であることを要求しています。だから選択肢はありません
Sogou は Baidu よりも優れています
座標列を並べ替えます
ユークリッド距離を満たすレコードをフィルターします
私は次のように考えます:
中心点の経度と緯度がわかったので、次のようにしますおおよその経度と緯度の範囲を N キロメートルに基づいて計算できます。 。この検索の結果は 2N*2N の正方形になります
たとえば、北緯 34.5 度の場合、1 キロメートルにわたって北緯 35 度以上または 34 度以上の点を見つける必要はありません。具体的には、次のように変換できます。最初にプログラムを実行します
ただし、半径 N の外側の部分をフィルタリングする必要があります
これが可能であれば、lng lat ジョイント インデックス、100 万スケール、非常に高速です
とても退屈なので、騙されました。また!私の時間は時間ではないですか? ?
http://www.86afei.com/category/work/mysql
http://www.canphp.com/article/show-113.html
アルゴリズムに何か問題があると思われる場合は、次のことができます。それを自分自身から見せてください。
ここで愚かな行動をする必要はありません
この投稿者は非常に非倫理的です。 。 。最終的にどうなるかは言いません