<?php
+/**
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * This file is part of Nominatim. (https://nominatim.org)
+ *
+ * Copyright (C) 2022 by the Nominatim developer community.
+ * For a full list of authors see the git log.
+ */
namespace Nominatim;
const TABLE_PLACEX = 0;
const TABLE_POSTCODE = 1;
const TABLE_OSMLINE = 2;
- const TABLE_AUX = 3;
- const TABLE_TIGER = 4;
+ const TABLE_TIGER = 3;
/// Database table that contains the result.
public $iTable;
public $iExactMatches = 0;
/// Subranking within the results (the higher the worse).
public $iResultRank = 0;
+ /// Address rank of the result.
+ public $iAddressRank;
public function debugInfo()
{
}
)));
}
+
+ public static function joinIdsByTableMinRank($aResults, $iTable, $iMinAddressRank)
+ {
+ return join(',', array_keys(array_filter(
+ $aResults,
+ function ($aValue) use ($iTable, $iMinAddressRank) {
+ return $aValue->iTable == $iTable && $aValue->iAddressRank >= $iMinAddressRank;
+ }
+ )));
+ }
+
+ public static function joinIdsByTableMaxRank($aResults, $iTable, $iMaxAddressRank)
+ {
+ return join(',', array_keys(array_filter(
+ $aResults,
+ function ($aValue) use ($iTable, $iMaxAddressRank) {
+ return $aValue->iTable == $iTable && $aValue->iAddressRank <= $iMaxAddressRank;
+ }
+ )));
+ }
+
public static function sqlHouseNumberTable($aResults, $iTable)
{
$sHousenumbers = '';
foreach ($aResults as $oRes) {
if ($oRes->iResultRank < $iMinRank) {
- $aTail = array_merge($aTail, $aHead);
+ $aTail += $aHead;
$aHead = array($oRes->iId => $oRes);
$iMinRank = $oRes->iResultRank;
} elseif ($oRes->iResultRank == $iMinRank) {