2011-03-30 126 views
1

嗨 我在KML性能方面遇到了一些問題。在某些時候,KML標記只會在重新加載後出現,這可能與Google緩存結果有關。我認爲可能需要更好的解決方案,例如在較大的縮放級別上顯示區域的標記總數,然後對具有更多縮放級別的級別進行更詳細的描述。這樣的解決方案是否可行?如果是這樣,如何?你能想出其他的方式來改善我的KML地圖的表現嗎?鏈接是http://www.koolbusiness.com和KML文件是http://www.koolbusiness.com/list.kml如何提高KML性能

我可以加載KML文件到maps.google.com沒有問題,但是當試圖顯示它在我的自定義地圖顯示有時不會加載。 在此先感謝您的任何建議。

更新:我已更新爲使用zip壓縮的KMZ文件。該文件可通過http://www.koolbusiness.com/list.kmz和來源和更多信息可在http://montao.googlecode.com

回答

2

不知道它是否會影響性能,但它似乎你需要爲kml文件配置mime類型。 http://code.google.com/apis/kml/documentation/kml_tut.html#kml_server

您是否嘗試將kml文件壓縮爲kmz文件?你可以用zip程序做這個,只需要調用文件kmz。

您可以重複地標中的樣式元素,但也可以在doucment元素下創建它們,然後僅使用id引用它們。 http://code.google.com/apis/kml/documentation/kmlreference.html#style

+0

感謝您的回答。我會嘗試上面提到的。 – 2011-04-02 10:18:32

1

我不知道,如果你已經改變了KML尚未符合前面的一些建議,但...

  • KML文件似乎是相當小,這是很好。我打算建議在lat/lng上截斷小數點。
  • 您可以像KML文件一樣壓縮到KMZ,就像之前的海報中提到的那樣。更多信息可以在這裏找到:http://code.google.com/apis/kml/documentation/kml_tut.html#kml_server您需要在服務器上設置KMZ MIME類型。
  • 您可以減少KML文件中的空白量。當不需要時,它似乎有額外的空間...
  • 您可以配置您的Web服務器發送KML文件的緩存版本......我不確定您運行的是什麼樣的後端,所以我可以真的沒有指點。這可能是標記不顯示的原因。如果時間過長,Google的服務器會超時。

至於你提到的解決方案,以在一個區域中顯示總標記了一個縮放問題: 我想你可以爲每個縮放級別,查詢地圖的邊界,然後只顯示有座標標記該邊界。你可能不得不寫一些函數來檢查它是否在邊界內。我不知道有什麼方法可以將KML文件中的標記作爲對象來檢索,除非您使用客戶端解析器手動解析KML。

爲了幫助確定您的標記不加載的原因,請嘗試使用FireBug確定對Google服務器的請求。並且看看回應是什麼樣的反應,這可能會導致更多的問題答案。我相信你應該尋找的是KmlOverlayService。

希望有所幫助。

+0

感謝您的回答,提供了很多很好的建議。KML現在是一個KMZ,比前一段時間的工作要好得多。 http://www.montao.com.br/montaolist.kmz – 2011-05-16 12:40:14