2012-01-06 10 views
3

A、B、および距離x(Aからのマイル)およびy(Bからのマイル)の2つのポイントがあります。 AからBまでの距離をNとしましょう。したがって、AはBからNマイル離れています。問題を解決するにはどうすればいいですか:Aから(N + x + y)マイル離れたポイントはありますか?私はどのようにこれをより良く説明するか分からない。私は実際にこの問題をどのように攻撃するかについての手がかりがありません。私はFastest Way to Find Distance Between Two Lat/Long Pointsを読んでいます。与えられた解決策は2点間の距離を計算し、この解決法が私の問題に適用できるかどうか、ポイント(緯度、経度)を計算するのはmysqlで一定の距離ですか?

+1

1.私が正しく理解していれば、あなたがしています点Aを中心とし、半径R =(N + x + y)の円内のすべての点を探してみる。 2. MySQL外でRを計算できると仮定します。 これらの2つの仮定は正しいですか? –

+1

私は恥ずかしがり屋ではありませんが、これらのMysql関数をチェックしてください[幾何学的オブジェクト間の関数 - テスト - 空間関係 - ](http://dev.mysql.com/doc/refman/5.1/en/functions-for- geometric-objects.htmlの間のテスト空間的関係) –

答えて

2

近似アルゴリズムをお探しの場合は、k-meansアルゴリズムまたは階層クラスター、特にモンスター曲線または空間充填曲線を探すことをお勧めします。最初に、グラフの最小スパニングツリーを計算してから、最長と最長のエッジを削除することができます。木は多くの小さな木を作り、k-平均を使って点群、すなわちクラスターを計算することができます。

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

モンスターカーブの良い例は、ヒルベルト曲線です。この曲線の基本的な形はU字形であり、その多くを一緒にコピーしてそれを回転させることによって、曲線が真正面の空間を埋める。驚くべきことに、この灰色のコードは、このU字型の向きを見つけるのに役立ちます。ニックの空間インデックスquadtreeヒルベルト曲線blog article about more detailsを調べることができます。カーブのインデックスを計算するのではなく、ビンマップのようにクワッドキーを組み合わせることができます。クワッドキーは各座標に固有であり、通常の文字列操作で使用できます。キーの各位置はU字型曲線の一部です。したがって、クォドキーの左から右に部分的に選択して、この点の領域を選択することができます。

enter image description here

あなたがここに私のPHPクラスを見つけることができます::ヒルベルト曲線を使用して発見された

あなたが緑のポリゴンを見ることができます。この画像で

http://www.phpclasses.org/package/6202-PHP-Generate-points-of-an-Hilbert-curve.html

+0

+1あなたの説明に基づいて理解するのは難しいですが、これがどのように達成できるかを示す実際の例を持つことははるかに明確です(そしてaha)。 – Jasonw

+0

@Jasonw:答えにいくつかの情報を追加しました。画像と緑のポリゴンは、ヒルベルト曲線を使って自分で行います。旅行の売り手の問題を見つけることは役に立ちます。 – Bytemain

関連する問題