2011-03-23

Google Map API使用KML的經驗談


在使用Google Map API的時候,有時會使用KML格式來做套疊(overlay)的動作,然而剛開始在使用kml的時候,必須要注意一些限制或細節;以下是我曾經卡關後所得出的經驗:
  • KML檔案必須是公開網址
也就是不能使用內部網路的URL,真要這樣的話,還是放在自己公司的公開網站或找個空間放檔比較好;只想在內部網站用Google Map的大德們,其實這已經是違反Google Mape API免費使用之下的條款了,使用API必須為公開、不額外收費的。
    • 檔案大小的限制
    KML最大為10MB,kmz則是3MB;其實如果用到或超過容量上限,常常都是製作不好的kml(例如軟體匯出、轉換來的),就算是well-format,效能也會因此不好,試想要套疊一個圖層內容,必須要等待下載10MB的資料之後才能動作,這樣怎麼會好用?
    • 檔案內容的限制
    單檔最多10個Network Links,1000個圖徵(feature)。
    • 檔案格式最好是UTF-8編碼
    有時候套疊錯誤是因為kml也許是外國的gis軟體匯出的,所以可能是ansi編碼,由於我們常常會使用中文內容,建議還是順手用記事本把它改成UTF-8編碼,以免debug到哭..
    • 英文檔名
    強烈建議使用「英文檔名」,即便已將檔名做過Url字元編碼,也是會有問題。

      補充說明:
      • 不是Google Earth能開的KML就能用
      有些人會認為在Google Earth上可以開的KML,給Google Map用就可以,但若真的去做,會發現不一定可行,其最大的原因是兩個API所支援的KML標籤不一樣,Google Map支援的較少。最常見的誤解就是覺得Google Earth可以透過KML套疊WMS(Network Link),但目前為止Google Map API v3是沒辦法的,而想在Google Map API上套疊WMS的話,又是另一篇故事了....

        其他還有些更detail的限制及相關資源,可自行參考以下資料:

        2 則留言:

        1. 請教kml檔案內建立的景點可以讓網路上的人搜尋到嗎?謝謝
          有沒有什麼地方需要設定?
          謝謝你

          回覆刪除
        2. 就我先前所了解的,可能是沒辦法的;把kml內的相關景點資訊做成網頁,讓搜尋引擎找得到是可行的方向之一。

          回覆刪除

        引用 Topshelf 無法進行偵錯的經驗

        Topshelf  是一個可以簡化撰寫 Windows Service 的套件,引用之後,我們只要當作撰寫一般 Console 的應用程式就可以。 只是近來撰寫上遇到無法進行Debug的狀況,在Visual Studio一進行偵錯可以看到Console 程式被執行,並顯示...