From: Sarah Hoffmann Date: Sun, 29 Mar 2020 21:14:46 +0000 (+0200) Subject: Merge remote-tracking branch 'upstream/master' X-Git-Tag: deploy~247 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/e9e54ec8046cf74d6d6f1c1ae04ca746aa3fefc2?ds=inline;hp=-c Merge remote-tracking branch 'upstream/master' --- e9e54ec8046cf74d6d6f1c1ae04ca746aa3fefc2 diff --combined lib/Geocode.php index 0e5d4a53,55dd46e7..3336790f --- a/lib/Geocode.php +++ b/lib/Geocode.php @@@ -18,7 -18,7 +18,7 @@@ class Geocod protected $aLangPrefOrder = array(); protected $aExcludePlaceIDs = array(); - protected $bReverseInPlan = false; + protected $bReverseInPlan = true; protected $iLimit = 20; protected $iFinalLimit = 10; @@@ -245,7 -245,6 +245,6 @@@ } $this->oPlaceLookup->loadParamArray($oParams, $sForceGeometryType); - $this->oPlaceLookup->setIncludePolygonAsPoints($oParams->getBool('polygon')); $this->oPlaceLookup->setIncludeAddressDetails($oParams->getBool('addressdetails', false)); } diff --combined sql/functions/address_lookup.sql index dd096728,1e423cd3..ccc982b8 --- a/sql/functions/address_lookup.sql +++ b/sql/functions/address_lookup.sql @@@ -8,6 -8,7 +8,7 @@@ CREATE TYPE addressline as name HSTORE, class TEXT, type TEXT, + place_type TEXT, admin_level INTEGER, fromarea BOOLEAN, isaddress BOOLEAN, @@@ -193,7 -194,7 +194,7 @@@ BEGI searchcountrycode := NULL; END IF; countrylocation := ROW(location.place_id, location.osm_type, location.osm_id, - location.name, location.class, location.type, + location.name, location.class, location.type, NULL, location.admin_level, true, location.isaddress, location.rank_address, location.distance)::addressline; RETURN NEXT countrylocation; @@@ -201,11 -202,9 +202,9 @@@ END LOOP; FOR location IN - SELECT placex.place_id, osm_type, osm_id, name, - CASE WHEN extratags ? 'place' or extratags ? 'linked_place' - THEN 'place' ELSE class END as class, - coalesce(extratags->'place', extratags->'linked_place', type) as type, + SELECT placex.place_id, osm_type, osm_id, name, class, type, + coalesce(extratags->'place', extratags->'linked_place') as place_type, - admin_level, fromarea, isaddress, + admin_level, fromarea, isaddress and linked_place_id is NULL as isaddress, CASE WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address, distance, country_code, postcode FROM place_addressline join placex on (address_place_id = placex.place_id) @@@ -229,6 -228,7 +228,7 @@@ END IF; countrylocation := ROW(location.place_id, location.osm_type, location.osm_id, location.name, location.class, location.type, + location.place_type, location.admin_level, location.fromarea, location.isaddress, location.rank_address, location.distance)::addressline; @@@ -242,7 -242,7 +242,7 @@@ WHERE country_code = searchcountrycode LIMIT 1 INTO countryname; --RAISE WARNING '% % %',found,searchcountrycode,countryname; IF countryname IS NOT NULL THEN - location := ROW(null, null, null, countryname, 'place', 'country', + location := ROW(null, null, null, countryname, 'place', 'country', NULL, null, true, true, 4, 0)::addressline; RETURN NEXT location; END IF; @@@ -251,25 -251,25 +251,25 @@@ -- Finally add some artificial rows. IF searchcountrycode IS NOT NULL THEN location := ROW(null, null, null, hstore('ref', searchcountrycode), - 'place', 'country_code', null, true, false, 4, 0)::addressline; + 'place', 'country_code', null, null, true, false, 4, 0)::addressline; RETURN NEXT location; END IF; IF searchhousename IS NOT NULL THEN location := ROW(in_place_id, null, null, searchhousename, searchclass, - searchtype, null, true, true, 29, 0)::addressline; + searchtype, null, null, true, true, 29, 0)::addressline; RETURN NEXT location; END IF; IF searchhousenumber IS NOT NULL THEN location := ROW(in_place_id, null, null, hstore('ref', searchhousenumber), - 'place', 'house_number', null, true, true, 28, 0)::addressline; + 'place', 'house_number', null, null, true, true, 28, 0)::addressline; RETURN NEXT location; END IF; IF searchpostcode IS NOT NULL THEN location := ROW(null, null, null, hstore('ref', searchpostcode), 'place', - 'postcode', null, false, postcode_isaddress, 5, 0)::addressline; + 'postcode', null, null, false, postcode_isaddress, 5, 0)::addressline; RETURN NEXT location; END IF;