X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/7523359aba2814bd143ccb0f18d20b54b611c7eb..79a68fc2db19481bf2a9add680bf46aab9981a15:/utils/query.php diff --git a/utils/query.php b/utils/query.php index 9694bbb9..956bb566 100644 --- a/utils/query.php +++ b/utils/query.php @@ -13,6 +13,13 @@ $aCMDOptions array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'), array('search', '', 0, 1, 1, 1, 'string', 'Search for given term or coordinate'), + array('country', '', 0, 1, 1, 1, 'string', 'Structured search: country'), + array('state', '', 0, 1, 1, 1, 'string', 'Structured search: state'), + array('county', '', 0, 1, 1, 1, 'string', 'Structured search: county'), + array('city', '', 0, 1, 1, 1, 'string', 'Structured search: city'), + array('street', '', 0, 1, 1, 1, 'string', 'Structured search: street'), + array('amenity', '', 0, 1, 1, 1, 'string', 'Structured search: amenity'), + array('postalcode', '', 0, 1, 1, 1, 'string', 'Structured search: postal code'), array('accept-language', '', 0, 1, 1, 1, 'string', 'Preferred language order for showing search results'), array('bounded', '', 0, 1, 0, 0, 'bool', 'Restrict results to given viewbox'), @@ -25,21 +32,40 @@ $aCMDOptions ); getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true); -$oDB =& getDB(); +$oDB = new Nominatim\DB; +$oDB->connect(); + +if (isset($aCMDResult['nodedupe'])) $aCMDResult['dedupe'] = 'false'; + $oParams = new Nominatim\ParameterParser($aCMDResult); -if ($oParams->getBool('search')) { - if (isset($aCMDResult['nodedupe'])) $aCMDResult['dedupe'] = 'false'; +$aSearchParams = array( + 'search', + 'amenity', + 'street', + 'city', + 'county', + 'state', + 'country', + 'postalcode' + ); - $oGeocode = new Nominatim\Geocode($oDB); +if (!$oParams->hasSetAny($aSearchParams)) { + showUsage($aCMDOptions, true); + return 1; +} - $oGeocode->setLanguagePreference($oParams->getPreferredLanguages(false)); - $oGeocode->loadParamArray($oParams); - $oGeocode->setQuery($aCMDResult['search']); +$oGeocode = new Nominatim\Geocode($oDB); - $aSearchResults = $oGeocode->lookup(); +$oGeocode->setLanguagePreference($oParams->getPreferredLanguages(false)); +$oGeocode->loadParamArray($oParams); - echo json_encode($aSearchResults, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)."\n"; +if ($oParams->getBool('search')) { + $oGeocode->setQuery($aCMDResult['search']); } else { - showUsage($aCMDOptions, true); + $oGeocode->setQueryFromParams($oParams); } + +$aSearchResults = $oGeocode->lookup(); + +echo json_encode($aSearchResults, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)."\n";