From cdd129de702dda5608a07ea81b4ffa8ddaeb477a Mon Sep 17 00:00:00 2001 From: Brian Quinion Date: Fri, 30 Aug 2013 13:04:33 +0100 Subject: [PATCH] fix viewbox issues --- lib/Geocode.php | 6 ++++++ lib/template/search-xml.php | 2 +- website/search.php | 10 ++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/Geocode.php b/lib/Geocode.php index 51ed3205..7eab3678 100644 --- a/lib/Geocode.php +++ b/lib/Geocode.php @@ -133,6 +133,12 @@ $this->aViewBox = array($fLeft, $fBottom, $fRight, $fTop); } + function getViewBoxString() + { + if (!$this->aViewBox) return null; + return $this->aViewBox[0].','.$this->aViewBox[3].','.$this->aViewBox[2].','.$this->aViewBox[1]; + } + function setRoute($aRoutePoints) { $this->aRoutePoints = $aRoutePoints; diff --git a/lib/template/search-xml.php b/lib/template/search-xml.php index b78c23ea..dfcf1375 100644 --- a/lib/template/search-xml.php +++ b/lib/template/search-xml.php @@ -9,7 +9,7 @@ echo " timestamp='".date(DATE_RFC822)."'"; echo " attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright'"; echo " querystring='".htmlspecialchars($sQuery, ENT_QUOTES)."'"; - if (isset($_GET['viewbox']) && $_GET['viewbox']) echo " viewbox='".htmlspecialchars($_GET['viewbox'], ENT_QUOTES)."'"; + if ($sViewBox) echo " viewbox='".htmlspecialchars($sViewBox, ENT_QUOTES)."'"; echo " polygon='".($bShowPolygons?'true':'false')."'"; if (sizeof($aExcludePlaceIDs)) { diff --git a/website/search.php b/website/search.php index e9f13632..f1ddbbe5 100755 --- a/website/search.php +++ b/website/search.php @@ -63,8 +63,7 @@ $aCoOrdinatesLBRT = explode(',',$aParams['viewboxlbrt']); $oGeocode->setViewBox($aCoOrdinatesLBRT[0], $aCoOrdinatesLBRT[1], $aCoOrdinatesLBRT[2], $aCoOrdinatesLBRT[3]); } - - if (isset($aParams['viewbox']) && $aParams['viewbox']) + else if (isset($aParams['viewbox']) && $aParams['viewbox']) { $aCoOrdinatesLTRB = explode(',',$aParams['viewbox']); $oGeocode->setViewBox($aCoOrdinatesLTRB[0], $aCoOrdinatesLTRB[3], $aCoOrdinatesLTRB[2], $aCoOrdinatesLTRB[1]); @@ -187,12 +186,15 @@ $bAsText = $oGeocode->getIncludePolygonAsText(); $sQuery = $oGeocode->getQueryString(); + $sViewBox = $oGeocode->getViewBoxString(); + $bShowPolygons = (isset($_GET['polygon']) && isset($_GET['polygon'])); + $aExcludePlaceIDs = $oGeocode->getExcludedPlaceIDs(); $sMoreURL = CONST_Website_BaseURL.'search?format='.urlencode($sOutputFormat).'&exclude_place_ids='.join(',',$oGeocode->getExcludedPlaceIDs()); if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) $sMoreURL .= '&accept-language='.$_SERVER["HTTP_ACCEPT_LANGUAGE"]; - if (isset($_GET['polygon']) && isset($_GET['polygon'])) $sMoreURL .= '&polygon=1'; + if ($bShowPolygons) $sMoreURL .= '&polygon=1'; if ($oGeocode->getIncludeAddressDetails()) $sMoreURL .= '&addressdetails=1'; - if (isset($_GET['viewbox']) && $_GET['viewbox']) $sMoreURL .= '&viewbox='.urlencode($_GET['viewbox']); + if ($sViewBox) $sMoreURL .= '&viewbox='.urlencode($sViewBox); if (isset($_GET['nearlat']) && isset($_GET['nearlon'])) $sMoreURL .= '&nearlat='.(float)$_GET['nearlat'].'&nearlon='.(float)$_GET['nearlon']; $sMoreURL .= '&q='.urlencode($sQuery); -- 2.39.5