Google Maps API V3 KML层未显示

问题描述 投票:2回答:2

我在线上关注了许多教程,但是在尝试在我的网站上获得一个带有所需KML叠加层的google map窗口时并未成功。我的代码如下:

<!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文件在Google云端硬盘中,该硬盘已向公众开放,我已经使用了下载链接。即使我使用互联网中的示例中的KML文件也无法使用。是否缺少某些内容?请帮助!

php google-maps-api-3 overlay kml kmz
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>
    

0
投票

google maps 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

© www.soinside.com 2019 - 2024. All rights reserved.