2013-12-17 60 views
5

我一直在開發一個應用程序在谷歌鉻,我一直在使用MarkerWithLabel庫,我相信是由谷歌開發人員編寫的。我在地圖上使用了超過100個標記,它似乎相當順利,直到我檢查了Firefox(並且甚至不提IE)。在FF中這非常糟糕。任何方式來優化它?如何優化MarkerWithLabel谷歌地圖上有太多標記

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

爲了澄清,有200個常規指標正常工作。使用MarkerWithLabel時出現問題

+0

在v3中100個標記應該合理快速,它是發生性能問題的數千個標記。我已經看到[有關在後續版本中添加標記的速度減慢的報告](https://code.google.com/p/gmaps-api-issues/issues/detail?id=6140),可能試試3.13。 – geocodezip

+0

[小提琴使用3.13](http://jsfiddle.net/FL3d7/2/) – geocodezip

+0

這似乎並不是我的問題。您的鏈接在我的機器上執行相同的操作。 Chrome平穩,Firefox滯後。 – odle

回答

1

經過2周的研究和嘗試各種方法後,大多數人建議在這裏,我得出的結論是,目前沒有辦法優化。出於某種原因,當地圖頂部有div並保持同步時,firefox就會陷入困境。最新的Firefox的性能與IE8幾乎相同。

我發現有一噸谷歌標記不會造成任何滯後,但divs做。我最終做的是創建一個將文本轉換爲png的服務器端函數。當初始化谷歌標記,你使圖標url TextToImage.aspx?text=Hello&size=13 然後我設置新標記的錨點(15,15),併成爲我的新'標籤'。我添加了一些點擊和鼠標懸停的聽衆標籤和瞧!對性能的瘋狂改進。

1

一般而言,優化任何Google地圖應用程序的最佳方法是使用羣集技術。隨着應用程序加載越來越多的標記,客戶端渲染開銷只會增加。標籤的添加只會增加問題。

一些聚類技術的存在,很容易實現,我建議從這篇文章開始:https://developers.google.com/maps/articles/toomanymarkers

編輯如果任何人沒有相同的規格要求,但類似的問題,留在上面的地方。

我唯一的其他建議是在超過某個縮放級別時關閉標籤嗎?這至少可以緩解一些最糟糕的渲染問題。

編輯經過一番研究後,庫引入的here已經顯示出比markerWithLabel更有利的性能特徵。它依賴於一個HTML畫布,雖然ie9 +也是如此。

+0

感謝您的建議,但不幸的是,這些方法都不符合客戶的要求。我需要在視口中顯示美國的所有標記 – odle

+0

我們正在談論多少個標記?根據我的經驗,根據使用的瀏覽器/機器,事情開始在80分左右減速。 – Swires

+0

我有70〜80左右,但我認爲MarkerWithLabel是雙倍的。不確定。 – odle