1

私はboost::geometryが初めてで、ドキュメントやここで例を見つけることができません。各行に wkt GEOMETRYCOLLECTION を含むテキスト ファイルがあります。すべてのコレクションは、1 つ以上の MULTIPOINTS を保持します。MULTIPOINTS の解析は問題ありません。

typedef boost::geometry::model::point<double, 3, boost::geometry::cs::cartesian> point;
typedef boost::geometry::model::multi_point<point> multipoint;
multipoint myPoints;
boost::geometry::read_wkt("MULTIPOINT ((123456.123 1234567.123 42.42), (654321.123 7654321.123 123.12))", myPoints);
// do something with myPoints
for (auto &point : myPoints) {
  std::cout << point.get<0>() << " " << point.get<1>() << " " << point.get<2>() << std::endl;
}

しかし、私はこのようなものを解析する必要があります:

bg::read_wkt("GEOMETRYCOLLECTION (MULTIPOINT ((1 2 3), (3 2 1)), MULTIPOINT ((4 5 6), (7 8 9)))", myCollection);

これを行う方法はありますか?

4

1 に答える 1

2

これはバリアント (Boost.Variant のコレクション) になりますが、まだ完全には実装されておらず、バリアントをサポートするアルゴリズムはごくわずかです。

于 2013-09-25T10:02:41.767 に答える