谷歌地图KML图层不会读取kml

时间:2017-03-19 08:43:29

标签: javascript google-maps-api-3 kml

我正在尝试使用Google Maps API 3阅读简单的KML,我在Google Maps Editor中创建了KML文件,代码是google示例,我找不到问题所在。

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 个答案:

答案 0 :(得分:1)

在github.com上为KML提供的链接提供的MIME类型为" text / plain",它应为"application/vnd.google-earth.kml+xml"

  

3种KML MIME类型
  在回复来自Google地球(或任何地球浏览器)的请求时,KML服务器必须遵循一组规则,以便Google地球能够正确解释其响应。

     

成功后,服务器必须返回HTTP 200的响应代码,并将响应的内容类型设置为合适的MIME类型,如此处所述。

     

Google地球会读取KML和KMZ文件。 KML文件的MIME类型是   应用/ vnd.google-earth.kml + xml的

     

KMZ文件的MIME类型为
  应用/ vnd.google-earth.kmz

validator results

  

<强>推荐

     

此Feed有效,但可以通过实施以下建议来改进与最广泛的Feed阅读器的互操作性。

     

不应该使用&#34; text / plain&#34;媒体类型

如果我将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网址指向该网址,it also works