2017-03-19 151 views
-1

我正在嘗試使用Google Maps API 3讀取簡單的KML,我在Google地圖編輯器中創建了KML文件,代碼是google樣本,我找不到問題出在哪裏。Google地圖KML圖層不會讀取kml

gm-sample.html

BTM.kml

function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 13, 
      center: {lat: 40.40926, lng: 49.86709} 
     }); 

     var ctaLayer = new google.maps.KmlLayer({ 
      url: 'itdc.byethost7.com/BTM.kml', 
      map: map 
     }); 
     } 
+1

控制檯中的任何錯誤? KML網址看起來不太好。 – Scarysize

+0

如果你的意思是瀏覽器控制檯,我什麼都看不到。 –

+0

kml文件是否從服務器獲得請求?檢查Chrome DevTools中的網絡標籤 – Scarysize

回答

1

規定的KML上github.com鏈路被送達MIME類型 「文本/純」 的,它應該是"application/vnd.google-earth.kml+xml"

3 KML MIME類型
當響應來自Google Eart的請求時h(或任何地球瀏覽器),KML服務器必須遵循一定的規則,以便Google地球可以正確解釋其響應。

成功後,服務器必須返回響應代碼HTTP 200,並將響應的內容類型設置爲合適的MIME類型,如此處所述。

Google地球讀取KML和KMZ文件。的MIME類型的KML文件是 應用/ vnd.google-earth.kml + xml的

的MIME類型KMZ文件是
應用/ vnd.google-earth.kmz

validator results

建議

這飼料是有效的,但關於Interotube通過實施以下建議,可以改善最廣泛的飼料閱讀器的可用性。

飼料不應與 「text/plain的」 媒體類型

送達如果我複製你的KML到我的服務器(與正確的MIME類型提供KML),it works

BTW - If I point the validator to the link in the code in your question, it doesn't work at all, it isn't a KML file,但是如果我指向KmlLayer URL,it also works