Google Maps API V3 KML图层未显示

时间:2013-06-29 22:42:43

标签: php google-maps-api-3 overlay kml kmz

我在网上跟踪了许多教程但是没有成功尝试在我的网站上获得所需的KML叠加层上的谷歌地图窗口。我的代码如下:

<!DOCTYPE html>
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false">
</script>

<script>
function initialize()
{
var mapOptions = {
    center: new google.maps.LatLng(38,-79.5),
    zoom:3,
    mapTypeId: google.maps.MapTypeId.TERRAIN
 }
var map=new google.maps.Map(document.getElementById("googleMap"),mapOptions);
var overlay = new google.maps.KmlLayer('https://doc-08-4g-       docs.googleusercontent.com/docs/securesc/ckoh7mm1pf9l58sknv61gkpp19v37j15/r3rh37mucb8nscl1r37disrlcom7i93t/1372536000000/00236509183910004089/00236509183910004089/0B-qVNYv_qM5vNy1ZbzJYVUgtTjA?h=16653014193614665626&e=download');

overlay.setMap(map);
}
</script>
</head>
<body>
<div id="googleMap"></div>
</body>
</html>

我不理解脚本src以及它为什么需要但我在教程中找到它所以我包含它。截至目前,我的KMZ而不是KML文件是谷歌驱动器,它是公开的,我已经使用了下载链接。即使我使用互联网中的示例中的KML文件,这也不起作用。我错过了什么?请帮助!!

2 个答案:

答案 0 :(得分:3)

我看到了3个问题:

  1. 从不调用initialize函数
  2. 地图没有大小
  3. KML无效(返回状态INVALID_DOCUMENT)

    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false">
    </script>
    
    <script>
    function initialize()
    {
    var mapOptions = {
        center: new google.maps.LatLng(38,-79.5),
        zoom:3,
        mapTypeId: google.maps.MapTypeId.TERRAIN
     }
    var map=new google.maps.Map(document.getElementById("googleMap"),mapOptions);
    var overlay = new google.maps.KmlLayer('https://doc-08-4g-docs.googleusercontent.com/docs/securesc/ckoh7mm1pf9l58sknv61gkpp19v37j15/r3rh37mucb8nscl1r37disrlcom7i93t/1372536000000/00236509183910004089/00236509183910004089/0B-qVNYv_qM5vNy1ZbzJYVUgtTjA?h=16653014193614665626&e=download');
    
    overlay.setMap(map);
    google.maps.event.addListener(overlay,'status_changed',function(){
      document.getElementById('status').innerHTML = overlay.getStatus();
    });
      }
    google.maps.event.addDomListener(window,'load', initialize);
    </script>
    </head>
    <body>
    <div id="googleMap" style="height:500px;width:600px;"></div>
    <div id="status"></div>
    </body>
    </html>
    

答案 1 :(得分:0)

google映射javascript API KML层,将KML大小限制为10MB。 超过10MB,您将在kmllayer对象上获得无效的文档状态。

您的KML必须首先加载到Google KML服务,然后再将切片图像返回给您。 因此,您的KML大小必须小于10MB。

https://developers.google.com/maps/documentation/javascript/kmllayer#restrictions

enter image description here