fix PHP warnings when reverse search was called without parameters

... or empty results
This commit is contained in:
marc tobias
2016-11-17 22:55:05 +01:00
committed by Sarah Hoffmann
parent cfb0f3f94c
commit b27926fd4d
2 changed files with 16 additions and 13 deletions

View File

@@ -13,13 +13,13 @@
<form class="form-inline" role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>reverse.php"> <form class="form-inline" role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>reverse.php">
<div class="form-group"> <div class="form-group">
<input name="format" type="hidden" value="html"> <input name="format" type="hidden" value="html">
<input name="lat" type="text" class="form-control input-sm" placeholder="latitude" value="<?php echo htmlspecialchars($_GET['lat']); ?>" > <input name="lat" type="text" class="form-control input-sm" placeholder="latitude" value="<?php echo $fLat; ?>" >
<span id="switch-coords">&lt;&gt;</span> <span id="switch-coords">&lt;&gt;</span>
<input name="lon" type="text" class="form-control input-sm" placeholder="longitude" value="<?php echo htmlspecialchars($_GET['lon']); ?>" > <input name="lon" type="text" class="form-control input-sm" placeholder="longitude" value="<?php echo $fLon; ?>" >
max zoom max zoom
<select name="zoom" class="form-control input-sm" value="<?php echo htmlspecialchars($_GET['zoom']); ?>"> <select name="zoom" class="form-control input-sm">
<option value="" <?php echo $_GET['zoom']==''?'selected':'' ?> >--</option> <option value="" <?php if ($iZoom === false) echo 'selected="selected"' ?> >--</option>
<?php <?php
$aZoomLevels = array( $aZoomLevels = array(
@@ -49,8 +49,8 @@
foreach($aZoomLevels as $iZoomLevel => $sLabel) foreach($aZoomLevels as $iZoomLevel => $sLabel)
{ {
$bSel = isset($_GET['zoom']) && ($_GET['zoom'] == (string)$iZoomLevel); $bSel = $iZoom === $iZoomLevel;
echo '<option value="'.$iZoomLevel.'"'.($bSel?'selected':'').'>'.$iZoomLevel.' '.$sLabel.'</option>'."\n"; echo '<option value="'.$iZoomLevel.'"'.($bSel?' selected="selected"':'').'>'.$iZoomLevel.' '.$sLabel.'</option>'."\n";
} }
?> ?>
</select> </select>
@@ -66,7 +66,7 @@
<div id="content"> <div id="content">
<?php if ($aPlace) { ?> <?php if (count($aPlace)>0) { ?>
<div id="searchresults" class="sidebar"> <div id="searchresults" class="sidebar">
<?php <?php
@@ -116,9 +116,9 @@
<?php <?php
$aNominatimMapInit = array( $aNominatimMapInit = array(
'zoom' => isset($_GET['zoom']) ? htmlspecialchars($_GET['zoom']) : CONST_Default_Zoom, 'zoom' => $iZoom !== false ? $iZoom : CONST_Default_Zoom,
'lat' => isset($_GET['lat']) ? htmlspecialchars($_GET['lat']) : CONST_Default_Lat, 'lat' => $fLat !== false ? $fLat : CONST_Default_Lat,
'lon' => isset($_GET['lon']) ? htmlspecialchars($_GET['lon']) : CONST_Default_Lon, 'lon' => $fLon !== false ? $fLon : CONST_Default_Lon,
'tile_url' => $sTileURL, 'tile_url' => $sTileURL,
'tile_attribution' => $sTileAttribution 'tile_attribution' => $sTileAttribution
); );

View File

@@ -49,11 +49,12 @@ $sOsmType = $oParams->getSet('osm_type', array('N', 'W', 'R'));
$iOsmId = $oParams->getInt('osm_id', -1); $iOsmId = $oParams->getInt('osm_id', -1);
$fLat = $oParams->getFloat('lat'); $fLat = $oParams->getFloat('lat');
$fLon = $oParams->getFloat('lon'); $fLon = $oParams->getFloat('lon');
$iZoom = $oParams->getInt('zoom');
if ($sOsmType && $iOsmId > 0) { if ($sOsmType && $iOsmId > 0) {
$aPlace = $oPlaceLookup->lookupOSMID($sOsmType, $iOsmId); $aPlace = $oPlaceLookup->lookupOSMID($sOsmType, $iOsmId);
} elseif ($fLat !== false && $fLon !== false) { } elseif ($fLat !== false && $fLon !== false) {
$oReverseGeocode = new Nominatim\ReverseGeocode($oDB); $oReverseGeocode = new Nominatim\ReverseGeocode($oDB);
$oReverseGeocode->setZoom($oParams->getInt('zoom', 18)); $oReverseGeocode->setZoom($iZoom !== false ? $iZoom : 18);
$aLookup = $oReverseGeocode->lookup($fLat, $fLon); $aLookup = $oReverseGeocode->lookup($fLat, $fLon);
if (CONST_Debug) var_dump($aLookup); if (CONST_Debug) var_dump($aLookup);
@@ -67,7 +68,7 @@ if ($sOsmType && $iOsmId > 0) {
userError("Need coordinates or OSM object to lookup."); userError("Need coordinates or OSM object to lookup.");
} }
if ($aPlace) { if (isset($aPlace)) {
$oPlaceLookup->setIncludePolygonAsPoints(false); $oPlaceLookup->setIncludePolygonAsPoints(false);
$oPlaceLookup->setIncludePolygonAsText($bAsText); $oPlaceLookup->setIncludePolygonAsText($bAsText);
$oPlaceLookup->setIncludePolygonAsGeoJSON($bAsGeoJSON); $oPlaceLookup->setIncludePolygonAsGeoJSON($bAsGeoJSON);
@@ -86,6 +87,8 @@ if ($aPlace) {
if ($aOutlineResult) { if ($aOutlineResult) {
$aPlace = array_merge($aPlace, $aOutlineResult); $aPlace = array_merge($aPlace, $aOutlineResult);
} }
} else {
$aPlace = [];
} }
@@ -94,7 +97,7 @@ if (CONST_Debug) {
exit; exit;
} }
if ($sOutputFormat=='html') { if ($sOutputFormat == 'html') {
$sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate - '2 minutes'::interval,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1")); $sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate - '2 minutes'::interval,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1"));
$sTileURL = CONST_Map_Tile_URL; $sTileURL = CONST_Map_Tile_URL;
$sTileAttribution = CONST_Map_Tile_Attribution; $sTileAttribution = CONST_Map_Tile_Attribution;