Skip to content

v0.2.55..v0.2.56 changeset HighwaySnapMerger.cpp

Garret Voltz edited this page Aug 14, 2020 · 3 revisions
diff --git a/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwaySnapMerger.cpp b/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwaySnapMerger.cpp
index ad58440..d91469f 100644
--- a/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwaySnapMerger.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwaySnapMerger.cpp
@@ -79,7 +79,10 @@ int HighwaySnapMerger::logWarnCount = 0;
 
 HighwaySnapMerger::HighwaySnapMerger() :
 HighwayMergerAbstract(),
-_matchedBy(HighwayMatch::MATCH_NAME)
+_matchedBy(HighwayMatch::MATCH_NAME),
+// ENABLE THE OsmMapWriterFactory::writeDebugMap CALLS FOR SMALL DATASETS DURING DEBUGGING ONLY.
+// writes a map file for each road merge
+_writeDebugMaps(false)
 {
 }
 
@@ -89,7 +92,9 @@ HighwaySnapMerger::HighwaySnapMerger(
 _removeTagsFromWayMembers(true),
 _markAddedMultilineStringRelations(false),
 _sublineMatcher(sublineMatcher),
-_matchedBy(HighwayMatch::MATCH_NAME)
+_matchedBy(HighwayMatch::MATCH_NAME),
+// see note above
+_writeDebugMaps(false)
 {
   _pairs = pairs;
   LOG_VART(_pairs);
@@ -201,14 +206,11 @@ bool HighwaySnapMerger::_mergePair(const OsmMapPtr& map, ElementId eid1, Element
 {
   // TODO: This monster method needs to be refactored into smaller parts where possible.
 
-  // ENABLE THE OsmMapWriterFactory::writeDebugMap CALLS FOR SMALL DATASETS DURING DEBUGGING ONLY.
-  // writes a map file for each road merge
-
   LOG_VART(eid1);
   //LOG_VART(map->getElement(eid1));
   LOG_VART(eid2);
   //LOG_VART(map->getElement(eid2));
-  //const QString eidLogString = "-" + eid1.toString() + "-" + eid2.toString();
+  const QString eidLogString = "-" + eid1.toString() + "-" + eid2.toString();
 
   if (HighwayMergerAbstract::_mergePair(map, eid1, eid2, replaced))
   {
@@ -246,8 +248,11 @@ bool HighwaySnapMerger::_mergePair(const OsmMapPtr& map, ElementId eid1, Element
     // remove the second element and any reviews that contain the element
     RemoveReviewsByEidOp(remove->getElementId(), true).apply(result);
 
-    //OsmMapWriterFactory::writeDebugMap(
-     //map, "HighwaySnapMerger-merged-identical-elements" + eidLogString);
+    if (_writeDebugMaps)
+    {
+      OsmMapWriterFactory::writeDebugMap(
+       map, "HighwaySnapMerger-merged-identical-elements" + eidLogString);
+    }
 
     return false;
   }
@@ -281,14 +286,20 @@ bool HighwaySnapMerger::_mergePair(const OsmMapPtr& map, ElementId eid1, Element
   ElementPtr e2Match;
   ElementPtr scraps1;
   ElementPtr scraps2;
-  // split the first element and don't reverse any of the geometries.
+  // Split the first element and don't reverse any of the geometries.
   _splitElement(map, match.getSublineString1(), match.getReverseVector1(), replaced, e1, e1Match,
                 scraps1);
-  //OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-split-1" + eidLogString);
-  // split the second element and reverse any geometries to make the matches work.
+  if (_writeDebugMaps)
+  {
+    OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-split-1" + eidLogString);
+  }
+  // Split the second element and reverse any geometries to make the matches work.
   _splitElement(map, match.getSublineString2(), match.getReverseVector2(), replaced, e2, e2Match,
                 scraps2);
-  //OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-split-2" + eidLogString);
+  if (_writeDebugMaps)
+  {
+    OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-split-2" + eidLogString);
+  }
 
   LOG_VART(e1Match->getElementId());
   if (scraps1)
@@ -311,9 +322,15 @@ bool HighwaySnapMerger::_mergePair(const OsmMapPtr& map, ElementId eid1, Element
 
   // remove any ways that directly connect from e1Match to e2Match
   _removeSpans(result, e1Match, e2Match);
-  //OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-remove-spans" + eidLogString);
+  if (_writeDebugMaps)
+  {
+    OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-remove-spans" + eidLogString);
+  }
   _snapEnds(map, e2Match, e1Match);
-  //OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-snap-ends" + eidLogString);
+  if (_writeDebugMaps)
+  {
+    OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-snap-ends" + eidLogString);
+  }
 
   if (e1Match)
   {
@@ -347,7 +364,10 @@ bool HighwaySnapMerger::_mergePair(const OsmMapPtr& map, ElementId eid1, Element
   LOG_VART(e1Match->getElementType());
   LOG_VART(e1->getElementId());
   LOG_VART(e2->getElementId());
-  //OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-tag-merging" + eidLogString);
+  if (_writeDebugMaps)
+  {
+    OsmMapWriterFactory::writeDebugMap(map, "HighwaySnapMerger-after-tag-merging" + eidLogString);
+  }
 
   bool swapWayIds = false;
 
@@ -524,8 +544,11 @@ bool HighwaySnapMerger::_mergePair(const OsmMapPtr& map, ElementId eid1, Element
     LOG_TRACE("Removing e1: " << eid1 << "...");
     RemoveReviewsByEidOp(eid1, true).apply(result);
   }
-  //OsmMapWriterFactory::writeDebugMap(
-    //map, "HighwaySnapMerger-after-old-way-removal-1" + eidLogString);
+  if (_writeDebugMaps)
+  {
+    OsmMapWriterFactory::writeDebugMap(
+      map, "HighwaySnapMerger-after-old-way-removal-1" + eidLogString);
+  }
 
   // If there is something left to review against,
   if (scraps2)
@@ -577,8 +600,11 @@ bool HighwaySnapMerger::_mergePair(const OsmMapPtr& map, ElementId eid1, Element
     // remove reviews e2 is involved in
     RemoveReviewsByEidOp(eid2, true).apply(result);
   }
-  //OsmMapWriterFactory::writeDebugMap(
-    //map, "HighwaySnapMerger-after-old-way-removal-2" + eidLogString);
+  if (_writeDebugMaps)
+  {
+    OsmMapWriterFactory::writeDebugMap(
+      map, "HighwaySnapMerger-after-old-way-removal-2" + eidLogString);
+  }
 
   if (e1Match)
   {
Clone this wiki locally