生成像SpatialKey这样的密度/热图

Bre*_*ham 7 maps postgis spatial geospatial heatmap

SpatialKey会生成一些非常好看的热图,我们正在研究为内部项目执行此操作所涉及的内容,以便可视化大量的点.我正在寻找关于从何处入手的一些想法的反馈(这只是一个非常有趣的问题).

SpatialKey热图http://img697.imageshack.us/img697/7964/resolutiondays508x17550.jpg

我们知道他们正在使用Flash,从我们可以看出,热图是交互式的,而不是从平铺服务器渲染.我们对如何实现这一点的第一个猜测是服务器为他们的Flash客户端提供一个网格 - 每个单元格都有一个由服务器计算的计数.然后,Flash客户端根据网格中的单元格值进行一些插值,以生成您在上面看到的漂亮输出.

在这个阶段,我只对如何有效地在服务器端生成网格感兴趣(如果我们对它们的实现的假设是正确的).它似乎涉及:

  1. 执行查询当前在地图边界中的内容
  2. 为这些边界内的每个单元格执行聚合子查询(执行上面示例中的计数,求和或平均值).

以理智的网格分辨率在多个缩放级别执行此操作,看起来您需要自定义空间索引才能提高效率.

任何接受解释替代路线的人?如果它很重要,我们习惯于将我们的数据存储在PostgreSQL中,并使用PostGIS进行空间索引,但我愿意尝试任何东西.

小智 5

作为一个猜测,我想他们已经在客户端的Flash中实现了一个GIS库,并使用它来将纬度和经度坐标投影到像素空间.然后它们按像素聚合以确定每个像素的"高度"并渲染它就像渲染圆圈一样,但使用带透明度的渐变填充,渐变填充的开始和结束颜色由高度确定像素.多个圆圈叠加在一起将创建更亮的像素.

另一种方法是在灰度级中执行此操作,然后将亮度值映射到颜色标度.这可能是最有效的.

我们出售更传统的树形图热图,以便在可视化分析应用程序中集成使用(例如:热图SDK),现在还有地理热图,可以为区域着色.我们阅读标准的ESRI Shapefile贴图,并在客户端进行所有投影和渲染(在Java中,不是Flash,但是相同的概念).我认为SpatialKey正在做同样的事情,因为它们支持区域填充渲染,如果您使用像Google Maps这样的磁贴服务器,则无法真正完成.

我们还没有像这样做密度热图,但是使用静态图像作为背景进行了几次测试.如果您想了解更多信息,请告诉我,我可以向我的开发人员询问我们是如何做到这一点的.我知道我们目前正在开发更多基于点的功能,但我不知道密度热图在时间表上的位置.

SpatialKey实际上只是在区域填充热图(即:专题图)和密度热图之间的不同之间写了一篇好文章.您可以访问http://blog.spatialkey.com/2010/02/comparing-thematic-maps-with-density-heatmaps/查看.

如果你确实找到了一种做密度热图的好方法,我会对你如何做到这一点感兴趣,因为它对我们的可视化分析SDK来说是一个有价值的补充.祝你好运.