Google地图和KML网址

时间:2013-06-01 19:29:33

标签: javascript google-maps kml

我需要使用复选框构建一个简单的地图。每个复选框都必须显示不同的KML图层。我不知道如何建立这个,但在Google Code上的示例中我找到了以下代码。

但是当我测试localhost(WAMP)上的所有文件时,当我单击一个复选框时,KML图层没有显示。 JavaScript中的其他标记显示正常,只有KML不显示。

显示KML图层的代码如下。请告诉我如何更改代码以从特定URL而不是文件夹中获取markers.kml。我需要从其他网站/服务器获取KML。

/**
 * Toggles KML layer visibility.
 */
function toggleKmlLayer() {
  if (!kmlLayer) {
    var kmlUrl = window.location.href.substring(
        0, 1 + window.location.href.lastIndexOf('/')) + 'markers.kml';
    kmlLayer = new google.maps.KmlLayer(kmlUrl, {
      preserveViewport: false,
      suppressInfoWindows: false
    });
  }
  showKmlLayer = !showKmlLayer;
  if (showKmlLayer) {
    kmlLayer.setMap(map);
  } else {
    kmlLayer.setMap(null);
  }
}

1 个答案:

答案 0 :(得分:1)

您的KML需要位于公开网址。 localhost不公开(Google的服务器无法访问KML)。

from the documentation

  

KML和GeoRSS图层

     

Google Maps API支持用于显示地理位置的KML和GeoRSS数据格式   信息。这些数据格式使用KmlLayer对象显示在地图上   构造函数采用可公开访问的 KML或GeoRSS文件的URL。