【问题标题】:KML layer problems in Google Maps Javascript API v3Google Maps Javascript API v3 中的 KML 层问题
【发布时间】:2014-06-19 22:14:49
【问题描述】:

这是我的代码:

<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 &amp;&amp; _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 图层未加载的原因,我将不胜感激。

谢谢!

【问题讨论】:

  • status 是什么? KML 的 URL 是什么?
  • 我遇到了同样的问题,之前运行的代码已经停止运行,没有任何错误。我也得到了一个包含空值的响应。
  • 这个问题不应该被否决,它是完全有效的。
  • 一位谷歌员工指出,如果托管服务器太慢,它将像这样失败:issuetracker.google.com/issues/35823729 NOAA 的一个公共 kml 文件对我来说已经运行了好几个星期,但在遇到网络问题后突然停止工作.他们的网络问题已经得到解决,但谷歌的电话仍然失败。

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


【解决方案1】:

我遇到了同样的问题(响应中的空值)。原来我通过服务器上的 iptables 阻止了 google。

【讨论】:

  • 你可以接受你的答案是正确的。请这样做。
猜你喜欢
  • 2013-06-27
  • 2011-02-20
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2012-10-14
  • 1970-01-01
相关资源
最近更新 更多