sql >> データベース >  >> RDS >> Mysql

mysqlで特定の距離内にあるポイント(緯度、経度)を計算しますか?

    近似アルゴリズムを探している場合は、k-meansアルゴリズムまたは階層的クラスター、特にモンスター曲線または空間充填曲線を探すことをお勧めします。まず、グラフの最小スパニングツリーを計算してから、最も長くて最も高価なエッジを削除します。次に、ツリーは多くの小さなツリーを作成し、k-meansを使用してポイントのグループ(クラスター)を計算できます。

    「シングルリンクkクラスタリングアルゴリズムは...正確にはクラスカルのアルゴリズムです...MSTを見つけてk-1の最も高価なエッジを削除するのと同じです。」たとえば、ここを参照してください: https://stats.stackexchange.com/質問/1475/ visualization-software-for-clustering

    モンスターカーブの良い例はヒルベルトカーブです。この曲線の基本的な形はU字型であり、その多くを一緒にコピーして回転させることにより、曲線は真核生物の空間を埋めます。驚くべきことに、グレイコードはこのU字型の向きを見つけるのに役立ちます。 Nickの空間インデックス四分木ヒルベルト曲線詳細に関するブログ記事 。代わりに、曲線のインデックスを計算するために、BingMapのようにクワッドキーを組み合わせることができます。クワッドキーは座標ごとに一意であり、通常の文字列操作で使用できます。キーの各位置はU字型の曲線の一部であるため、クワッドキーから部分的に左から右に選択することで、このポイントの領域を選択できます。

    この画像では、ヒルベルト曲線を使用して緑色のポリゴンが検出されていることがわかります。

    私のphpクラスはここにあります: http://www.phpclasses.org/package/6202-PHP-Generate-points-of-an-Hilbert-curve.html




    1. 結果をグループ化せずにSUM()を使用する

    2. MySQLで特定の文字のASCIIコードを見つける方法

    3. MYSQLは、切り替えられた場合でも2つの列のエントリを区別します

    4. django.db.utils.OperationalError:(2026、'SSL接続エラー:SSL_CTX_set_tmp_dhが失敗しました')