From: gemo1011 Date: Fri, 20 Apr 2018 12:35:24 +0000 (+0200) Subject: use the linked_place_id for adress search if a place node is found with a linked_place_id X-Git-Tag: v3.2.0~60^2~31 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/237e31b3ce8b1dd7012a5d89e7de5b322dfefdd4 use the linked_place_id for adress search if a place node is found with a linked_place_id --- diff --git a/lib/ReverseGeocode.php b/lib/ReverseGeocode.php index a2416929..ae7c8527 100644 --- a/lib/ReverseGeocode.php +++ b/lib/ReverseGeocode.php @@ -89,7 +89,7 @@ class ReverseGeocode $iRankSearch = $aPoly['rank_search']; $iGeometry = $aPoly['geometry']; - $sSQL = 'select place_id,parent_place_id,rank_search,country_code,'; + $sSQL = 'select place_id,parent_place_id,rank_search,country_code, linked_place_id,'; $sSQL .=' ST_distance('.$sPointSQL.', geometry) as distance'; $sSQL .= ' FROM placex'; $sSQL .= ' WHERE osm_type = \'N\''; @@ -194,17 +194,26 @@ class ReverseGeocode }else{ $aPlace = $this->lookupPolygon($sPointSQL, $iMaxRank); if ($aPlace) { - $oResult = new Result($aPlace['place_id']); + // if place node is found adress goes over linked_place_id + if (!empty($aPlace['linked_place_id'])) { + $oResult = new Result($aPlace['linked_place_id']); + }else{ + $oResult = new Result($aPlace['place_id']); + } } } // lower than street level ($iMaxRank < 26 ) }else{ $aPlace = $this->lookupPolygon($sPointSQL, $iMaxRank); if ($aPlace) { - $oResult = new Result($aPlace['place_id']); + // if place node is found adress goes over linked_place_id + if (!empty($aPlace['linked_place_id'])) { + $oResult = new Result($aPlace['linked_place_id']); + }else{ + $oResult = new Result($aPlace['place_id']); + } + } } - - } return $oResult; }