如何在Web Worker中计算SVG BBox?

时间:2014-02-17 19:04:54

标签: javascript svg web-worker

我正在开发一个地图应用程序,我在其中呈现标签客户端,基本上我正在解决this问题。我有很多标签,在将它们渲染到屏幕上之前,我需要做一个传递,其中我计算标签的位置,它们在屏幕上占用的空间,是否有任何重叠等等。因为所有这些都是时间消费,它是在网络工作者上完成的。为了测试是否存在重叠,我需要计算SVG BBox。我怎样才能在网络工作者身上做到这一点? Web worker无权访问DOM。即使它有,我也不想在这个计算过程中在屏幕上渲染任何东西。

1 个答案:

答案 0 :(得分:0)

由于您无法在Web Worker中访问DOM,因此无法从工作人员中准确计算文本标签的边界框。

一些可能的解决方法:

  • 在主线程上进行边界框计算,然后将消息传递给具有结果的worker。 (您不必向屏幕呈现任何内容:只需创建一个不附加到文档的分离的SVG元素。)
  • 通过预先计算单个字符边界框或通过em-width估算平均值来估算长度。工人完成后,在主线程中进行检查和纠正。