Split lookupInCountry in two functions and document NOMINATIM_SEARCH_WITHIN_COUNTRIES parameter

This commit is contained in:
alfmarcua
2023-07-06 08:52:12 +02:00
parent 26e78efbb9
commit 4b53cf1464
3 changed files with 29 additions and 7 deletions

View File

@@ -85,9 +85,9 @@ class ReverseGeocode
protected function lookupLargeArea($sPointSQL, $iMaxRank)
{
if(CONST_Search_WithinCountries
and $this->lookupInCountry($sPointSQL, $iMaxRank) == null){
return null;
$sCountryCode = $this->getCountryCode($sPointSQL);
if (CONST_Search_WithinCountries and $sCountryCode == null) {
return null;
}
if ($iMaxRank > 4) {
@@ -99,12 +99,12 @@ class ReverseGeocode
// If no polygon which contains the searchpoint is found,
// searches in the country_osm_grid table for a polygon.
return $this->lookupInCountry($sPointSQL, $iMaxRank);
return $this->lookupInCountry($sPointSQL, $iMaxRank, $sCountryCode);
}
protected function lookupInCountry($sPointSQL, $iMaxRank)
protected function getCountryCode($sPointSQL)
{
Debug::newFunction('lookupInCountry');
Debug::newFunction('getCountryCode');
// searches for polygon in table country_osm_grid which contains the searchpoint
// and searches for the nearest place node to the searchpoint in this polygon
$sSQL = 'SELECT country_code FROM country_osm_grid';
@@ -116,8 +116,12 @@ class ReverseGeocode
null,
'Could not determine country polygon containing the point.'
);
Debug::printVar('Country code', $sCountryCode);
return $sCountryCode;
}
protected function lookupInCountry($sPointSQL, $iMaxRank, $sCountryCode)
{
Debug::newFunction('lookupInCountry');
if ($sCountryCode) {
if ($iMaxRank > 4) {
// look for place nodes with the given country code