$add_gen_time = 0;
if (!empty($_REQUEST['gen_time'])) {
    $add_gen_time = intval($_REQUEST['gen_time']);
}
// read data from flat file
$use_flat = 0;
if (!empty($_REQUEST['flat'])) {
    $use_flat = intval($_REQUEST['flat']);
}
// Request parsing is completed.. Act according to what has been requested
if ($requestType == 'json' && empty($pointsOfInterest)) {
    sendJsonResponse(array(), $timestamp, $timestamp2, "No latlon specified in request");
    exit(0);
}
$bandHelper = new DiscreteBandHelper(DiscreteBandHelper::LABEL_TYPE_BAND, $bandSchema);
$ozoneBand = $bandHelper->getBand();
//$bandHashMap = new Java("java.util.HashMap");
//foreach($ozoneBand as $key => $val) {
//    $bandHashMap->put($key, doubleval($val));
//}
// latest generated time
$latest_gen_time = -1;
//$queryManager = new QueryManager();
$start = microtime(true);
$grid = array();
$queryTime = 0;
//$driver = new Java('LatLongInterpolation.LatLngDriver', $bandHashMap);
for ($t = $timestamp; $t <= $timestamp2; $t += $interval) {
    $queryStart = microtime(true);
    if ($use_flat) {
        $loadedData = $queryManager->getPointData_from_json($t, $pointsOfInterest);