C++ で空間データを操作するための推奨されるフレームワークは何ですか?
ポリゴン オブジェクト、ポイント オブジェクト、およびユニオン、交差点、距離、面積などの操作を探しています。WGS84 (経度、緯度) で座標を入力し、平方キロメートルで面積を取得する必要があります。
フリー/オープンソースのフレームワークを希望しますが、提案は受け付けています。
編集: 残念ながら、GPL 以外のソリューションが必要です。LGPLは大丈夫です。
C++ で空間データを操作するための推奨されるフレームワークは何ですか?
ポリゴン オブジェクト、ポイント オブジェクト、およびユニオン、交差点、距離、面積などの操作を探しています。WGS84 (経度、緯度) で座標を入力し、平方キロメートルで面積を取得する必要があります。
フリー/オープンソースのフレームワークを希望しますが、提案は受け付けています。
編集: 残念ながら、GPL 以外のソリューションが必要です。LGPLは大丈夫です。
また、最近レビューされ、最終的にBoost C++ Librariesのコレクションに受け入れられたGeneric Geometry Libraryもお勧めします。Boost に含まれているため、GGL は Boost.Geometry と呼ばれるようになりました。より正確にはBoost.Geometry 別名 GGL、Generic Geometry Libraryです。
その他の便利なツール
CGALオープンソースプロジェクトは、C++ライブラリの形式で効率的で信頼性の高い幾何学的アルゴリズムへの簡単なアクセスを提供します。CGALは、コンピューターグラフィックス、科学的視覚化、コンピューター支援設計とモデリング、地理情報システム、分子生物学、医療画像、ロボット工学と運動計画、メッシュ生成、数値法など、幾何学的計算を必要とするさまざまな分野で使用されます。
Generic Geometry Library(geometrylibrary.geodan.nl、現在「プレビュー4」)は、ユーザー定義のジオメトリを操作するジオメトリアルゴリズムの汎用実装を提供します。アルゴリズムには、ポイントインポリゴン、ポリゴンエリア、ポイントツーポイント距離、ポイントツーライン距離、ラインクリッピングとポリゴンクリッピング、凸型ハルなど、よく知られた、しばしば必要とされるアルゴリズムが含まれています。また、変換アルゴリズム、地図投影法、選択アルゴリズムも含まれています。アルゴリズムに加えて、ライブラリは使用される可能性のあるジオメトリクラスを提供しますが、一般的なアルゴリズムはそれらに依存しません。(Boostに含まれることを提案)
ジオメトリ モデルのGEOSと、ラスターとベクトルをサポートする空間データ抽象化ライブラリの GDAL/OGR 。
これらのライブラリを使用することで、異なる座標系 (WGS84 との間の変換など) を処理することもできます。これは、どちらも内部でProj.4を使用しているためです。メートル単位の距離を見つけるには、WGS84 から UTM などのメートルを使用するものに変換できます。
あなたが求めたものには包括的で高レベルではありませんが、測地変換を行うには、NGA の優れた GEOTRANS ライブラリを使用できます。
http://earth-info.nga.mil/GandG/geotrans/
これにより、WGS84 緯度/経度とローカルデカルト座標系の間で変換できます。C コードは十分にテストされ、文書化されており、パブリック ドメインです。
これらの計算がどれほど複雑になるかによっては、独自の計算を検討することをお勧めします。あなたがスピードと膨満感の欠如のためにあなたの最良の選択肢かもしれないエリアをやっているだけなら.
それ以外の場合は、Geographic Foundation Class (GFC) ライブラリが最適です。