Skip to content

v0.2.52..v0.2.53 changeset SmallerOverlapExtractor.cpp

Garret Voltz edited this page Feb 12, 2020 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/algorithms/extractors/SmallerOverlapExtractor.cpp b/hoot-core/src/main/cpp/hoot/core/algorithms/extractors/SmallerOverlapExtractor.cpp
index 69ede5d..b0bbf29 100644
--- a/hoot-core/src/main/cpp/hoot/core/algorithms/extractors/SmallerOverlapExtractor.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/algorithms/extractors/SmallerOverlapExtractor.cpp
@@ -23,7 +23,7 @@
  * copyrights will be updated automatically.
  *
  * @copyright Copyright (C) 2005 VividSolutions (http://www.vividsolutions.com/)
- * @copyright Copyright (C) 2015, 2017, 2018, 2019 DigitalGlobe (http://www.digitalglobe.com/)
+ * @copyright Copyright (C) 2015, 2017, 2018, 2019, 2020 DigitalGlobe (http://www.digitalglobe.com/)
  */
 #include "SmallerOverlapExtractor.h"
 
@@ -45,14 +45,24 @@ namespace hoot
 
 HOOT_FACTORY_REGISTER(FeatureExtractor, SmallerOverlapExtractor)
 
-SmallerOverlapExtractor::SmallerOverlapExtractor()
+SmallerOverlapExtractor::SmallerOverlapExtractor() :
+_requireAreaForPolygonConversion(true)
 {
 }
 
+void SmallerOverlapExtractor::setConfiguration(const Settings& conf)
+{
+  _requireAreaForPolygonConversion = ConfigOptions(conf).getConvertRequireAreaForPolygon();
+}
+
 double SmallerOverlapExtractor::extract(const OsmMap& map, const ConstElementPtr& target,
   const ConstElementPtr& candidate) const
 {
+  LOG_VART(target->getElementId());
+  LOG_VART(candidate->getElementId());
+
   ElementConverter ec(map.shared_from_this());
+  ec.setRequireAreaForPolygonConversion(_requireAreaForPolygonConversion);
   std::shared_ptr<Geometry> g1 = ec.convertToGeometry(target);
   std::shared_ptr<Geometry> g2 = ec.convertToGeometry(candidate);
 
@@ -77,6 +87,10 @@ double SmallerOverlapExtractor::extract(const OsmMap& map, const ConstElementPtr
   double a2 = g2->getArea();
   double overlapArea = overlap->getArea();
 
+  LOG_VART(a1);
+  LOG_VART(a2);
+  LOG_VART(overlapArea);
+
   if (a1 == 0.0 || a2 == 0.0)
   {
     return 0.0;
Clone this wiki locally