【问题标题】:Why does google map use Canvas to make distance measurement not SVG?为什么 google map 使用 Canvas 进行距离测量而不是 SVG?
【发布时间】:2011-11-25 20:43:18
【问题描述】:

我使用 chrome 调试工具来比较 google map 和其他地图。 我发现对于距离测量功能,谷歌地图使用画布绘制路径,而其他一些使用 SVG。 我认为这可能是因为画布更快。但是 SVG 有很多用于绘制路径的好部分。 还有其他原因吗?

【问题讨论】:

    标签: javascript html google-maps canvas svg


    【解决方案1】:

    每个 SVG 元素都是一个 DOM 元素,与 Canvas 相比,拥有 10,000 多个 SVG 路径会导致速度大幅下降。所以一种可能性是它的性能。

    但最初 Android 并不渲染/支持 SVG。这可能是 Google 选择使用 Canvas 的真正原因。

    今天,平板电脑 Android (3.0+) 支持 SVG,但 1.0-2.3 不支持。

    【讨论】:

    • 非常感谢!出于性能原因,如果我在画布和 SVG 中画一条线,SVG 路径会触发回流吗?帆布怎么样?只重绘?
    • 一旦所有 SVG DOM 对象都加载完毕,事情就不会不好了。两者在重绘所有 10,000 个对象时都会相当缓慢,但还有更多空间可以提高 Canvas 的性能。
    • @SimonSarris 我很想知道关于重绘 10,000 个对象的速度很慢,Canvas 如何改进这一点?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多