Google Maps Javascript API v3中的KML图层问题

时间:2014-06-19 22:14:49

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

这是我的代码:

<html><head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0; padding: 0 }
  #map-canvas { height: 500px; width: 500px; }
</style>
<title>Map Your Reps</title>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api  /js?key={key}"></script>
<script type="text/javascript">
  function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(-34, 92),
      zoom: 7
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

    var kmlUrl = "http://{HOST}/kml/file.kml";
    var kmlOptions = {
        suppressInfoWindows: true,
        preserveViewport: false,
        map: map
    };
    var kmlLayer = new google.maps.KmlLayer(kmlUrl, kmlOptions);
  }
  google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
<h1>Map</h1>
<div id="map-canvas"/>
</body></html>

出于某种原因,虽然可以公开访问.kml文件,但API并没有加载它。

我在Chrome的开发者工具的网络标签中注意到以下请求:

https://maps.googleapis.com/maps/api/js/KmlOverlayService.GetOverlays?1shttp%3A%2F%2F{HOST}%2Fkml%2Ffile.kml&callback=_xdc_._9dx071&token=97074

回应是:     /**/_xdc_._9dx071 && _xdc_._9dx071( [0,null,null,null,null,null,3,[["client","2"]]] )

当我加载其他KML文件时,此数据结构表示文件中的数据。

一些事实:

  • 我的HTML文件和我的KML文件都在Amazon EC2实例上并且可以公开访问...没有密码,HTTPS或其他棘手的业务
  • 我的KML文件未压缩...它是真实的真实KML文件
  • 我的KML文件在kmlvalidator.com上验证
  • 我的KML大小为709K,包含多边形
  • 不会生成任何错误消息,地图上不会显示任何内容......除了地图本身。

我很感激我可以帮助弄清楚为什么这个KML图层没有加载。

谢谢!

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题(响应中为空)。事实证明我是通过服务器上的iptables阻止谷歌。