v0.2.55..v0.2.56 changeset ElementConverter.cpp
Garret Voltz edited this page Aug 14, 2020
·
3 revisions
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 8663153..9d09cec 100644
--- a/hoot-core/src/main/cpp/hoot/core/elements/ElementConverter.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/elements/ElementConverter.cpp
@@ -69,10 +69,12 @@ namespace hoot
int ElementConverter::logWarnCount = 0;
-ElementConverter::ElementConverter(const ConstElementProviderPtr& provider) :
+ElementConverter::ElementConverter(const ConstElementProviderPtr& provider,
+ const bool logWarningsForMissingElements) :
_constProvider(provider),
_spatialReference(provider->getProjection()),
-_requireAreaForPolygonConversion(true)
+_requireAreaForPolygonConversion(true),
+_logWarningsForMissingElements(logWarningsForMissingElements)
{
}
@@ -118,7 +120,6 @@ std::shared_ptr<Geometry> ElementConverter::convertToGeometry(
}
}
-
std::shared_ptr<Point> ElementConverter::convertToGeometry(const ConstNodePtr& n) const
{
return
@@ -200,15 +201,18 @@ std::shared_ptr<LineString> ElementConverter::convertToLineString(const ConstWay
ConstNodePtr n = _constProvider->getNode(ids[i]);
if (!n.get())
{
- if (logWarnCount < Log::getWarnMessageLimit())
+ if (_logWarningsForMissingElements)
{
- LOG_WARN("Missing node: " << ids[i] << ". Not creating line string...");
+ if (logWarnCount < Log::getWarnMessageLimit())
+ {
+ LOG_WARN("Missing node: " << ids[i] << ". Not creating line string...");
+ }
+ else if (logWarnCount == Log::getWarnMessageLimit())
+ {
+ LOG_WARN(className() << ": " << Log::LOG_WARN_LIMIT_REACHED_MESSAGE);
+ }
+ logWarnCount++;
}
- else if (logWarnCount == Log::getWarnMessageLimit())
- {
- LOG_WARN(className() << ": " << Log::LOG_WARN_LIMIT_REACHED_MESSAGE);
- }
- logWarnCount++;
return std::shared_ptr<LineString>();
}
cs->setAt(n->toCoordinate(), i);
@@ -220,15 +224,18 @@ std::shared_ptr<LineString> ElementConverter::convertToLineString(const ConstWay
ConstNodePtr n = _constProvider->getNode(ids[0]);
if (!n.get())
{
- if (logWarnCount < Log::getWarnMessageLimit())
- {
- LOG_WARN("Missing node: " << ids[0] << ". Not creating line string...");
- }
- else if (logWarnCount == Log::getWarnMessageLimit())
+ if (_logWarningsForMissingElements)
{
- LOG_WARN(className() << ": " << Log::LOG_WARN_LIMIT_REACHED_MESSAGE);
+ if (logWarnCount < Log::getWarnMessageLimit())
+ {
+ LOG_WARN("Missing node: " << ids[0] << ". Not creating line string...");
+ }
+ else if (logWarnCount == Log::getWarnMessageLimit())
+ {
+ LOG_WARN(className() << ": " << Log::LOG_WARN_LIMIT_REACHED_MESSAGE);
+ }
+ logWarnCount++;
}
- logWarnCount++;
return std::shared_ptr<LineString>();
}
cs->setAt(n->toCoordinate(), 1);