2

我在线学习了许多教程,但未能成功尝试在我的网站上获得一个带有所需 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 文件位于对公众开放的谷歌驱动器中,我使用了下载链接。即使我使用 Internet 中示例中的 KML 文件,这也不起作用。我错过了什么吗?请帮忙!!

4

2 回答 2

3

我看到了3个问题:

  1. 永远不会调用初始化函数
  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>
    
于 2013-06-30T00:27:02.797 回答
0

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

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

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

在此处输入图像描述

于 2019-12-17T16:48:52.277 回答