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