如何使用Boost :: Geometry解析wkt Geometrycollection?

时间:2013-09-25 09:17:19

标签: c++ boost boost-geometry wkt

我是boost :: geometry的新手,在文档中或此处找不到任何示例。 我有一个文本文件,每行都有wkt GEOMETRYCOLLECTION。每个系列都有一个或多个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);

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

这将是变体(Boost.Variant的集合),但尚未完全实现,只有少数算法支持该变体。