2013-09-25 2 views
1

Я новичок в boost :: geometry и не могу найти примеров в документации или здесь для этого. У меня есть текстовый файл с wkt GEOMETRYCOLLECTION на каждой строке. Каждая коллекция содержит один или несколько MULTIPOINTS. Синтаксический MULTIPOINTS не проблема:Как разобрать wkt Geometrycollection с Boost :: Geometry?

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

Это будет вариант (коллекция Boost.Variant's), но он еще не полностью реализован, только несколько алгоритмов поддерживают этот вариант.

+0

спасибо. Любая дорожная карта или дата запланированы, когда/если это будет реализовано? – baal

+1

@baal Нет точной временной шкалы, но мы медленно работаем над вариантными геометриями. Таким образом, вам нужно будет проверить исходный код из багажника и посмотреть, что не хватает того, что работает для вас. – mloskot

Смежные вопросы