当使用可公开访问的URL时,KML文件在javascript Googlemaps中不起作用

当使用可公开访问的URL时,KML文件在javascript Googlemaps中不起作用,javascript,google-maps-api-3,kml,Javascript,Google Maps Api 3,Kml,我试图使用javascript API实现一个kml文件,但它不起作用。当我使用Google Earth时,kml文件正在工作。我似乎不知道问题出在哪里。所有其他标记、多边形等都在工作。我试着在我的域上运行代码,它在那里没有任何问题。但是当我试图在本地运行html文件,而kml文件在我的url中时,问题就出现了。我希望它在本地运行。请帮忙 工作url为 我的代码如下 <!DOCTYPE html> <html> <head> <style typ

我试图使用javascript API实现一个kml文件,但它不起作用。当我使用Google Earth时,kml文件正在工作。我似乎不知道问题出在哪里。所有其他标记、多边形等都在工作。我试着在我的域上运行代码,它在那里没有任何问题。但是当我试图在本地运行html文件,而kml文件在我的url中时,问题就出现了。我希望它在本地运行。请帮忙

工作url为

我的代码如下

<!DOCTYPE html>
<html>
<head>
    <style type="text/css">
html {height:100%}
body {height:100%;margin:0;padding:0}
#googleMap {height:100%}
</style>
<script src="http://maps.googleapis.com/maps/api/js?key={API_Key}&sensor=false">
</script>

<script>

function initialize()
{
var mapProp = {
  center:new google.maps.LatLng(49.4076800,8.6907900),
  zoom:11,
  mapTypeId:google.maps.MapTypeId.ROADMAP
  };
var map=new google.maps.Map(document.getElementById("googleMap")
  ,mapProp);

var ctaLayer = new google.maps.KmlLayer({
    url: 'http://phanishashank.com/test.kml'
  });
  ctaLayer.setMap(map);
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
<div id="googleMap" ></div>

</body>
</html>

html{高度:100%}
正文{高度:100%;边距:0;填充:0}
#谷歌地图{高度:100%}
函数初始化()
{
var mapProp={
中心:新google.maps.LatLng(49.4076800,8.6907900),
缩放:11,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“谷歌地图”)
,mapProp);
var ctaLayer=new google.maps.KmlLayer({
网址:'http://phanishashank.com/test.kml'
});
ctaLayer.setMap(map);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
我的kml文件中的数据如下所示

<kml xmlns="http://earth.google.com/kml/2.1">
  <Document>
    <name>Test Path</name>
    <description>map in Heidelberg</description>

    <Style id="blueLine">
      <LineStyle>
        <color>ffff0000</color>
        <width>4</width>
      </LineStyle>
    </Style>


    <Placemark>
      <name>Blue Line</name>
      <styleUrl>#blueLine</styleUrl>
      <LineString>
        <altitudeMode>relative</altitudeMode>
        <coordinates>
    8.645272,49.41662700000001,0
    8.693593,49.408993,0
    8.645667,49.416447,0
    8.645178,49.416057,0
    8.64531,49.415982,0
    8.642668000000001,49.413872,0
    8.641953000000001,49.41256,0
    8.645405,49.41147599999999,0
    8.647867,49.412848,0
    8.667192999999999,49.408138,0
    8.669862,49.409094,0
    8.690248,49.410926,0
    8.691844,49.411231,0
        </coordinates>
      </LineString>
    </Placemark>



  </Document>
</kml>

测试路径
海德堡地图
ffff0000
4.
蓝线
#蓝线
相对的
8.645272,49.41662700000001,0
8.693593,49.408993,0
8.645667,49.416447,0
8.645178,49.416057,0
8.64531,49.415982,0
8.642668000000001,49.413872,0
8.641953000000001,49.41256,0
8.645405,49.41147599999999,0
8.647867,49.412848,0
8.667192999999999,49.408138,0
8.669862,49.409094,0
8.690248,49.410926,0
8.691844,49.411231,0

对可能出现的问题有什么建议吗?

kml负载正常。我认为您的问题是mapProp定义中缺少逗号

而不是

var mapProp = {
  center:new google.maps.LatLng(49.4076800,8.6907900),
  zoom:11
  mapTypeId:google.maps.MapTypeId.ROADMAP
  };
应该是

var mapProp = {
  center:new google.maps.LatLng(49.4076800,8.6907900),
  zoom:11,
  mapTypeId:google.maps.MapTypeId.ROADMAP
  };

始终注意控制台;)

很抱歉,复制代码时出错了。我检查过了,这不是问题所在。我做了上面的更改。API密钥呢?您是否尝试过在没有API密钥的情况下调用google地图库?请看,谢谢!!!它起作用了。当我尝试在没有API密钥的情况下调用时,我不确定。谷歌不久前更新了gmap的TOS。然而,如果API密钥无效或受到限制,它应该输出一条错误消息。没有出现错误消息。地图加载完美,但kml层未显示。