X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/320d488627b1a5674458cbef644c6731882b2a23..e305182ae4641a8ffe602a5d8cee3005c4ed0eeb:/lib/lib.php diff --git a/lib/lib.php b/lib/lib.php index 39bc90d7..c90c334c 100644 --- a/lib/lib.php +++ b/lib/lib.php @@ -1,12 +1,10 @@ getAll($sSQL)); - if ($bRaw) return $aAddressLines; - //echo "
"; - //var_dump($aAddressLines); - $aAddress = array(); - $aFallback = array(); - foreach ($aAddressLines as $aLine) { - $bFallback = false; - $aTypeLabel = Nominatim\ClassTypes\getInfo($aLine); - - if ($aTypeLabel === false) { - $aTypeLabel = Nominatim\ClassTypes\getFallbackInfo($aLine); - $bFallback = true; - } - - if ((isset($aLine['localname']) && $aLine['localname']) || (isset($aLine['housenumber']) && $aLine['housenumber'])) { - $sTypeLabel = strtolower(isset($aTypeLabel['simplelabel'])?$aTypeLabel['simplelabel']:$aTypeLabel['label']); - $sTypeLabel = str_replace(' ', '_', $sTypeLabel); - if (!isset($aAddress[$sTypeLabel]) || (isset($aFallback[$sTypeLabel]) && $aFallback[$sTypeLabel]) || $aLine['class'] == 'place') { - $aAddress[$sTypeLabel] = $aLine['localname']?$aLine['localname']:$aLine['housenumber']; - } - $aFallback[$sTypeLabel] = $bFallback; - } - } - return $aAddress; -} - - function addQuotes($s) { return "'".$s."'"; @@ -211,10 +177,10 @@ function geometryText2Points($geometry_as_text, $fRadius) // preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER); // - } elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#', $geometry_as_text, $aMatch)) { +/* } elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#', $geometry_as_text, $aMatch)) { // preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER); - // + */ } elseif (preg_match('#POINT\\((-?[0-9.]+) (-?[0-9.]+)\\)#', $geometry_as_text, $aMatch)) { // $aPolyPoints = createPointsAroundCenter($aMatch[1], $aMatch[2], $fRadius); @@ -262,3 +228,25 @@ function closestHouseNumber($aRow) return max(min($aRow['endnumber'], $iHn), $aRow['startnumber']); } + +function getSearchRankLabel($iRank) +{ + if (!isset($iRank)) return 'unknown'; + if ($iRank < 2) return 'continent'; + if ($iRank < 4) return 'sea'; + if ($iRank < 8) return 'country'; + if ($iRank < 12) return 'state'; + if ($iRank < 16) return 'county'; + if ($iRank == 16) return 'city'; + if ($iRank == 17) return 'town / island'; + if ($iRank == 18) return 'village / hamlet'; + if ($iRank == 20) return 'suburb'; + if ($iRank == 21) return 'postcode area'; + if ($iRank == 22) return 'croft / farm / locality / islet'; + if ($iRank == 23) return 'postcode area'; + if ($iRank == 25) return 'postcode point'; + if ($iRank == 26) return 'street / major landmark'; + if ($iRank == 27) return 'minory street / path'; + if ($iRank == 28) return 'house / building'; + return 'other: ' . $iRank; +}