Skip to content

v0.2.49..v0.2.50 changeset ElementConverter.cpp

Garret Voltz edited this page Nov 6, 2019 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/elements/ElementConverter.cpp b/hoot-core/src/main/cpp/hoot/core/elements/ElementConverter.cpp
index fc30b36..c07599a 100644
--- a/hoot-core/src/main/cpp/hoot/core/elements/ElementConverter.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/elements/ElementConverter.cpp
@@ -101,6 +101,7 @@ Meters ElementConverter::calculateLength(const ConstElementPtr &e) const
 std::shared_ptr<Geometry> ElementConverter::convertToGeometry(
   const std::shared_ptr<const Element>& e, bool throwError, const bool statsFlag) const
 {
+  LOG_VART(e->getElementType().toString());
   switch (e->getElementType().getEnum())
   {
   case ElementType::Node:
@@ -132,6 +133,7 @@ std::shared_ptr<Geometry> ElementConverter::convertToGeometry(const ConstWayPtr&
                                                               const bool statsFlag) const
 {
   GeometryTypeId gid = getGeometryType(e, throwError, statsFlag);
+  LOG_VART(gid);
   if (gid == GEOS_POLYGON)
   {
     return convertToPolygon(e);
@@ -143,6 +145,7 @@ std::shared_ptr<Geometry> ElementConverter::convertToGeometry(const ConstWayPtr&
   else
   {
     // we don't recognize this geometry type.
+    LOG_TRACE("Returning empty geometry...");
     std::shared_ptr<Geometry> g(GeometryFactory::getDefaultInstance()->createEmptyGeometry());
     return g;
   }
@@ -153,7 +156,6 @@ std::shared_ptr<Geometry> ElementConverter::convertToGeometry(const ConstRelatio
                                                               const bool statsFlag) const
 {
   GeometryTypeId gid = getGeometryType(e, throwError, statsFlag);
-
   if (gid == GEOS_MULTIPOLYGON)
   {
     return MultiPolygonCreator(_constProvider, e).createMultipolygon();
@@ -181,6 +183,8 @@ std::shared_ptr<Geometry> ElementConverter::convertToGeometry(const RelationPtr&
 
 std::shared_ptr<LineString> ElementConverter::convertToLineString(const ConstWayPtr& w) const
 {
+  LOG_TRACE("Converting to line string...");
+
   const std::vector<long>& ids = w->getNodeIds();
   int size = ids.size();
   if (size == 1)
@@ -235,7 +239,10 @@ std::shared_ptr<LineString> ElementConverter::convertToLineString(const ConstWay
 
 std::shared_ptr<Polygon> ElementConverter::convertToPolygon(const ConstWayPtr& w) const
 {
+  LOG_TRACE("Converting to polygon...");
+
   const std::vector<long>& ids = w->getNodeIds();
+  LOG_VART(ids);
   size_t size = ids.size();
   if (size == 1)
   {
@@ -259,7 +266,13 @@ std::shared_ptr<Polygon> ElementConverter::convertToPolygon(const ConstWayPtr& w
   size_t i;
   for (i = 0; i < ids.size(); i++)
   {
+    LOG_VART(ids[i]);
     ConstNodePtr n = _constProvider->getNode(ids[i]);
+    LOG_VART(n.get());
+//    if (!n)
+//    {
+//      throw HootException("Node " + QString::number(ids[i]) + " does not exist.");
+//    }
     cs->setAt(n->toCoordinate(), i);
   }
 
Clone this wiki locally