Skip to content

v0.2.54..v0.2.55 changeset FindIntersectionsOp.cpp

Garret Voltz edited this page Aug 14, 2020 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/ops/FindIntersectionsOp.cpp b/hoot-core/src/main/cpp/hoot/core/ops/FindIntersectionsOp.cpp
index a589e7a..c8e7c24 100644
--- a/hoot-core/src/main/cpp/hoot/core/ops/FindIntersectionsOp.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/ops/FindIntersectionsOp.cpp
@@ -30,7 +30,7 @@
 #include <hoot/core/algorithms/splitter/DualHighwaySplitter.h>
 #include <hoot/core/algorithms/splitter/IntersectionSplitter.h>
 #include <hoot/core/criterion/ChainCriterion.h>
-#include <hoot/core/criterion/ElementInIdListCriterion.h>
+#include <hoot/core/criterion/ElementIdCriterion.h>
 #include <hoot/core/criterion/ElementTypeCriterion.h>
 #include <hoot/core/criterion/NotCriterion.h>
 #include <hoot/core/criterion/TagCriterion.h>
@@ -93,11 +93,13 @@ void FindIntersectionsOp::apply(std::shared_ptr<OsmMap>& map)
   VisitorOp(removeWaysVis).apply(map);
 
   // remove anything that is not a node and in the list of intersections found
+  std::vector<long> intersectionIds = v->getIntersections();
+  std::set<long> intersectionIdsSet(intersectionIds.begin(), intersectionIds.end());
   std::shared_ptr<NotCriterion> intersectionCrit(
     new NotCriterion(
       new ChainCriterion(
-        std::shared_ptr<ElementInIdListCriterion>(
-          new ElementInIdListCriterion(ElementType::Node, v->getIntersections())),
+        std::shared_ptr<ElementIdCriterion>(
+          new ElementIdCriterion(ElementType::Node, intersectionIdsSet)),
         std::shared_ptr<NodeCriterion>(new NodeCriterion()))));
   std::shared_ptr<RemoveElementsVisitor> removeIntersectionsVis(new RemoveElementsVisitor());
   removeIntersectionsVis->addCriterion(intersectionCrit);
Clone this wiki locally