Javascript 当有太多标记时,如何优化谷歌地图上的标记WithLabel

Javascript 当有太多标记时,如何优化谷歌地图上的标记WithLabel,javascript,google-maps,firefox,google-maps-markers,Javascript,Google Maps,Firefox,Google Maps Markers,我一直在google chrome上开发一个应用程序,我一直在使用MarkerWithLabel库,我相信它是由google开发者编写的。我在地图上使用了100多个标记,在我登录firefox(甚至不提IE)之前,它看起来非常平滑。这是相当该死的滞后在FF。有没有办法优化它 这是jsfiddle中的一个示例 澄清一下,有200个常规标记就可以了。使用MarkerWithLabel时会出现问题一般来说,优化任何Google地图应用程序的最佳方法是使用群集技术。随着应用程序加载越来越多的标记,客户端

我一直在google chrome上开发一个应用程序,我一直在使用MarkerWithLabel库,我相信它是由google开发者编写的。我在地图上使用了100多个标记,在我登录firefox(甚至不提IE)之前,它看起来非常平滑。这是相当该死的滞后在FF。有没有办法优化它

这是jsfiddle中的一个示例


澄清一下,有200个常规标记就可以了。使用MarkerWithLabel时会出现问题一般来说,优化任何Google地图应用程序的最佳方法是使用群集技术。随着应用程序加载越来越多的标记,客户端的渲染只会增加。添加标签只会使问题更加复杂

有许多集群技术存在并且易于实现,我建议从本文开始:

如果任何人没有相同的规范要求,但存在类似问题,请编辑以上内容

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


在对引入的库进行了一点研究之后,Edit显示出比markerWithLabel更好的性能特性。它依赖于html画布,尽管ie9+也是如此。

在花了两周的时间研究和尝试了各种方法后,我得出了一个结论:目前没有办法进行优化。由于某种原因,当地图顶部有div并保持它们同步时,firefox会遇到困难。最新firefox上的性能几乎与IE8相同

我发现拥有大量谷歌标记不会导致任何滞后,但div会。我最后做的是创建一个服务器端函数,将文本转换为png。初始化google标记时,将图标url设置为
TextToImage.aspx?text=Hello&size=13

然后我将新标记的锚点设置为(15,15),这就成为了我的新“标签”。我在标签标记中添加了一些单击和鼠标悬停侦听器,瞧!对性能的疯狂改进

如果您只希望pin中包含几个字符,另一种选择是:

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


检查。

谢谢您的建议,但不幸的是,这些方法都不能满足客户的要求。我需要在视口中显示美国的所有标记。我们在谈论多少标记?根据我的经验,根据使用的浏览器/机器的不同,事情开始在80分左右放缓。我有大约70~80分,但我认为MarkerWithLabel会加倍。但不确定。更正。查看代码后,MarkerWithLabel为每个标记添加div。是的,很抱歉,您是正确的,这些标签是相对于父标记定位的单个div。在特定的缩放级别禁用这些标记可能不会对性能产生太大影响,除非我们讨论的是000个标记。在v3中,100个标记应该是合理的快速,性能问题发生在数千个标记上。我看过,也许试过3.13。这对我来说似乎不是问题。您的链接在我的机器上执行相同的操作。Chrome是平滑的,Firefox在这两个方面都落后。你使用的是什么版本的Firefox?我的机器没有问题,但这在很大程度上取决于客户端设置,而不是服务器端应用程序。这就是为什么地图应用程序很难优化的原因,也是为什么我建议使用集群(尽管这显然不是一个可行的解决方案)。我对您的示例有一些问题:1)如果我单击标记或标签,则不会打开信息窗口2)关于您在其中的文本“此处显示的两个标记”。。。你认为FF中的页面速度慢在哪里?也就是说,你所说的“FF中的页面速度太慢了”是什么意思?