セットアップ
ラインストリングを含むテーブルがあります。線ストリングは、複数の地理的ポイントで構成されています。各ポイントは緯度と経度で構成されています。注:ラインストリング値は、データベースにTEXTとして格納されます。
したがって、テーブルの1つの行は次のようになります。id:
整数の
線文字列:x1、y2、x2、y2、x3、y3、x4、y4
問題
Googleマップでは、一度に最大1000個の要素しか表示できません。私の場合、850行の行を表示しているので、将来さらに多くの行を追加する必要があります。
質問
かなりの数の線ストリングが1つまたは複数の他の線ストリングと接続しています。つまり、同じ座標で開始および/または終了します。私がやりたいのは、データセットを最適化して、両端で接続するラインストリングがDBテーブルにマージされるようにするための最良の方法を見つけることです。これにより、DBテーブルを解析して、Googleマップの表示ファイルを作成するときに要素の総数が減ります。
例
この例では、アルファ(A、B、C)値が地理的なポイントを表すと想像してください。最適化されていないテーブルは次のようになります。
最適化前:
id linestring
1 A、B、C
2 C、D
3 B、A
4 F、G、H
5 G、I
6 H、J
最適化後:
1 A、B、C、D
2 F、G、H、J
3 G、I
では、データを最適化するための最良の方法は何ですか?最適に機能する特定のアルゴリズムはありますか?私は私が定式化して追加する解決策についていくつかのアイデアを持っていますが、それらは冗長であり、混乱しているようです。
私はCS専攻ではないので、ずさんな用語を言い訳して、どこかで説明が必要かどうか教えてください。ありがとう!
参考までに..MySQLDBを使用しています。私は空間拡張を使用していません。空間拡張を使用する恥ずかしいほど単純なソリューションがある場合は、とにかくそれについて聞いてみたいと思います。