0

我需要用复选框构建一个简单的地图。每个复选框必须显示不同的 KML 层。我不知道如何构建它,但在 Google Code 的示例中我发现了下面的代码。

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

显示 KML 层的代码如下。请告诉我如何更改代码以从特定 URL 而非文件夹中获取 marker.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);
  }
}
4

1 回答 1

1

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

从文档

KML 和 GeoRSS 图层

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

于 2013-06-01T20:20:01.783 回答