在 back-end/front-end 端生成热图的优缺点是什么?

What are the pros and cons of generating heatmap on back-end/front-end side?

我有一个测量空气污染的传感器网络。我想制作这种污染的热图,并在我的网站上向用户展示。

我正在考虑最好的方法。应该在后端还是前端生成热图?两种解决方案的优缺点是什么?任何细节 - 比如我应该以什么格式将热图发送到前端(可能使用 SVG?)将不胜感激。

我可以找到后端生成热图的这些优点:

缺点:

另外,你能举出任何现实生活中 back-end/front-end 生成的东西放在地图上的例子吗?

很难回答什么是最佳解决方案。这一切都取决于数据。

  • 如果您说,数据点数量适中,大约 50-100,并且更喜欢在高分辨率显示器上呈现清晰的图像,那么 SVG 是最佳选择。
  • 如果您有数百或数千个数据点,使用 SVG 渲染这些数据点可能会成为客户端的性能杀手。在这种情况下,将所有内容渲染为服务器端的位图并将其发送给客户端。

示例:

  • Google 地图(或任何其他地图服务)在服务器端将地图渲染为位图图块。浏览器中的经典 Google 地图(例如 ios Safari 显示 google 地图)将不再做任何事情。甚至街道名称也会渲染到位图中。 (值得注意的是,在功能更强大的平台上,例如桌面 Chrome,事情会变得更加棘手。)

  • JS 端图表解决方案将在客户端呈现内容。对于高达数百个点的数据集来说看起来很棒。可悲的是在现实生活数据上失败(例如,在股票市场行业工作,像 "show stock prices of Apple" 这样的例子可以使这些解决方案屈服。(Apple 股票自 1990 年以来的所有价格变化 - 包括滴答水平数据(因此数千每天变化)是不同的联赛。

仅作记录,在经过数月的开发工作后的最近一个项目中,我们无法使基于客户端 canvas 的渲染在所有平台上都能很好地工作,因此选择了服务器端渲染和4天的工作解决了这个问题。