1

我是 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);

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

4

1 回答 1

2

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

于 2013-09-25T10:02:41.767 回答