Skip to content

v0.2.52..v0.2.53 changeset Relation.cpp

Garret Voltz edited this page Feb 12, 2020 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/elements/Relation.cpp b/hoot-core/src/main/cpp/hoot/core/elements/Relation.cpp
index 87e3cb1..575bd91 100644
--- a/hoot-core/src/main/cpp/hoot/core/elements/Relation.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/elements/Relation.cpp
@@ -22,7 +22,7 @@
  * This will properly maintain the copyright information. DigitalGlobe
  * copyrights will be updated automatically.
  *
- * @copyright Copyright (C) 2015, 2016, 2017, 2018, 2019 DigitalGlobe (http://www.digitalglobe.com/)
+ * @copyright Copyright (C) 2015, 2016, 2017, 2018, 2019, 2020 DigitalGlobe (http://www.digitalglobe.com/)
  */
 #include "Relation.h"
 
@@ -148,6 +148,21 @@ int Relation::numElementsByRole(const QString& role) const
   return roleCtr;
 }
 
+std::set<ElementId> Relation::getWayMemberIds() const
+{
+  std::set<ElementId> wayMemberIds;
+  const vector<RelationData::Entry>& members = getMembers();
+  for (size_t i = 0; i < members.size(); i++)
+  {
+    RelationData::Entry member = members[i];
+    if (member.getElementId().getType() == ElementType::Way)
+    {
+      wayMemberIds.insert(member.getElementId());
+    }
+  }
+  return wayMemberIds;
+}
+
 Envelope* Relation::getEnvelope(const std::shared_ptr<const ElementProvider>& ep) const
 {
   return new Envelope(getEnvelopeInternal(ep));
Clone this wiki locally