Skip to content

v0.2.50..v0.2.51 changeset AddressParser.cpp

Garret Voltz edited this page Jan 15, 2020 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/conflate/address/AddressParser.cpp b/hoot-core/src/main/cpp/hoot/core/conflate/address/AddressParser.cpp
index 3faaf59..1cfc535 100644
--- a/hoot-core/src/main/cpp/hoot/core/conflate/address/AddressParser.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/conflate/address/AddressParser.cpp
@@ -102,16 +102,20 @@ int AddressParser::numAddressesRecursive(const ConstElementPtr& element, const O
   QList<Address> addresses;
   if (element->getElementType() == ElementType::Node)
   {
-    return hasAddress(*std::dynamic_pointer_cast<const Node>(element));
+    return numAddresses(*std::dynamic_pointer_cast<const Node>(element));
   }
   else if (element->getElementType() == ElementType::Way)
   {
     addresses = parseAddressesFromWayNodes(*std::dynamic_pointer_cast<const Way>(element), map);
+    // TODO: Uncommenting this blows up a few of the poi/poly regression tests by forcing some
+    // address comparisons. See #3627.
+    //addresses.append(parseAddresses(*element));
   }
   else if (element->getElementType() == ElementType::Relation)
   {
     addresses =
       parseAddressesFromRelationMembers(*std::dynamic_pointer_cast<const Relation>(element), map);
+    addresses.append(parseAddresses(*element));
   }
   if (translateModified)
   {
@@ -233,6 +237,7 @@ QList<Address> AddressParser::parseAddressesFromRelationMembers(const Relation&
       {
         ConstWayPtr wayMember = std::dynamic_pointer_cast<const Way>(member);
         addresses = parseAddressesFromWayNodes(*wayMember, map, skipElementId);
+        addresses.append(parseAddresses(*wayMember));
       }
     }
   }
@@ -331,7 +336,7 @@ bool AddressParser::_isValidAddressStr(QString& address, QString& houseNum, QStr
   libpostal_address_parser_response_destroy(parsed);
 
   // intersections won't have numbers; unfortunately this lets through a false positive, like:
-  // "lrv station-church street"
+  // "lrv station-church street" - TODO: should this be re-enabled?
   if (/*!houseNum.isEmpty() &&*/ !street.isEmpty())
   {
     address = houseNum + " " + street;
Clone this wiki locally