在热图上显示大规模数据会导致网页崩溃

时间:2012-10-11 02:56:16

标签: php crash xampp heatmap

我有一张热图,用于通过XAMPP-PHP-PostgreSQL后端可视化大规模GPS数据。

然而,尝试可视化大时间间隔的GPS数据 - 例如14个月的24小时数据 - 240万行纬度和经度值,即 - 导致我的html页面崩溃。

我可以想象出大约900.000行的数据但是我总是因为数据大于此而崩溃。

我使用ini_set('memory_limit', '-1')set_time_limit (60)来绕过PHP的时间限制和内存警告,但现在我遇到了这个Chrome浏览器崩溃问题。

可能导致这种情况的原因是什么?我检索纬度和经度值的PHP代码如下:

function getPoints($dateTimeBeg,$dateTimeEnd) //getting the points 
//from the database after providing the start and end date objects
{

    global $con, $coords, $coords_array; //$coords and $coords_array are declared
//at the beginning of the php script

    $query = "SELECT lat, lon FROM mytable WHERE calltime >= '$dateTimeBeg'
    and calltime <= '$dateTimeEnd'"; 

    $res = pg_query($con, $query) or die (pg_last_error($con)); 

    if($res)//if a result exists
    {
        $num_of_rows = pg_num_rows($res);

        if($num_of_rows > 0)
        {
            while($row = pg_fetch_row($res)) //fetch results row by row
            { 
                array_push($coords,array($row[0],$row[1]));      
//push them to the $coords array
            }
            array_push($coords_array,$coords); 
            unset($coords);
//push array $coords array to $coords_array ARRAY
        }
    }
}

$coords_json = json_encode($coords_array); //encode the results as json 
echo $coords_json; //print out the data, heatmap takes the 
//coordinates and takes care of the rest
unset($coords);
pg_close($con);

1 个答案:

答案 0 :(得分:2)

看起来你通过json将900,000多个数据点返回给浏览器并要求浏览器处理映射...你可能没有php问题,但浏览器过载问题。

您可能只尝试将所有其他结果发送到浏览器以查看是否完成(从db中选择全部但仅通过json返回一半)...这可以告诉您问题是否与php或浏览器/ JavaScript < / p>