如果标记太多,如何在Google地图上优化MarkerWithLabel

问题描述 投票:5回答:3

我一直在开发谷歌浏览器的应用程序,我一直在使用MarkerWithLabel库,我认为这是由谷歌开发人员编写的。我在地图上使用了超过100个标记,它似乎非常流畅,直到我在firefox中检查(甚至不提IE)。在FF中它非常迟钝。有什么办法优化它?

http://jsfiddle.net/zDTNS/2 Here is a sample in jsfiddle

为了澄清,有200个常规标记工作正常。使用MarkerWithLabel时出现问题

javascript google-maps firefox google-maps-markers
3个回答
1
投票

一般来说,优化任何Google地图应用程序的最佳方法是使用群集技术。随着应用程序加载越来越多的标记,客户端渲染开销只会增加。添加标签只会增加问题。

存在许多聚类技术并且易于实现,我建议从这篇文章开始:https://developers.google.com/maps/articles/toomanymarkers

编辑离开上面,以防任何人没有相同的规范要求,但类似的问题。

我唯一的另一个建议是在超过某个缩放级别时关闭标签?这至少可以缓解一些最糟糕的渲染问题。

编辑经过一些研究后,图书馆介绍here已被证明具有比markerWithLabel更有利的性能特征。它依赖于html画布,尽管ie9 +也是如此。


1
投票

经过两周的研究和尝试各种方法,大多数建议在这里,我得出结论,目前没有办法优化。出于某种原因,当地图顶部有div并保持同步时,firefox会挣扎。最新的Firefox的性能几乎与IE8相同。

我发现拥有大量的谷歌标记不会导致任何滞后,但div会这样做。我最终做的是创建一个服务器端函数,将文本转换为png。初始化google标记时,你创建了图标url TextToImage.aspx?text=Hello&size=13然后我将新标记的锚点设置为(15,15),这就成了我的新标签。我在标签标记处添加了一些click和mouseover监听器,瞧!疯狂改善表现。


0
投票

如果你只需要一个引脚内的几个字符,另一种选择是:

https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=${displayCharacters}|${pinColorHex}|${fontColorHex}

检查this example

© www.soinside.com 2019 - 2024. All rights reserved.