5

誰かが私を正しい方向に向けてくれることを願っています。

何百万ものレコードがフロー/ストリーミングされており、簡単な検索を行って、それらがどの国のポリゴンに該当するかを判断する必要があります。

誰かがこれを行うための完全な Java ベースのアプローチを推奨できますか。私が言えることから、JTSおよび/またはgeotoolsを使用しますか? 私の考えでは、すべての国のポリゴンを取得し、FishNet や Grid などを使用してそれらを分割して、パフォーマンスを向上させるために小さくすることを考えています。次に、これらを Java ベースのメモリ内空間インデックスにロードします...レコードがストリーミングされると、Java 空間インデックスを検索して、どの国に分類されるかを確認します。(おそらく、空間機能コレクションのようなものです)。

このアプローチは、大量のデータに適しているように思えますか? Javaの観点から、これをどのように実装しますか? これは JTS や Geotools を使用しているだけですか? どのタイプのインデックスを作成しますか。(ポリゴン データは国境のみを含むため、読み込み後は静的になります)

geotools のドキュメントを読んでも、空間インデックスを解読するのは難しく、そのパフォーマンスと使用する必要があるかどうかはわかりません。

ヘルプやガイダンスをいただければ幸いです。

ありがとう

4

2 に答える 2

1

簡単な答え: あなたの国から台形地図を作成し、点の位置は O(log n) で、n は線分の数です。

参照: Computational Geometry: Algorithms and Applications、Mark de Berg、Otfried Cheong、Marc van Kreveld、Mark Overmars の第 6 章

于 2014-02-12T19:06:26.747 に答える