return null;
}
- return $this->lookup(new Result($iPlaceID));
+ $aResults = $this->lookup(array($iPlaceID => new Result($iPlaceID)));
+
+ return sizeof($aResults) ? reset($aResults) : null;
}
- public function lookup($oResult, $iMinRank = 0, $iMaxRank = 30)
+ public function lookup($aResults, $iMinRank = 0, $iMaxRank = 30)
{
- if ($oResult === null) {
- return null;
+ if (!sizeof($aResults)) {
+ return array();
}
-
- $aResults = array($oResult->iId => $oResult);
-
$aSubSelects = array();
$sPlaceIDs = Result::joinIdsByTable($aResults, Result::TABLE_PLACEX);
if (CONST_Debug) var_dump($aSubSelects);
if (!sizeof($aSubSelects)) {
- return null;
+ return array();
}
$aPlaces = chksql(
"Could not lookup place"
);
- if (!sizeof($aPlaces)) {
- return null;
- }
-
- if (CONST_Debug) var_dump($aPlaces);
-
foreach ($aPlaces as &$aPlace) {
if ($this->bAddressDetails) {
// to get addressdetails for tiger data, the housenumber is needed
if (CONST_Debug) var_dump($aPlaces);
- return reset($aPlaces);
+ return $aPlaces;
}
private function getAddressDetails($iPlaceID, $bAll, $sHousenumber)
$oLookup = $oReverseGeocode->lookup($fLat, $fLon);
if (CONST_Debug) var_dump($oLookup);
- $aPlace = $oPlaceLookup->lookup($oLookup);
+ if ($oLookup) {
+ $aPlaces = $oPlaceLookup->lookup(array($oLookup->iId => $oLookup));
+ if (sizeof($aPlaces)) {
+ $aPlace = reset($aPlaces);
+ }
+ }
} elseif ($sOutputFormat != 'html') {
userError("Need coordinates or OSM object to lookup.");
}