2017-03-19 98 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