X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/e70f405abddfe5a8a7400424558071ebba769eda..5781e198a72922dcc1c7eeca900285d5aa38c5e4:/utils/query.php diff --git a/utils/query.php b/utils/query.php index 16657daf..6068c7c0 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,25 +32,41 @@ $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->setReverseInPlan(true); +$oGeocode->loadParamArray($oParams); - if (version_compare(phpversion(), '5.4.0', '<')) { - echo json_encode($aSearchResults); - } else { - 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";