我有一张热图,用于通过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);
答案 0 :(得分:2)
看起来你通过json将900,000多个数据点返回给浏览器并要求浏览器处理映射...你可能没有php问题,但浏览器过载问题。
您可能只尝试将所有其他结果发送到浏览器以查看是否完成(从db中选择全部但仅通过json返回一半)...这可以告诉您问题是否与php或浏览器/ JavaScript < / p>