1

我有一张热图,用于通过 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);
4

1 回答 1

2

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

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

于 2012-10-11T03:09:09.843 回答