Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
wiki:documentation:devguide:geometry_module [2016/01/19 09:49] gribeiro [Spatial Relationships] |
wiki:documentation:devguide:geometry_module [2016/01/20 10:17] gribeiro [Point] |
||
---|---|---|---|
Line 5: | Line 5: | ||
It is important to notice that this module refers to //**a geometry model to be used in main memory**// and //**it doesn't assume any kind of persistence or data storage management**//. This section explains the basic concepts, design behind this module ad how to use it. | It is important to notice that this module refers to //**a geometry model to be used in main memory**// and //**it doesn't assume any kind of persistence or data storage management**//. This section explains the basic concepts, design behind this module ad how to use it. | ||
- | All the types offered by Geometry module are in the namespace ''te::gm''. Check the [[http://www.dpi.inpe.br/terralib5/codedocs_5.1.0/d9/dba/group__geometry.html|DOxygen documentation of this module]], where these and other classes are documented in details. | + | All the types offered by Geometry module are in the namespace ''te::gm''. Check the [[http://www.dpi.inpe.br/terralib5/codedocs_5.1.0/d9/dba/group__geometry.html|Doxygen documentation of this module]], where these and other classes are documented in details. |
===== General Concepts ===== | ===== General Concepts ===== | ||
Line 43: | Line 43: | ||
<code cpp> | <code cpp> | ||
- | std::unique_ptr<te::gm::Point> p = std::make_unique<te::gm::Point>(-54.0, -12.0, 4326); | + | te::gm::Point p(-54.0, -12.0, 4326); |
</code> | </code> | ||
Line 356: | Line 356: | ||
===== Set Operations ===== | ===== Set Operations ===== | ||
+ | **1.** Polygon intersection: | ||
+ | <code cpp> | ||
+ | std::unique_ptr<te::gm::Geometry> red( te::gm::WKTReader::read("POLYGON ( (2 2, 2 4, 5 4, 5 2, 2 2) )") ); | ||
+ | std::unique_ptr<te::gm::Geometry> blue( te::gm::WKTReader::read("POLYGON ( (4 1, 4 3, 7 3, 7 1, 4 1) )") ); | ||
+ | | ||
+ | std::unique_ptr<te::gm::Geometry> result( red->intersection( blue.get() ) ); | ||
+ | | ||
+ | std::cout << result->toString() << std::end; | ||
+ | </code> | ||
+ | |||
+ | <code cpp> | ||
+ | std::unique_ptr<te::gm::Geometry> red( te::gm::WKTReader::read("POLYGON ( (2 5, 2 7, 5 7, 5 5, 2 5) )") ); | ||
+ | std::unique_ptr<te::gm::Geometry> blue( te::gm::WKTReader::read("POLYGON ( (5 5, 5 7, 8 7, 8 5, 5 5) )") ); | ||
+ | | ||
+ | std::unique_ptr<te::gm::Geometry> result( red->intersection( blue.get() ) ); | ||
+ | | ||
+ | std::cout << result->toString() << std::endl; | ||
+ | </code> | ||
+ | |||
+ | <code cpp> | ||
+ | std::unique_ptr<te::gm::Geometry> red( te::gm::WKTReader::read("POLYGON ( (9 2, 9 4, 11 4, 11 2, 9 2) )") ); | ||
+ | std::unique_ptr<te::gm::Geometry> blue( te::gm::WKTReader::read("POLYGON ( (12 1, 12 3, 15 3, 15 1, 12 1) )") ); | ||
+ | | ||
+ | std::unique_ptr<te::gm::Geometry> result( red->intersection( blue.get() ) ); | ||
+ | | ||
+ | std::cout << result->toString() << std::endl; | ||
+ | </code> | ||
+ | |||
+ | **2.** Polygon union: | ||
+ | <code cpp> | ||
+ | std::unique_ptr<te::gm::Geometry> red( te::gm::WKTReader::read("POLYGON ( (2 2, 2 4, 5 4, 5 2, 2 2) )") ); | ||
+ | std::unique_ptr<te::gm::Geometry> blue( te::gm::WKTReader::read("POLYGON ( (4 1, 4 3, 7 3, 7 1, 4 1) )") ); | ||
+ | | ||
+ | std::unique_ptr<te::gm::Geometry> result( red->Union( blue.get() ) ); | ||
+ | | ||
+ | std::cout << result->toString() << std::endl; | ||
+ | </code> | ||
+ | |||
+ | <code cpp> | ||
+ | std::unique_ptr<te::gm::Geometry> red( te::gm::WKTReader::read("POLYGON ( (2 5, 2 7, 5 7, 5 5, 2 5) )") ); | ||
+ | std::unique_ptr<te::gm::Geometry> blue( te::gm::WKTReader::read("POLYGON ( (5 5, 5 7, 8 7, 8 5, 5 5) )") ); | ||
+ | | ||
+ | std::unique_ptr<te::gm::Geometry> result( red->Union( blue.get() ) ); | ||
+ | | ||
+ | std::cout << result->toString() << std::endl; | ||
+ | </code> | ||
+ | |||
+ | <code cpp> | ||
+ | std::unique_ptr<te::gm::Geometry> red( te::gm::WKTReader::read("POLYGON ( (9 2, 9 4, 11 4, 11 2, 9 2) )") ); | ||
+ | std::unique_ptr<te::gm::Geometry> blue( te::gm::WKTReader::read("POLYGON ( (12 1, 12 3, 15 3, 15 1, 12 1) )") ); | ||
+ | | ||
+ | std::unique_ptr<te::gm::Geometry> result( red->Union( blue.get() ) ); | ||
+ | | ||
+ | std::cout << result->toString() << std::endl; | ||
+ | </code> | ||
===== Buffer ===== | ===== Buffer ===== | ||
+ | <code cpp> | ||
+ | std::unique_ptr<te::gm::Geometry> poly( te::gm::WKTReader::read("POLYGON ( (6 3, 6 5, 9 5, 9 3, 6 3) )") ); | ||
+ | |||
+ | std::unique_ptr<te::gm::Geometry> result( poly->buffer(2.0) ); | ||
+ | | ||
+ | std::cout << result->toString() << std::endl; | ||
+ | </code> | ||
===== Metric Operators ===== | ===== Metric Operators ===== |