+ if (isset($aParams['viewboxlbrt']) && $aParams['viewboxlbrt'])
+ {
+ $aCoOrdinatesLBRT = explode(',',$aParams['viewboxlbrt']);
+ $oGeocode->setViewBox($aCoOrdinatesLBRT[0], $aCoOrdinatesLBRT[1], $aCoOrdinatesLBRT[2], $aCoOrdinatesLBRT[3]);
+ }
+ else if (isset($aParams['viewbox']) && $aParams['viewbox'])
+ {
+ $aCoOrdinatesLTRB = explode(',',$aParams['viewbox']);
+ $oGeocode->setViewBox($aCoOrdinatesLTRB[0], $aCoOrdinatesLTRB[3], $aCoOrdinatesLTRB[2], $aCoOrdinatesLTRB[1]);
+ }
+
+ if (isset($aParams['route']) && $aParams['route'] && isset($aParams['routewidth']) && $aParams['routewidth'])
+ {
+ $aPoints = explode(',',$aParams['route']);
+ if (sizeof($aPoints) % 2 != 0)
+ {
+ userError("Uneven number of points");
+ exit;
+ }
+ $fPrevCoord = false;
+ $aRoute = array();
+ foreach($aPoints as $i => $fPoint)
+ {
+ if ($i%2)
+ {
+ $aRoute[] = array((float)$fPoint, $fPrevCoord);
+ }
+ else
+ {
+ $fPrevCoord = (float)$fPoint;
+ }
+ }
+ $oGeocode->setRoute($aRoute);
+ }
+
+ // Search query
+ $sQuery = (isset($aParams['q'])?trim($aParams['q']):'');
+ if (!$sQuery && !$bBatch && isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'][0] == '/')
+ {
+ $sQuery = substr($_SERVER['PATH_INFO'], 1);
+
+ // reverse order of '/' separated string
+ $aPhrases = explode('/', $sQuery);
+ $aPhrases = array_reverse($aPhrases);
+ $sQuery = join(', ',$aPhrases);
+ }
+ if (!$sQuery)
+ {
+ $oGeocode->setStructuredQuery(@$aParams['amenity'], @$aParams['street'], @$aParams['city'], @$aParams['county'], @$aParams['state'], @$aParams['country'], @$aParams['postalcode']);
+ $oGeocode->setReverseInPlan(false);
+ }
+ else
+ {
+ $oGeocode->setQuery($sQuery);
+ }
+
+ }