0

我在 Flex 3.5 中使用 heatMap,但我遇到了一个巨大的性能问题,因为我试图在地图中设置 3.000 到 10.000 个标记。在地图开始渲染过程的那一刻,浏览器折叠。

我使用的实现是一个 GoogleMpas,由“flex Epiphanies”创建,我使用http://sunild.com/proto/Earthquakes2/Earthquakes.html作为基础。

基本上我的实现调用了一个服务,该服务调用服务器端的 ZipCode latLon 生成器来计算我必须显示的每个注册表的 latLon,它返回一个大数组(3.000 到 10.000 个项目之间)每个项目都有一个纬度和一个经度,因为我需要显示每一个标记。

我遇到的问题是渲染地图中的项目,因为我正在调用的服务非常快。

我不知道这是否是实现热图的最佳方式,但我敢肯定,当标记的数量超过 3.000 时,这并不是很有效。

如果有人可以给我建议或其他热图实施,我将不胜感激。3

4

1 回答 1

0

当你说你必须展示每一个标记时,你到底是什么意思?您尝试构建的这个东西可能会通过两种优化得到帮助:

1)聚合你可以服务器端的东西。当服务器可能更快地完成时,无需将那么多处理留给闪存。如果您实际上不需要显示每个点 - 只需要热图本身 - 看看您是否可以修改它以获取一组已经聚合的标记计数,也许是几个纬度/经度平方范围内的“块”。如果您没有显示有关每个点的某种特定信息,我认为您实际上不必“显示每个标记”。如果您直接从某些您无法控制的服务中提取数据,也许您可​​以创建一个简单的中间层,以便在将数据传递到闪存之前聚合数据。

2) 优化热图功能。如果您对 Actionscript 有足够的了解,我建议您将热图代码移植到纯 AS3 - 如果不太复杂,也可以将整个项目移植到;对于 10,000 点,您将需要 Flex 框架将吞噬的大量资源。如果你是一个疯狂的算法专家,你可能会看到一些其他的优化方法,但如果不是,我只会阅读 Grant Skinner (http://gskinner.com/blog) 的很多帖子,因为优化 actionscript 就是全部那个家伙曾经谈论过。

我正在做类似的事情,必须处理数千到数十万范围内的点,这就是我将采取的方法。

于 2010-12-21T05:04:35.127 回答