ホームページ >バックエンド開発 >PHPチュートリアル >Baidu Map で、座標点に基づいてデータベース内の特定の距離内にある N 個の座標点を検索するにはどうすればよいですか?
Baidu Map で、座標点に基づいてデータベース内の特定の距離内にある N 個の座標点を検索する方法
環境: php+mysql
既存のデータベースにはある程度の経度と緯度 (100W 以上) が保存されています座標点、
座標点に基づいて、近隣 1 キロ以内のすべての一致情報を取得するにはどうすればよいですか?
データベース内の経度フィールド lng と緯度フィールド lat。 。
百度地図の使用。
オンラインでお待ちしています。ありがとうございます。
-----解決策---------
座標列のソート
ユークリッドのフィルタ対象となるレコード間の距離
------解決策----------------------------
私は次のように考えます:
中心点の経度と緯度がわかったので、次元に基づいて N キロメートルを満たす経度と緯度のおおよその範囲を計算できます。 。この検索の結果は 2N*2N の正方形になります。
たとえば、北緯 34.5 度の場合、1 キロメートルにわたって北緯 35 度または 34 度の点を見つける必要はありません。 、最初にプログラム内で変換できます
ただし、フィルタリングする部分がまだあります。円の半径 N の外側の部分です。
これが可能であれば、lng lat Joint Index だけを実行してください。 、100 万スケール、非常に高速