快速业务通道

浅谈Heatmap

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-23
;0";  
  •     param["page_y"]        = "0";  
  •     param["screen_width"]  = "0";  
  •     param["screen_height"] = "0";  
  •  
  •     split($0, query, "&");  
  •  
  •     for (key in query) {  
  •         split(query[key], item, "=");  
  •         if (item[1] in param) {  
  •                 param[item[1]] = item[2];  
  •         }  
  •     }  
  •  
  •     print "page_x:"       , param["page_x"];  
  •     print "page_y:"       , param["page_y"];  
  •     print "screen_width:" , param["screen_width"];  
  •     print "screen_height:", param["screen_height"];  
  •  
  •     print "\n";  
  •   至于数据的持久化,是使用MongoDB或者别的,自己定夺,这里就不多说了。

      渲染图片

      出于演示方便的考虑,我使用了一些随机生成的数据,以Imagick为例,代码如下:

    1. <?php  
    2.  
    3. $coordinates = array();  
    4.  
    5. for ($i = 0; $i < 1000; $i++) {  
    6.     $coordinates[] = array(rand($i, 1000), rand($i, 1000));  
    7. }  
    8.  
    9. $max_repeat = max(  
    10.     array_count_values(  
    11.         array_map(function($v) { return "{$v[0]}x{$v[1]}"; }, $coordinates)  
    12.     )  
    13. );  
    14.  
    15. $opacity = 1 - 1 / $max_repeat;  
    16.  
    17. $heatmap_image = new Imagick();  
    18.  
    19. $heatmap_image->newImage(1000, 1000, new ImagickPixel(''white''));  
    20. $heatmap_image->setImageFormat(''png'');  
    21.  
    22. $plot_image = new Imagick(''plot.png'');  
    23.  
    24. $iterator = $plot_image->getPixelIterator();  
    25. foreach($iterator as $row) {  
    26.     foreach ($row as $pixel) {  
    27.         $colors = $pixel->getColor();  
    28.         foreach (array(''r'', ''g'', ''b'') as $channel) {  
    29.    &nb

    凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

    分享到: 更多

    Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

    地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

    电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

    《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号